summaryrefslogtreecommitdiffstats
path: root/embedding/components/webbrowserpersist/nsIWebBrowserPersistDocument.idl
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /embedding/components/webbrowserpersist/nsIWebBrowserPersistDocument.idl
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'embedding/components/webbrowserpersist/nsIWebBrowserPersistDocument.idl')
-rw-r--r--embedding/components/webbrowserpersist/nsIWebBrowserPersistDocument.idl197
1 files changed, 197 insertions, 0 deletions
diff --git a/embedding/components/webbrowserpersist/nsIWebBrowserPersistDocument.idl b/embedding/components/webbrowserpersist/nsIWebBrowserPersistDocument.idl
new file mode 100644
index 000000000..ba5bea8b2
--- /dev/null
+++ b/embedding/components/webbrowserpersist/nsIWebBrowserPersistDocument.idl
@@ -0,0 +1,197 @@
+/* -*- Mode: IDL; indent-tabs-mode: nil; c-basic-offset: 2 -*-
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsISupports.idl"
+
+interface nsIDOMDocument;
+interface nsIInputStream;
+interface nsIOutputStream;
+interface nsITabParent;
+interface nsIWebBrowserPersistResourceVisitor;
+interface nsIWebBrowserPersistWriteCompletion;
+
+/**
+ * Interface for the URI-mapping information that can be supplied when
+ * serializing the DOM of an nsIWebBrowserPersistDocument.
+ *
+ * @see nsIWebBrowserPersistDocument
+ */
+[scriptable, uuid(d52e8b93-2771-45e8-a5b0-6e12b667046b)]
+interface nsIWebBrowserPersistURIMap : nsISupports
+{
+ /**
+ * The number of URI mappings.
+ */
+ readonly attribute unsigned long numMappedURIs;
+
+ /**
+ * Obtain the URI mapping at the given index, which must be less than
+ * numMappedURIs, as a pair of URI spec strings.
+ */
+ void getURIMapping(in unsigned long aIndex,
+ out AUTF8String aMapFrom,
+ out AUTF8String aMapTo);
+
+ /**
+ * The spec of the base URI that the document will have after it is
+ * serialized.
+ */
+ readonly attribute AUTF8String targetBaseURI;
+};
+
+/**
+ * Interface representing a document that can be serialized with
+ * nsIWebBrowserPersist; it may or may not be in this process. Some
+ * information is exposed as attributes, which may or may not reflect
+ * changes made to the underlying document; most of these are
+ * self-explanatory from their names and types.
+ */
+[scriptable, uuid(74aa4918-5d15-46b6-9ccf-74f9696d721d)]
+interface nsIWebBrowserPersistDocument : nsISupports
+{
+ readonly attribute boolean isPrivate;
+ readonly attribute AUTF8String documentURI;
+ readonly attribute AUTF8String baseURI;
+ readonly attribute ACString contentType;
+ readonly attribute ACString characterSet;
+ readonly attribute AString title;
+ readonly attribute AString referrer;
+ readonly attribute AString contentDisposition;
+ readonly attribute nsIInputStream postData;
+
+ /**
+ * The cache key. Unlike in nsISHEntry, where it's wrapped in an
+ * nsISupportsPRUint32, this is just the integer.
+ */
+ readonly attribute unsigned long cacheKey;
+
+ /**
+ * This attribute is set by nsIWebBrowserPersist implementations to
+ * propagate persist flags that apply to the DOM traversal and
+ * serialization (rather than to managing file I/O).
+ */
+ attribute unsigned long persistFlags;
+
+ /**
+ * Walk the DOM searching for external resources needed to render it.
+ * The visitor callbacks may be called either before or after
+ * readResources returns.
+ *
+ * @see nsIWebBrowserPersistResourceVisitor
+ */
+ void readResources(in nsIWebBrowserPersistResourceVisitor aVisitor);
+
+ /**
+ * Serialize the document's DOM.
+ *
+ * @param aStream The output stream to write the document to.
+ *
+ * @param aURIMap Optional; specifies URI rewriting to perform on
+ * external references (as read by readResources).
+ * If given, also causes relative hyperlinks to be
+ * converted to absolute in the written text.
+ *
+ * @param aRequestedContentType
+ * The desired MIME type to save the document as;
+ * optional and defaults to the document's type.
+ * (If no encoder exists for that type, "text/html"
+ * is used instead.)
+ *
+ * @param aEncoderFlags Flags to pass to the encoder.
+ *
+ * @param aWrapColumn Desired text width, ignored if wrapping is not
+ * specified by the encoding flags, or if 0.
+ *
+ * @param aCompletion Callback invoked when writing is complete.
+ * It may be called either before or after writeContent
+ * returns.
+ *
+ * @see nsIDocumentEncoder
+ */
+ void writeContent(in nsIOutputStream aStream,
+ in nsIWebBrowserPersistURIMap aURIMap,
+ in ACString aRequestedContentType,
+ in unsigned long aEncoderFlags,
+ in unsigned long aWrapColumn,
+ in nsIWebBrowserPersistWriteCompletion aCompletion);
+};
+
+/**
+ * Asynchronous visitor that receives external resources linked by an
+ * nsIWebBrowserPersistDocument and which are needed to render the
+ * document.
+ */
+[scriptable, uuid(8ce37706-b7d3-481a-be68-54f174fc0d0a)]
+interface nsIWebBrowserPersistResourceVisitor : nsISupports
+{
+ /**
+ * Indicates a resource that is not a document; e.g., an image, script,
+ * or stylesheet.
+ *
+ * @param aDocument The document containing the reference.
+ * @param aURI The absolute URI spec for the referenced resource.
+ */
+ void visitResource(in nsIWebBrowserPersistDocument aDocument,
+ in AUTF8String aURI);
+ /**
+ * Indicates a subdocument resource; e.g., a frame or iframe.
+ *
+ * @param aDocument The document containing the reference.
+ * @param aSubDocument The referenced document.
+ */
+ void visitDocument(in nsIWebBrowserPersistDocument aDocument,
+ in nsIWebBrowserPersistDocument aSubDocument);
+
+ /**
+ * Indicates that the document traversal is complete.
+ *
+ * @param aDocument The document that was being traversed.
+ * @param aStatus Indicates whether the traversal encountered an error.
+ */
+ void endVisit(in nsIWebBrowserPersistDocument aDocument,
+ in nsresult aStatus);
+};
+
+/**
+ * Asynchronous callback for when nsIWebBrowserPersistDocument is finished
+ * serializing the document's DOM.
+ */
+[scriptable, function, uuid(a07e6892-38ae-4207-8340-7fa6ec446ed6)]
+interface nsIWebBrowserPersistWriteCompletion : nsISupports
+{
+ /**
+ * Indicates that serialization is finished.
+ *
+ * @param aDocument The document that was being serialized.
+ *
+ * @param aStream The stream that was being written to. If it
+ * needs to be closed, the callback must do that;
+ * the serialization process leaves it open.
+ *
+ * @param aContentType The content type with which the document was
+ * actually serialized; this may be useful to set
+ * metadata on the result, or if uploading it.
+ *
+ * @param aStatus Indicates whether serialization encountered an error.
+ */
+ void onFinish(in nsIWebBrowserPersistDocument aDocument,
+ in nsIOutputStream aStream,
+ in ACString aContentType,
+ in nsresult aStatus);
+};
+
+/**
+ * Asynchronous callback for creating a persistable document from some
+ * other object.
+ *
+ * @see nsIWebBrowserPersistable.
+ */
+[scriptable, uuid(321e3174-594f-4036-b7be-791b821bd376)]
+interface nsIWebBrowserPersistDocumentReceiver : nsISupports
+{
+ void onDocumentReady(in nsIWebBrowserPersistDocument aDocument);
+ void onError(in nsresult aFailure);
+};