diff options
Diffstat (limited to 'docshell/base/nsIContentViewer.idl')
-rw-r--r-- | docshell/base/nsIContentViewer.idl | 280 |
1 files changed, 280 insertions, 0 deletions
diff --git a/docshell/base/nsIContentViewer.idl b/docshell/base/nsIContentViewer.idl new file mode 100644 index 000000000..d7d58ad69 --- /dev/null +++ b/docshell/base/nsIContentViewer.idl @@ -0,0 +1,280 @@ +/* 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 nsIDocShell; +interface nsIDocument; +interface nsIDOMDocument; +interface nsIDOMNode; +interface nsISHEntry; +interface nsIPrintSettings; + + +%{ C++ +#include "nsTArray.h" +#include "nsRect.h" + +class nsIWidget; +class nsIPresShell; +class nsPresContext; +class nsView; +class nsDOMNavigationTiming; +%} + +[ptr] native nsIWidgetPtr(nsIWidget); +[ref] native nsIntRectRef(nsIntRect); +[ptr] native nsIPresShellPtr(nsIPresShell); +[ptr] native nsPresContextPtr(nsPresContext); +[ptr] native nsViewPtr(nsView); +[ptr] native nsDOMNavigationTimingPtr(nsDOMNavigationTiming); +[ref] native nsIContentViewerTArray(nsTArray<nsCOMPtr<nsIContentViewer> >); + +[scriptable, builtinclass, uuid(2da17016-7851-4a45-a7a8-00b360e01595)] +interface nsIContentViewer : nsISupports +{ + [noscript] void init(in nsIWidgetPtr aParentWidget, + [const] in nsIntRectRef aBounds); + + attribute nsIDocShell container; + + [noscript,notxpcom,nostdcall] void loadStart(in nsIDocument aDoc); + void loadComplete(in nsresult aStatus); + [noscript] readonly attribute boolean loadCompleted; + + /** + * Checks if the document wants to prevent unloading by firing beforeunload on + * the document, and if it does, prompts the user. The result is returned. + */ + boolean permitUnload(); + + /** + * Exposes whether we're blocked in a call to permitUnload. + */ + readonly attribute boolean inPermitUnload; + + /** + * As above, but this passes around the aShouldPrompt argument to keep + * track of whether the user has responded to a prompt. + * Used internally by the scriptable version to ensure we only prompt once. + */ + [noscript,nostdcall] boolean permitUnloadInternal(inout boolean aShouldPrompt); + + /** + * Exposes whether we're in the process of firing the beforeunload event. + * In this case, the corresponding docshell will not allow navigation. + */ + readonly attribute boolean beforeUnloadFiring; + + void pageHide(in boolean isUnload); + + /** + * All users of a content viewer are responsible for calling both + * close() and destroy(), in that order. + * + * close() should be called when the load of a new page for the next + * content viewer begins, and destroy() should be called when the next + * content viewer replaces this one. + * + * |historyEntry| sets the session history entry for the content viewer. If + * this is null, then Destroy() will be called on the document by close(). + * If it is non-null, the document will not be destroyed, and the following + * actions will happen when destroy() is called (*): + * - Sanitize() will be called on the viewer's document + * - The content viewer will set the contentViewer property on the + * history entry, and release its reference (ownership reversal). + * - hide() will be called, and no further destruction will happen. + * + * (*) unless the document is currently being printed, in which case + * it will never be saved in session history. + * + */ + void close(in nsISHEntry historyEntry); + void destroy(); + + void stop(); + + attribute nsIDOMDocument DOMDocument; + + /** + * Returns DOMDocument as nsIDocument and without addrefing. + */ + [noscript,notxpcom] nsIDocument getDocument(); + + [noscript] void getBounds(in nsIntRectRef aBounds); + [noscript] void setBounds([const] in nsIntRectRef aBounds); + /** + * The 'aFlags' argument to setBoundsWithFlags is a set of these bits. + */ + const unsigned long eDelayResize = 1; + [noscript] void setBoundsWithFlags([const] in nsIntRectRef aBounds, + in unsigned long aFlags); + + /** + * The previous content viewer, which has been |close|d but not + * |destroy|ed. + */ + [noscript] attribute nsIContentViewer previousViewer; + + void move(in long aX, in long aY); + + void show(); + void hide(); + + attribute boolean sticky; + + /* + * This is called when the DOM window wants to be closed. Returns true + * if the window can close immediately. Otherwise, returns false and will + * close the DOM window as soon as practical. + */ + + boolean requestWindowClose(); + + /** + * Attach the content viewer to its DOM window and docshell. + * @param aState A state object that might be useful in attaching the DOM + * window. + * @param aSHEntry The history entry that the content viewer was stored in. + * The entry must have the docshells for all of the child + * documents stored in its child shell list. + */ + void open(in nsISupports aState, in nsISHEntry aSHEntry); + + /** + * Clears the current history entry. This is used if we need to clear out + * the saved presentation state. + */ + void clearHistoryEntry(); + + /** + * Change the layout to view the document with page layout (like print preview), but + * dynamic and editable (like Galley layout). + */ + void setPageMode(in boolean aPageMode, in nsIPrintSettings aPrintSettings); + + /** + * Get the history entry that this viewer will save itself into when + * destroyed. Can return null + */ + readonly attribute nsISHEntry historyEntry; + + /** + * Indicates when we're in a state where content shouldn't be allowed to + * trigger a tab-modal prompt (as opposed to a window-modal prompt) because + * we're part way through some operation (eg beforeunload) that shouldn't be + * rentrant if the user closes the tab while the prompt is showing. + * See bug 613800. + */ + readonly attribute boolean isTabModalPromptAllowed; + + /** + * Returns whether this content viewer is in a hidden state. + * + * @note Only Gecko internal code should set the attribute! + */ + attribute boolean isHidden; + + [noscript] readonly attribute nsIPresShellPtr presShell; + [noscript] readonly attribute nsPresContextPtr presContext; + // aDocument must not be null. + [noscript] void setDocumentInternal(in nsIDocument aDocument, + in boolean aForceReuseInnerWindow); + /** + * Find the view to use as the container view for MakeWindow. Returns + * null if this will be the root of a view manager hierarchy. In that + * case, if mParentWidget is null then this document should not even + * be displayed. + */ + [noscript,notxpcom,nostdcall] nsViewPtr findContainerView(); + /** + * Set collector for navigation timing data (load, unload events). + */ + [noscript,notxpcom,nostdcall] void setNavigationTiming(in nsDOMNavigationTimingPtr aTiming); + /* + Scrolls to a given DOM content node. + */ + void scrollToNode(in nsIDOMNode node); + + /** The amount by which to scale all text. Default is 1.0. */ + attribute float textZoom; + + /** The amount by which to scale all lengths. Default is 1.0. */ + attribute float fullZoom; + + /** + * The value used to override devicePixelRatio and media queries dppx. + * Default is 0.0, that means no overriding is done (only a positive value + * is applied). + */ + attribute float overrideDPPX; + + /** Disable entire author style level (including HTML presentation hints) */ + attribute boolean authorStyleDisabled; + + /** + * XXX comm-central only: bug 829543. Not the Character Encoding menu in + * browser! + */ + attribute ACString forceCharacterSet; + + /** + * XXX comm-central only: bug 829543. + */ + attribute ACString hintCharacterSet; + + /** + * XXX comm-central only: bug 829543. + */ + attribute int32_t hintCharacterSetSource; + + /** + * Requests the size of the content to the container. + */ + void getContentSize(out long width, out long height); + + /** + * Returns the preferred width and height of the content, constrained to the + * given maximum values. If either maxWidth or maxHeight is less than zero, + * that dimension is not constrained. + * + * All input and output values are in device pixels, rather than CSS pixels. + */ + void getContentSizeConstrained(in long maxWidth, in long maxHeight, + out long width, out long height); + + /** The minimum font size */ + attribute long minFontSize; + + /** + * Append |this| and all of its descendants to the given array, + * in depth-first pre-order traversal. + */ + [noscript] void appendSubtree(in nsIContentViewerTArray array); + + /** + * Instruct the refresh driver to discontinue painting until further + * notice. + */ + void pausePainting(); + + /** + * Instruct the refresh driver to resume painting after a previous call to + * pausePainting(). + */ + void resumePainting(); + + /* + * Render the document as if being viewed on a device with the specified + * media type. This will cause a reflow. + * + * @param mediaType The media type to be emulated + */ + void emulateMedium(in AString aMediaType); + + /* + * Restore the viewer's natural media type + */ + void stopEmulatingMedium(); +}; |