mirror of
https://github.com/roytam1/palemoon27.git
synced 2026-05-26 14:18:48 +00:00
e39f9f88f7
- Bug 1152171 part 2 - Rename AnimationTimeline to DocumentTimeline; r=smaug (26c118319) - Bug 1152171 part 3 - Update web-platform-tests expectations; r=jgraham (b7b4032aa) - Bug 1153734 part 1 - Remove AnimationEffect; r=smaug (9cf67a02e) - Bug 1153734 part 2 - Rename Animation to KeyframeEffectReadonly; r=smaug (b69556ee6) - Bug 1153734 part 3 - Rename AnimationPlayer.source to AnimationPlayer.effect; r=smaug (50d3130ee) - Bug 1153734 part 4 - Rename other uses of 'source' and 'source content'; r=jwatt (b02c4ba36) - Bug 1153734 part 5 - Add AnimationEffectReadonly as a superinterface of KeyframeEffectReadonly; r=smaug (c3395d3f5) - Bug 1149990 - Support replaying of finished CSS transitions by supporting setting of currentTime/startTime. r=birtles (3fb2cb401) - Bug 1154615 part 1 - Rename AnimationPlayer to Animation in WebIDL; r=smaug (6c2125b49) - Bug 1154615 part 2 - Rename PendingPlayerTracker to PendingAnimationTracker; r=jwatt (8d6804def) - Bug 1154615 part 3 - Rename internal members of PendingAnimationTracker; r=jwatt (f348f6355) - Bug 1154615 part 4 - Rename references to players in dom/animation; r=jwatt (0250572e8) - Bug 1117603 part 1 - Don't assume style rules have been refreshed in GetAnimationRule; r=dbaron (a5d340d0f) - remove kungFuDeathGrip (49df758e6) - Bug 1117603 part 2 - Don't unregister from the refresh driver unless we are also queueing events; r=dbaron (715c9caa1) - Bug 1154615 part 5 - Rename AnimationPlayerCollection to AnimationCollection; r=jwatt (4c596f089) - Bug 1154615 part 6 - Rename references to players within layout/; r=jwatt (42405f3fc) - Bug 1154615 part 7 - Rename CSSAnimationPlayer and CSSTransitionPlayer; r=jwatt (49ab272ed) - Bug 1154615 part 8 - Rename references to players in animation observers; r=jwatt (c3fa26d7a) - Bug 1154615 part 9 - Rename test files; r=jwatt (9d9f03e7b) - Bug 1145439 (Part 1) - Throttle requestAnimationFrame for non-visible iframes. r=mstange,mchang (be7d183d6) - Bug 1145439 (Part 2) - Make test_scroll_event_ordering.html wait for rAF to unthrottle. r=roc (9ac8317c9) - Bug 1144324 - Try to register for, and handle, touch events when APZ is enabled. r=dvander,jimm (fb75d1665) - Bug 1144324 - Remove the codepaths that conditionally enable touch events based on touch the presence of touch listeners. r=smaug,jimm (710617e6b) - Bug 1003991 - Disable https:// only load for ServiceWorkers when Developer Tools are open. r=nsm, r=miker (9d6669814) - Bug 1153267 - part 1 - use smart-pointer .forget() instead of NS_ADDREF+assign; r=ehsan (e4555c90c) - Bug 1153267 - part 2 - use smart pointers instead of manual NS_ADDREF'ing outparams; r=ehsan (ae8b60d5a) - Bug 1153267 - fix typo that broke OS X builds on a CLOSED TREE; r=bustage (08fdb3c4f) - Bug 1146843 - Revert part of cset 33c30e283fa8 because the code is used in Fennec. r=snorp (407248257) - Bug 1151940 part 1. Make some readonly properties defined on Window by CSSOM-view replaceable. r=smaug (5cb9b91f0) - Bug 1151940 part 2. Add a convenience function in nsGlobalWindow for replacing a property on the window with a new value. r=smaug (2ba39331c) - Bug 1151940 part 3. Make some writable cssom-view attributes that we only allow setting from chrome act the way readonly replaceables would when called from content. r=smaug (b485e1b44) - Goanna -> Gecko (2c539d7be) - Goanna -> Gecko (25d34e213) - Bug 1148962 - Use TakeOwnershipOfErrorReporting in CPOW code (r=bholley) (96c997639) - pointer style (a07fbffaa) - Bug 1152577: Add 'aReason' argument to AutoEntryScript constructor, and provide plausible names for its instantiations. r=bholley (512fa27e2) - bug 1155691 - Expose WindowRoot to chrome from window in webidl. r=smaug (235281924) - Bug 404828 - No need to assert that the top window isn't reachable. r=smaug (d73154fa0) - Bug 404828 - Followup: remove assertion expectations on a CLOSED TREE. a=tomcat (a5dabe1b7) - Bug 1156102 - Mark nsGlobalWindowObserver::mWindow as MOZ_NON_OWNING_REF; r=baku (c0d4208b7) - Bug 1107801 - Improve gamepad support on MacOS. r=ted (c591bd5ac) - Goanna -> Gecko (d9b81bc9e) - Bug 852944 - Gamepad API IPC; r=ted, r=baku (521892538) - Bug 1143529 part 1. Stop manually calling WrapObject in DataStoreService::GetDataStoresResolve. r=baku (056ad6bfe) - Bug 1143529 part 2. Tighten up the assert in binding Wrap methods. r=peterv (765a13325) - Bug 1152169 - DataStoreService should check if the first revision exists, r=bent (ee371cc5d) - Bug 1152169 followup: Mark FirstRevisionIdCallback methods Run() and HandleEvent() as 'override'. rs=ehsan (8186c4168) - Bug 1143651 - don't use CallQueryInterface when the compiler can do the cast for us; r=ehsan (a50f0a54b) - Bug 1144322 - Handle tabindex in overridden IsInteractiveHTMLContent methods. r=smaug (fd4b9beed) - Bug 1086684 - Stash the full path for file inputs to avoid doing IPC at inopportune times. r=ehsan/bent/gps (b843b1efc) - Bug 1143934 - Disallow mozSetFileNameArray in content processes. r=ehsan (42e5c8c6d) - Bug 1143934 - Fix assorted forms mochitests for e10s-compatibility. r=smaug (7a3babfed) - Bug 1143934 - Work around SessionStore dependency on current brokenness. r=ttaubert (5b0fcb5ce) - Bug 956530 - Clear the delayed caret data when clicking on a selected part of a text control if the focus event handler selects the control; r=roc (2859f07b4) - Bug 956530 follow-up: Fix the test failure on Windows 8 caused by the text box having a glowing outline as a result of being clicked on (d34e8da1a) - Bug 1157898 part 1. Make code of the form "return rv.ErrorCode();" where rv is an ErrorResult use StealNSResult instead. r=peterv (800da50e2) - Bug 1157898 part 2. Make code of the form "NS_ENSURE_SUCCESS(rv.ErrorCode(), rv.ErrorCode());" use Failed and StealNSResult instead. r=peterv (472432a83) - Bug 1157898 part 3. Fix the remaining consumers of rv.ErrorCode() in NS_ENSURE_* expressions to not do that. r=peterv (d452807e7) - Bug 1122238 part 1. Switch to using the new stackframe APIs in JSStackFrame. r=bholley (9d87b261a) - Bug 1122238 part 2. Stop caching things in JSStackFrame when we're called over Xrays. r=bholley (83eda7275) - Bug 1122238 part 3. Drop all the DOMException-cloning and sanitization gunk we added in bug 1107592 and bug 1107953 and bug 1117242 . r=bholley (f237aa948) - add support for NetBSD/SPARC64 (065783b70) - Bug 1153484 - Fetch should ignore invalid headers, but still process later headers. r=nsm (8925ddd77) - Bug 1157754 part 2. Convert consumers of ErrorResult::ClearMessage() to the new better APIs we have for suppressing exceptions on ErrorResult. r=bkelly (6519fbd5e) - Bug 1157754 part 3. Make ClearMessage private on ErrorResult. r=peterv (3fb218692) - Bug 1157898 part 4. Add ErrorResult::ErrorCodeIs() and use it in various places to get rid of ErrorCode(). r=peterv (bed7bfb4c) - Bug 1130686 - Refactor PromiseHolder in the service worker clients code. r=nsm (b3dbdcbfe) - Bug 1130686 - Implement client.focus. r=baku (5dee6d850) - Bug 1149163 part 1 - Clean up nsHTMLEditRules::GetInnerContent; r=froydnj (cc8f65b54) - Bug 1149163 part 2 - Make nsDOMIterator infallible; r=froydnj (d975f6c62) - Bug 1149163 part 3 - Clean up nsHTMLEditRules::BustUpInlinesAtBRs; r=froydnj (58155adad) - Bug 1149163 part 4 - Allow use of temporary nsBoolDomIterFunctor; r=froydnj (dbafec00f) - Bug 1149163 part 5 - Clean up nsHTMLEditRules::GetNodesForOperation; r=froydnj (41179d810) - Bug 1149163 part 6 - Clean up nsHTMLEditRules::LookInsideDivBQandList; r=froydnj (0b757bf14) - Bug 1149163 part 7 - Clean up nsHTMLEditRules::PromoteRange; r=froydnj (c49c714b1) - Bug 1149163 part 8 - Clean up nsHTMLEditRules::GetPromotedRanges; r=froydnj (5163a0026) - Bug 1148228 - Stop checking ul twice (43a22088c) - Bug 1141017 - resurrect serif and monospace. r=ehsan (95a1b6fcf) - Bug 1147412 part 1 - Make methods take nsINode*, not just nsIContent*; r=ehsan (7f762cdbe) - Bug 1147412 part 2 - Clean up nsHTMLEditor::SetInlinePropertyOnTextNode; r=ehsan (faf805587) - Bug 1147412 part 3 - Fix completely broken nsHTMLCSSUtils::IsCSSEquivalentToHTMLInlineStyleSet implementation; r=ehsan (73fea67c1) - Bug 1147412 part 4 - Clean up nsHTMLEditor::GetInlinePropertyBase; r=ehsan (3265bfbce) - Bug 1147412 part 5 - Clean up nsHTMLEditor::RemoveInlinePropertyImpl; r=ehsan (0f402bd7e) - Bug 1147412 part 6 - Remove nsHTMLCSSUtils::IsCSSEditableProperty(nsIDOMNode*,...); r=ehsan (100e4038a) - Bug 1147412 part 7 - Remove nsHTMLCSSUtils::GetComputedStyle(nsIDOMElement*); r=ehsan (6c51103bc) - Bug 1147412 part 8 - Clean up nsHTMLCSSUtils::IsCSSInvertible; r=ehsan (01e60c446) - Bug 1147412 part 9 - Convert some nsHTMLEditor members to Element; r=ehsan (e7efb1ac4) - Bug 1147412 part 10 - Clean up nsHTMLCSSUtils::Get*Property, GetCSSInlinePropertyBase; r=ehsan (54154143d) - Bug 1149163 part 9 - Clean up nsHTMLEditRules::GetNodesFromSelection; r=froydnj (5186308b9) - Bug 1154701 part 1 - Clean up nsHTMLEditor::CreateListOfNodesToPaste; r=ehsan (ea95238d5) - Bug 1153629 part 1 - Clean up nsHTMLEditRules::GetListActionNodes; r=ehsan (51f3b3e95) - Bug 1153629 part 2 - Clean up nsHTMLEditRules::GetParagraphFormatNodes; r=ehsan (a27bd7751) - Bug 1153629 part 3 - Clean up nsHTMLEditRules::GetNodesFromPoint; r=ehsan (edc7e4561) - Bug 1153629 part 4 - Clean up nsHTMLEditRules::ListIsEmptyLine; r=ehsan (ce3289bc7) - Bug 1153629 part 5 - Clean up nsHTMLEditRules::GetChildNodesForOperation; r=ehsan (b3a509dbf) - Bug 1153629 part 6 - Clean up nsHTMLEditRules::MakeBlockquote; r=ehsan (cb3808182) - Bug 1153629 part 7 - Clean up nsHTMLEditRules::RemoveBlockStyle, RemovePartOfBlock; r=ehsan (660b9f76e) - Bug 1153629 part 8 - Clean up nsHTMLEditRules::ApplyBlockStyle; r=ehsan (f54f9538c) - Bug 1153629 part 9 - Clean up nsHTMLEditRules::MakeTransitionList; r=ehsan (fb63cf6d8) - Bug 1153629 part 10 - Clean up nsHTMLEditRules::AlignInnerBlocks; r=ehsan (752d2df7a) - Bug 1153629 part 11 - Clean up nsHTMLEditRules::AdjustSpecialBreaks; r=ehsan (16ef0416b) - Bug 1153629 part 12 - Clean up nsHTMLEditRules::RemoveEmptyNodes; r=ehsan (d528e70e6) - Bug 1154701 part 2 - Use more OwningNonNull in editor; r=ehsan (85b1929e6) - Bug 1154701 part 3 - Clean up nsHTMLEditor::GetListAndTableParents, DiscoverPartialListsAndTables, ScanForListAndTableStructure, ReplaceOrphanedStructure; r=ehsan (7fe31f058) - Bug 1154701 part 4 - Switch nsHTMLEditor::mContentFilters to nsTArray; r=ehsan (64e6dd160) - Bug 1154701 part 5 - Switch nsHTMLEditor::objectResizeEventListeners to nsTArray; r=ehsan (036bc65fe) - Bug 1154701 part 6 - Clean up nsHTMLEditor::SetInlinePropertyOnNodeImpl; r=ehsan (2d619ca16) - Bug 1154701 part 7 - Clean up nsHTMLEditor::SetInlineProperty; r=ehsan (7a367d31b) - Bug 1154701 part 8 - Clean up nsHTMLEditor::SetInlinePropertyOnNode; r=ehsan (707c07d93) - Bug 1154701 part 9 - Clean up nsHTMLEditor::RelativeFontChange; r=ehsan (273ae9c64) - Bug 1154701 part 10 - Switch nsEditor::mActionListeners to nsTArray; r=ehsan (d2b5732fe) - Bug 1154701 part 11 - Switch nsEditor::mEditorObservers to nsTArray; r=ehsan (25a5af12e) - Bug 1154701 part 12 - Switch nsEditor::mDocStateListeners to nsTArray; r=ehsan (665af0792) - Bug 1154701 part 13 - Clean up nsHTMLEditor::SetCSSBackgroundColor; r=ehsan (ba424ade8) - Bug 1154701 part 14 - Remove unused nsCOMArray cruft; r=ehsan (3a8679a67) - Bug 1101651 - Part 1: xpcomrt version of dom media library need for standalone webrtcs. r=jesup (ae37b5464) - Bug 1137447 - New app update telemetry for patch type (complete or partial), extended error codes, and general cleanup. r=bbondy (c736ae502)
1133 lines
43 KiB
Plaintext
1133 lines
43 KiB
Plaintext
/* -*- Mode: IDL; tab-width: 4; 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 "domstubs.idl"
|
|
#include "nsIDocShellTreeItem.idl"
|
|
|
|
%{ C++
|
|
#include "js/TypeDecls.h"
|
|
class nsPresContext;
|
|
class nsIPresShell;
|
|
|
|
namespace mozilla {
|
|
namespace dom {
|
|
class URLSearchParams;
|
|
}
|
|
}
|
|
|
|
%}
|
|
|
|
/**
|
|
* The nsIDocShell interface.
|
|
*/
|
|
|
|
[ptr] native nsPresContext(nsPresContext);
|
|
[ptr] native nsIPresShell(nsIPresShell);
|
|
[ptr] native URLSearchParams(mozilla::dom::URLSearchParams);
|
|
|
|
interface nsIURI;
|
|
interface nsIChannel;
|
|
interface nsIContentViewer;
|
|
interface nsIURIContentListener;
|
|
interface nsIDOMEventTarget;
|
|
interface nsIDocShellLoadInfo;
|
|
interface nsIEditor;
|
|
interface nsIWebNavigation;
|
|
interface nsISimpleEnumerator;
|
|
interface nsIInputStream;
|
|
interface nsIRequest;
|
|
interface nsISHEntry;
|
|
interface nsILayoutHistoryState;
|
|
interface nsISecureBrowserUI;
|
|
interface nsIScriptGlobalObject;
|
|
interface nsIDOMStorage;
|
|
interface nsIPrincipal;
|
|
interface nsIWebBrowserPrint;
|
|
interface nsIVariant;
|
|
interface nsIPrivacyTransitionObserver;
|
|
interface nsIReflowObserver;
|
|
interface nsIScrollObserver;
|
|
interface nsITabParent;
|
|
|
|
typedef unsigned long nsLoadFlags;
|
|
|
|
[scriptable, builtinclass, uuid(f84b1ae4-2f78-4bad-b36a-6a8516ee6e40)]
|
|
interface nsIDocShell : nsIDocShellTreeItem
|
|
{
|
|
/**
|
|
* Loads a given URI. This will give priority to loading the requested URI
|
|
* in the object implementing this interface. If it can't be loaded here
|
|
* however, the URL dispatcher will go through its normal process of content
|
|
* loading.
|
|
*
|
|
* @param uri - The URI to load.
|
|
* @param loadInfo - This is the extended load info for this load. This
|
|
* most often will be null, but if you need to do
|
|
* additional setup for this load you can get a loadInfo
|
|
* object by calling createLoadInfo. Once you have this
|
|
* object you can set the needed properties on it and
|
|
* then pass it to loadURI.
|
|
* @param aLoadFlags - Flags to modify load behaviour. Flags are defined in
|
|
* nsIWebNavigation. Note that using flags outside
|
|
* LOAD_FLAGS_MASK is only allowed if passing in a
|
|
* non-null loadInfo. And even some of those might not
|
|
* be allowed. Use at your own risk.
|
|
*/
|
|
[noscript]void loadURI(in nsIURI uri,
|
|
in nsIDocShellLoadInfo loadInfo,
|
|
in unsigned long aLoadFlags,
|
|
in boolean firstParty);
|
|
|
|
/**
|
|
* Loads a given stream. This will give priority to loading the requested
|
|
* stream in the object implementing this interface. If it can't be loaded
|
|
* here however, the URL dispatched will go through its normal process of
|
|
* content loading.
|
|
*
|
|
* @param aStream - The input stream that provides access to the data
|
|
* to be loaded. This must be a blocking, threadsafe
|
|
* stream implementation.
|
|
* @param aURI - The URI representing the stream, or null.
|
|
* @param aContentType - The type (MIME) of data being loaded (empty if unknown).
|
|
* @param aContentCharset - The charset of the data being loaded (empty if unknown).
|
|
* @param aLoadInfo - This is the extended load info for this load. This
|
|
* most often will be null, but if you need to do
|
|
* additional setup for this load you can get a
|
|
* loadInfo object by calling createLoadInfo. Once
|
|
* you have this object you can set the needed
|
|
* properties on it and then pass it to loadStream.
|
|
*/
|
|
[noscript]void loadStream(in nsIInputStream aStream,
|
|
in nsIURI aURI,
|
|
in ACString aContentType,
|
|
in ACString aContentCharset,
|
|
in nsIDocShellLoadInfo aLoadInfo);
|
|
|
|
const long INTERNAL_LOAD_FLAGS_NONE = 0x0;
|
|
const long INTERNAL_LOAD_FLAGS_INHERIT_OWNER = 0x1;
|
|
const long INTERNAL_LOAD_FLAGS_DONT_SEND_REFERRER = 0x2;
|
|
const long INTERNAL_LOAD_FLAGS_ALLOW_THIRD_PARTY_FIXUP = 0x4;
|
|
|
|
// This flag marks the first load in this object
|
|
// @see nsIWebNavigation::LOAD_FLAGS_FIRST_LOAD
|
|
const long INTERNAL_LOAD_FLAGS_FIRST_LOAD = 0x8;
|
|
|
|
const long INTERNAL_LOAD_FLAGS_BYPASS_CLASSIFIER = 0x10;
|
|
const long INTERNAL_LOAD_FLAGS_FORCE_ALLOW_COOKIES = 0x20;
|
|
|
|
// Whether the load should be treated as srcdoc load, rather than a URI one.
|
|
const long INTERNAL_LOAD_FLAGS_IS_SRCDOC = 0x40;
|
|
|
|
const long INTERNAL_LOAD_FLAGS_NO_OPENER = 0x100;
|
|
|
|
// NB: 0x80 is available.
|
|
|
|
/**
|
|
* Loads the given URI. This method is identical to loadURI(...) except
|
|
* that its parameter list is broken out instead of being packaged inside
|
|
* of an nsIDocShellLoadInfo object...
|
|
*
|
|
* @param aURI - The URI to load.
|
|
* @param aReferrer - Referring URI
|
|
* @param aReferrerPolicy - Referrer policy
|
|
* @param aOwner - Owner (security principal)
|
|
* @param aInheritOwner - Flag indicating whether the owner of the current
|
|
* document should be inherited if aOwner is null.
|
|
* @param aStopActiveDoc - Flag indicating whether loading the current
|
|
* document should be stopped.
|
|
* @param aWindowTarget - Window target for the load.
|
|
* @param aTypeHint - A hint as to the content-type of the resulting
|
|
* data. May be null or empty if no hint.
|
|
* @param aFileName - Non-null when the link should be downloaded as
|
|
the given filename.
|
|
* @param aPostDataStream - Post data stream (if POSTing)
|
|
* @param aHeadersStream - Stream containing "extra" request headers...
|
|
* @param aLoadFlags - Flags to modify load behaviour. Flags are defined
|
|
* in nsIWebNavigation.
|
|
* @param aSHEntry - Active Session History entry (if loading from SH)
|
|
* @param aSrcdoc When INTERNAL_LOAD_FLAGS_IS_SRCDOC is set, the
|
|
* contents of this parameter will be loaded instead
|
|
* of aURI.
|
|
* @param aSourceDocShell - The source browsing context for the navigation.
|
|
* @param aBaseURI - The base URI to be used for the load. Set in
|
|
* srcdoc loads as it cannot otherwise be inferred
|
|
* in certain situations such as view-source.
|
|
*/
|
|
[noscript]void internalLoad(in nsIURI aURI,
|
|
in nsIURI aReferrer,
|
|
in unsigned long aReferrerPolicy,
|
|
in nsISupports aOwner,
|
|
in uint32_t aFlags,
|
|
in wstring aWindowTarget,
|
|
in string aTypeHint,
|
|
in AString aFileName,
|
|
in nsIInputStream aPostDataStream,
|
|
in nsIInputStream aHeadersStream,
|
|
in unsigned long aLoadFlags,
|
|
in nsISHEntry aSHEntry,
|
|
in boolean firstParty,
|
|
in AString aSrcdoc,
|
|
in nsIDocShell aSourceDocShell,
|
|
in nsIURI aBaseURI,
|
|
out nsIDocShell aDocShell,
|
|
out nsIRequest aRequest);
|
|
|
|
/**
|
|
* Do either a history.pushState() or history.replaceState() operation,
|
|
* depending on the value of aReplace.
|
|
*/
|
|
[implicit_jscontext]
|
|
void addState(in jsval aData, in DOMString aTitle,
|
|
in DOMString aURL, in boolean aReplace);
|
|
|
|
/**
|
|
* Creates a DocShellLoadInfo object that you can manipulate and then pass
|
|
* to loadURI.
|
|
*/
|
|
void createLoadInfo(out nsIDocShellLoadInfo loadInfo);
|
|
|
|
/**
|
|
* Reset state to a new content model within the current document and the document
|
|
* viewer. Called by the document before initiating an out of band document.write().
|
|
*/
|
|
void prepareForNewContentModel();
|
|
|
|
/**
|
|
* For editors and suchlike who wish to change the URI associated with the
|
|
* document. Note if you want to get the current URI, use the read-only
|
|
* property on nsIWebNavigation.
|
|
*/
|
|
void setCurrentURI(in nsIURI aURI);
|
|
|
|
/**
|
|
* Notify the associated content viewer and all child docshells that they are
|
|
* about to be hidden. If |isUnload| is true, then the document is being
|
|
* unloaded as well.
|
|
*
|
|
* @param isUnload if true, fire the unload event in addition to the pagehide
|
|
* event.
|
|
*/
|
|
[noscript] void firePageHideNotification(in boolean isUnload);
|
|
|
|
/**
|
|
* Presentation context for the currently loaded document. This may be null.
|
|
*/
|
|
[noscript] readonly attribute nsPresContext presContext;
|
|
|
|
/**
|
|
* Presentation shell for the currently loaded document. This may be null.
|
|
*/
|
|
[noscript,notxpcom] nsIPresShell GetPresShell();
|
|
|
|
/**
|
|
* Presentation shell for the oldest document, if this docshell is
|
|
* currently transitioning between documents.
|
|
*/
|
|
[noscript] readonly attribute nsIPresShell eldestPresShell;
|
|
|
|
/**
|
|
* Content Viewer that is currently loaded for this DocShell. This may
|
|
* change as the underlying content changes.
|
|
*/
|
|
readonly attribute nsIContentViewer contentViewer;
|
|
|
|
/**
|
|
* This attribute allows chrome to tie in to handle DOM events that may
|
|
* be of interest to chrome.
|
|
*/
|
|
attribute nsIDOMEventTarget chromeEventHandler;
|
|
|
|
/**
|
|
* Whether to allow plugin execution
|
|
*/
|
|
attribute boolean allowPlugins;
|
|
|
|
/**
|
|
* Whether to allow Javascript execution
|
|
*/
|
|
attribute boolean allowJavascript;
|
|
|
|
/**
|
|
* Attribute stating if refresh based redirects can be allowed
|
|
*/
|
|
attribute boolean allowMetaRedirects;
|
|
|
|
/**
|
|
* Attribute stating if it should allow subframes (framesets/iframes) or not
|
|
*/
|
|
attribute boolean allowSubframes;
|
|
|
|
/**
|
|
* Attribute stating whether or not images should be loaded.
|
|
*/
|
|
attribute boolean allowImages;
|
|
|
|
/**
|
|
* Attribute stating whether or not media (audio/video) should be loaded.
|
|
*/
|
|
[infallible] attribute boolean allowMedia;
|
|
|
|
/**
|
|
* Attribute that determines whether DNS prefetch is allowed for this subtree
|
|
* of the docshell tree. Defaults to true. Setting this will make it take
|
|
* effect starting with the next document loaded in the docshell.
|
|
*/
|
|
attribute boolean allowDNSPrefetch;
|
|
|
|
/**
|
|
* Attribute that determines whether window control (move/resize) is allowed.
|
|
*/
|
|
attribute boolean allowWindowControl;
|
|
|
|
/**
|
|
* True if the docshell allows its content to be handled by a content listener
|
|
* other than the docshell itself, including the external helper app service,
|
|
* and false otherwise. Defaults to true.
|
|
*/
|
|
[infallible] attribute boolean allowContentRetargeting;
|
|
|
|
/**
|
|
* Get an enumerator over this docShell and its children.
|
|
*
|
|
* @param aItemType - Only include docShells of this type, or if typeAll,
|
|
* include all child shells.
|
|
* Uses types from nsIDocShellTreeItem.
|
|
* @param aDirection - Whether to enumerate forwards or backwards.
|
|
*/
|
|
|
|
const long ENUMERATE_FORWARDS = 0;
|
|
const long ENUMERATE_BACKWARDS = 1;
|
|
|
|
nsISimpleEnumerator getDocShellEnumerator(in long aItemType,
|
|
in long aDirection);
|
|
|
|
/**
|
|
* The type of application that created this window
|
|
*/
|
|
const unsigned long APP_TYPE_UNKNOWN = 0;
|
|
const unsigned long APP_TYPE_MAIL = 1;
|
|
const unsigned long APP_TYPE_EDITOR = 2;
|
|
|
|
attribute unsigned long appType;
|
|
|
|
/**
|
|
* certain dochshells (like the message pane)
|
|
* should not throw up auth dialogs
|
|
* because it can act as a password trojan
|
|
*/
|
|
attribute boolean allowAuth;
|
|
|
|
/**
|
|
* Set/Get the document scale factor. When setting this attribute, a
|
|
* NS_ERROR_NOT_IMPLEMENTED error may be returned by implementations
|
|
* not supporting zoom. Implementations not supporting zoom should return
|
|
* 1.0 all the time for the Get operation. 1.0 by the way is the default
|
|
* of zoom. This means 100% of normal scaling or in other words normal size
|
|
* no zoom.
|
|
*/
|
|
attribute float zoom;
|
|
|
|
/*
|
|
* The size, in CSS pixels, of the horizontal margins for the <body> of an
|
|
* HTML document in this docshel; used to implement the marginwidth attribute
|
|
* on HTML <frame>/<iframe> elements. A value smaller than zero indicates
|
|
* that the attribute was not set.
|
|
*/
|
|
attribute long marginWidth;
|
|
|
|
/*
|
|
* The size, in CSS pixels, of the vertical margins for the <body> of an HTML
|
|
* document in this docshel; used to implement the marginheight attribute on
|
|
* HTML <frame>/<iframe> elements. A value smaller than zero indicates that
|
|
* the attribute was not set.
|
|
*/
|
|
attribute long marginHeight;
|
|
|
|
/*
|
|
* Tells the docshell to offer focus to its tree owner.
|
|
* This is currently only necessary for embedding chrome.
|
|
*/
|
|
void tabToTreeOwner(in boolean forward,
|
|
out boolean tookFocus);
|
|
|
|
/**
|
|
* Current busy state for DocShell
|
|
*/
|
|
const unsigned long BUSY_FLAGS_NONE = 0;
|
|
const unsigned long BUSY_FLAGS_BUSY = 1;
|
|
const unsigned long BUSY_FLAGS_BEFORE_PAGE_LOAD = 2;
|
|
const unsigned long BUSY_FLAGS_PAGE_LOADING = 4;
|
|
|
|
/**
|
|
* Load commands for the document
|
|
*/
|
|
const unsigned long LOAD_CMD_NORMAL = 0x1; // Normal load
|
|
const unsigned long LOAD_CMD_RELOAD = 0x2; // Reload
|
|
const unsigned long LOAD_CMD_HISTORY = 0x4; // Load from history
|
|
const unsigned long LOAD_CMD_PUSHSTATE = 0x8; // History.pushState()
|
|
|
|
readonly attribute unsigned long busyFlags;
|
|
|
|
/*
|
|
* attribute to access the loadtype for the document
|
|
*/
|
|
attribute unsigned long loadType;
|
|
|
|
/*
|
|
* Default load flags (as defined in nsIRequest) that will be set on all
|
|
* requests made by this docShell and propagated to all child docShells and
|
|
* to nsILoadGroup::defaultLoadFlags for the docShell's loadGroup.
|
|
* Default is no flags. Once set, only future requests initiated by the
|
|
* docShell are affected, so in general, these flags should be set before
|
|
* the docShell loads any content.
|
|
*/
|
|
attribute nsLoadFlags defaultLoadFlags;
|
|
|
|
/*
|
|
* returns true if the docshell is being destroyed, false otherwise
|
|
*/
|
|
boolean isBeingDestroyed();
|
|
|
|
/*
|
|
* Returns true if the docshell is currently executing the onLoad Handler
|
|
*/
|
|
readonly attribute boolean isExecutingOnLoadHandler;
|
|
|
|
attribute nsILayoutHistoryState layoutHistoryState;
|
|
|
|
readonly attribute boolean shouldSaveLayoutState;
|
|
|
|
/**
|
|
* The SecureBrowserUI object for this docshell. This is set by XUL
|
|
* <browser> or nsWebBrowser for their root docshell.
|
|
*/
|
|
attribute nsISecureBrowserUI securityUI;
|
|
|
|
/**
|
|
* Cancel the XPCOM timers for each meta-refresh URI in this docshell,
|
|
* and this docshell's children, recursively. The meta-refresh timers can be
|
|
* restarted using resumeRefreshURIs(). If the timers are already suspended,
|
|
* this has no effect.
|
|
*/
|
|
void suspendRefreshURIs();
|
|
|
|
/**
|
|
* Restart the XPCOM timers for each meta-refresh URI in this docshell,
|
|
* and this docshell's children, recursively. If the timers are already
|
|
* running, this has no effect.
|
|
*/
|
|
void resumeRefreshURIs();
|
|
|
|
/**
|
|
* Begin firing WebProgressListener notifications for restoring a page
|
|
* presentation. |viewer| is the content viewer whose document we are
|
|
* starting to load. If null, it defaults to the docshell's current content
|
|
* viewer, creating one if necessary. |top| should be true for the toplevel
|
|
* docshell that is being restored; it will be set to false when this method
|
|
* is called for child docshells. This method will post an event to
|
|
* complete the simulated load after returning to the event loop.
|
|
*/
|
|
void beginRestore(in nsIContentViewer viewer, in boolean top);
|
|
|
|
/**
|
|
* Finish firing WebProgressListener notifications and DOM events for
|
|
* restoring a page presentation. This should only be called via
|
|
* beginRestore().
|
|
*/
|
|
void finishRestore();
|
|
|
|
/* Track whether we're currently restoring a document presentation. */
|
|
readonly attribute boolean restoringDocument;
|
|
|
|
/* attribute to access whether error pages are enabled */
|
|
attribute boolean useErrorPages;
|
|
|
|
/**
|
|
* Display a load error in a frame while keeping that frame's currentURI
|
|
* pointing correctly to the page where the error ocurred, rather than to
|
|
* the error document page. You must provide either the aURI or aURL parameter.
|
|
*
|
|
* @param aError The error code to be displayed
|
|
* @param aURI nsIURI of the page where the error happened
|
|
* @param aURL wstring of the page where the error happened
|
|
* @param aFailedChannel The channel related to this error
|
|
*/
|
|
void displayLoadError(in nsresult aError,
|
|
in nsIURI aURI,
|
|
in wstring aURL,
|
|
[optional] in nsIChannel aFailedChannel);
|
|
|
|
/**
|
|
* The channel that failed to load and resulted in an error page.
|
|
* May be null. Relevant only to error pages.
|
|
*/
|
|
readonly attribute nsIChannel failedChannel;
|
|
|
|
/**
|
|
* Keeps track of the previous SHTransaction index and the current
|
|
* SHTransaction index at the time that the doc shell begins to load.
|
|
* Used for ContentViewer eviction.
|
|
*/
|
|
readonly attribute long previousTransIndex;
|
|
readonly attribute long loadedTransIndex;
|
|
|
|
/**
|
|
* Notification that entries have been removed from the beginning of a
|
|
* nsSHistory which has this as its rootDocShell.
|
|
*
|
|
* @param numEntries - The number of entries removed
|
|
*/
|
|
void historyPurged(in long numEntries);
|
|
|
|
/*
|
|
* @deprecated, use nsIDocShell.QueryInterface(nsIDOMStorageManager) instead.
|
|
*
|
|
* Retrieves the WebApps session storage object for the supplied principal.
|
|
*
|
|
* @param principal returns a storage for this principal
|
|
* @param documentURI new storage will be created with reference to this
|
|
* document.documentURI that will appear in storage event
|
|
* @param create If true and a session storage object doesn't
|
|
* already exist, a new one will be created.
|
|
*/
|
|
nsIDOMStorage getSessionStorageForPrincipal(in nsIPrincipal principal,
|
|
in DOMString documentURI,
|
|
in boolean create);
|
|
|
|
/*
|
|
* @deprecated, use nsIDocShell.QueryInterface(nsIDOMStorageManager) instead.
|
|
*
|
|
* Add a WebApps session storage object to the docshell.
|
|
*
|
|
* @param principal the principal the storage object is associated with
|
|
* @param storage the storage object to add
|
|
*/
|
|
void addSessionStorage(in nsIPrincipal principal, in nsIDOMStorage storage);
|
|
|
|
/**
|
|
* Gets the channel for the currently loaded document, if any.
|
|
* For a new document load, this will be the channel of the previous document
|
|
* until after OnLocationChange fires.
|
|
*/
|
|
readonly attribute nsIChannel currentDocumentChannel;
|
|
|
|
/**
|
|
* Set the offset of this child in its container.
|
|
*/
|
|
[noscript] void setChildOffset(in unsigned long offset);
|
|
|
|
/**
|
|
* Find out whether the docshell is currently in the middle of a page
|
|
* transition. This is set just before the pagehide/unload events fire.
|
|
*/
|
|
readonly attribute boolean isInUnload;
|
|
|
|
/**
|
|
* Find out if the currently loaded document came from a suspicious channel
|
|
* (such as a JAR channel where the server-returned content type isn't a
|
|
* known JAR type).
|
|
*/
|
|
readonly attribute boolean channelIsUnsafe;
|
|
|
|
/**
|
|
* This attribute determines whether Mixed Active Content is loaded on the
|
|
* document. When it is true, mixed active content was not blocked and has
|
|
* loaded (or is about to load) on the page. When it is false, mixed active content
|
|
* has not loaded on the page, either because there was no mixed active content
|
|
* requests on the page or such requests were blocked by nsMixedContentBlocker.
|
|
* This boolean is set to true in nsMixedContentBlocker if Mixed Active Content
|
|
* is allowed (either explicitly on the page by the user or when the about:config
|
|
* setting security.mixed_content.block_active_content is set to false).
|
|
*/
|
|
[infallible] readonly attribute boolean hasMixedActiveContentLoaded;
|
|
|
|
/**
|
|
* This attribute determines whether a document has Mixed Active Content
|
|
* that has been blocked from loading. When it is true, there is definitely
|
|
* mixed active content on a page that has been blocked by
|
|
* nsMixedContentBlocker. When it is false, there may or may not be mixed
|
|
* active content on a page, but if there is, it will load. Note that if the
|
|
* about:config setting security.mixed_content.block_active_content is set
|
|
* false, this boolean will be false, since blocking active content has been
|
|
* disabled.
|
|
*/
|
|
[infallible] readonly attribute boolean hasMixedActiveContentBlocked;
|
|
|
|
/**
|
|
* This attribute determines whether Mixed Display Content is loaded on the
|
|
* document. When it is true, mixed display content was not blocked and has
|
|
* loaded (or is about to load) on the page. Similar behavior to
|
|
* hasMixedActiveContentLoaded.
|
|
*/
|
|
[infallible] readonly attribute boolean hasMixedDisplayContentLoaded;
|
|
|
|
/**
|
|
* This attribute determines whether a document has Mixed Display Content
|
|
* that has been blocked from loading. Similar behavior to
|
|
* hasMixedActiveContentBlocked.
|
|
*/
|
|
[infallible] readonly attribute boolean hasMixedDisplayContentBlocked;
|
|
|
|
/**
|
|
* This attribute determines whether a document has Tracking Content
|
|
* that has been blocked from loading.
|
|
*/
|
|
[infallible] readonly attribute boolean hasTrackingContentBlocked;
|
|
|
|
/**
|
|
* This attribute determines whether Tracking Content is loaded on the
|
|
* document. When it is true, tracking content was not blocked and has
|
|
* loaded (or is about to load) on the page.
|
|
*/
|
|
[infallible] readonly attribute boolean hasTrackingContentLoaded;
|
|
|
|
/**
|
|
* Disconnects this docshell's editor from its window, and stores the
|
|
* editor data in the open document's session history entry. This
|
|
* should be called only during page transitions.
|
|
*/
|
|
[noscript, notxpcom] void DetachEditorFromWindow();
|
|
|
|
/**
|
|
* If true, this browser is not visible in the traditional sense, but
|
|
* is actively being rendered to the screen (ex. painted on a canvas)
|
|
* and should be treated accordingly.
|
|
**/
|
|
attribute boolean isOffScreenBrowser;
|
|
|
|
/**
|
|
* If the current content viewer isn't initialized for print preview,
|
|
* it is replaced with one which is and to which an about:blank document
|
|
* is loaded.
|
|
*/
|
|
readonly attribute nsIWebBrowserPrint printPreview;
|
|
|
|
/**
|
|
* Whether this docshell can execute scripts based on its hierarchy.
|
|
* The rule of thumb here is that we disable js if this docshell or any
|
|
* of its parents disallow scripting.
|
|
*/
|
|
[infallible] readonly attribute boolean canExecuteScripts;
|
|
|
|
/**
|
|
* Sets whether a docshell is active. An active docshell is one that is
|
|
* visible, and thus is not a good candidate for certain optimizations
|
|
* like image frame discarding. Docshells are active unless told otherwise.
|
|
*/
|
|
attribute boolean isActive;
|
|
|
|
/**
|
|
* Puts the docshell in prerendering mode. noscript because we want only
|
|
* native code to be able to put a docshell in prerendering.
|
|
*/
|
|
[noscript] void SetIsPrerendered(in boolean prerendered);
|
|
[infallible] readonly attribute boolean isPrerendered;
|
|
|
|
/**
|
|
* The ID of the docshell in the session history.
|
|
*/
|
|
readonly attribute unsigned long long historyID;
|
|
|
|
/**
|
|
* Sets whether a docshell is an app tab. An app tab docshell may behave
|
|
* differently than a non-app tab docshell in some cases, such as when
|
|
* handling link clicks. Docshells are not app tabs unless told otherwise.
|
|
*/
|
|
attribute boolean isAppTab;
|
|
|
|
/**
|
|
* Create a new about:blank document and content viewer.
|
|
* @param aPrincipal the principal to use for the new document.
|
|
*/
|
|
void createAboutBlankContentViewer(in nsIPrincipal aPrincipal);
|
|
|
|
/**
|
|
* Upon getting, returns the canonical encoding label of the document
|
|
* currently loaded into this docshell.
|
|
*
|
|
* Upon setting, sets forcedCharset for compatibility with legacy callers.
|
|
*/
|
|
attribute ACString charset;
|
|
|
|
/**
|
|
* Called when the user chose an encoding override from the character
|
|
* encoding menu. Separate from the setter for the charset property to avoid
|
|
* extensions adding noise to the data.
|
|
*/
|
|
void gatherCharsetMenuTelemetry();
|
|
|
|
/**
|
|
* The charset forced by the user.
|
|
*/
|
|
attribute ACString forcedCharset;
|
|
|
|
/**
|
|
* In a child docshell, this is the charset of the parent docshell
|
|
*/
|
|
[noscript, notxpcom, nostdcall] void setParentCharset(
|
|
in ACString parentCharset,
|
|
in int32_t parentCharsetSource,
|
|
in nsIPrincipal parentCharsetPrincipal);
|
|
[noscript, notxpcom, nostdcall] void getParentCharset(
|
|
out ACString parentCharset,
|
|
out int32_t parentCharsetSource,
|
|
out nsIPrincipal parentCharsetPrincipal);
|
|
|
|
/**
|
|
* Whether the docShell records profile timeline markers at the moment
|
|
*/
|
|
[infallible] attribute boolean recordProfileTimelineMarkers;
|
|
|
|
/**
|
|
* Return a DOMHighResTimeStamp representing the number of
|
|
* milliseconds from an arbitrary point in time. The reference
|
|
* point is shared by all DocShells and is also used by timestamps
|
|
* on markers.
|
|
*/
|
|
DOMHighResTimeStamp now();
|
|
|
|
/**
|
|
* Returns and flushes the profile timeline markers gathered by the docShell
|
|
*/
|
|
[implicit_jscontext]
|
|
jsval popProfileTimelineMarkers();
|
|
|
|
/**
|
|
* Add an observer to the list of parties to be notified when this docshell's
|
|
* private browsing status is changed. |obs| must support weak references.
|
|
*/
|
|
void addWeakPrivacyTransitionObserver(in nsIPrivacyTransitionObserver obs);
|
|
|
|
/**
|
|
* Add an observer to the list of parties to be notified when reflows are
|
|
* occurring. |obs| must support weak references.
|
|
*/
|
|
void addWeakReflowObserver(in nsIReflowObserver obs);
|
|
|
|
/**
|
|
* Remove an observer from the list of parties to be notified about reflows.
|
|
*/
|
|
void removeWeakReflowObserver(in nsIReflowObserver obs);
|
|
|
|
/**
|
|
* Notify all attached observers that a reflow has just occurred.
|
|
*
|
|
* @param interruptible if true, the reflow was interruptible.
|
|
* @param start timestamp when reflow started, in milliseconds since
|
|
* navigationStart (accurate to 1/1000 of a ms)
|
|
* @param end timestamp when reflow ended, in milliseconds since
|
|
* navigationStart (accurate to 1/1000 of a ms)
|
|
*/
|
|
[noscript] void notifyReflowObservers(in bool interruptible,
|
|
in DOMHighResTimeStamp start,
|
|
in DOMHighResTimeStamp end);
|
|
|
|
/**
|
|
* Add an observer to the list of parties to be notified when scroll position
|
|
* of some elements is changed.
|
|
*/
|
|
[noscript] void addWeakScrollObserver(in nsIScrollObserver obs);
|
|
|
|
/**
|
|
* Add an observer to the list of parties to be notified when scroll position
|
|
* of some elements is changed.
|
|
*/
|
|
[noscript] void removeWeakScrollObserver(in nsIScrollObserver obs);
|
|
|
|
/**
|
|
* Notify all attached observers that the scroll position of some element
|
|
* has changed.
|
|
*/
|
|
[noscript] void notifyScrollObservers();
|
|
|
|
/**
|
|
* Returns true if this docshell corresponds to an <iframe mozbrowser>.
|
|
* (<iframe mozapp mozbrowser> is not considered a browser.)
|
|
*/
|
|
[infallible] readonly attribute boolean isBrowserElement;
|
|
|
|
/**
|
|
* Returns true iff the docshell corresponds to an <iframe mozapp>.
|
|
*/
|
|
[infallible] readonly attribute boolean isApp;
|
|
|
|
/**
|
|
* Returns isBrowserElement || isApp.
|
|
*/
|
|
[infallible] readonly attribute boolean isBrowserOrApp;
|
|
|
|
/**
|
|
* Returns true if this docshell corresponds to an <iframe mozbrowser> or if
|
|
* the docshell is contained in an <iframe mozbrowser>. (<iframe mozapp
|
|
* mozbrowser> does not count as a browser.)
|
|
*
|
|
* Our notion here of "contained in" means: Walk up the docshell hierarchy in
|
|
* this process until we hit an <iframe mozapp> or <iframe mozbrowser> (or
|
|
* until the hierarchy ends). Return true iff the docshell we stopped on has
|
|
* isBrowserElement == true.
|
|
*/
|
|
[infallible] readonly attribute boolean isInBrowserElement;
|
|
|
|
/**
|
|
* Returns true if this docshell corresponds to an <iframe mozbrowser> or
|
|
* <iframe mozapp>, or if this docshell is contained in an <iframe mozbrowser>
|
|
* or <iframe mozapp>.
|
|
*
|
|
* To compute this value, we walk up the docshell hierarchy. If we encounter
|
|
* a docshell with isBrowserElement or isApp before we hit the end of the
|
|
* hierarchy, we return true. Otherwise, we return false.
|
|
*/
|
|
[infallible] readonly attribute boolean isInBrowserOrApp;
|
|
|
|
/**
|
|
* Indicate that this docshell corresponds to an app with the given app id.
|
|
*
|
|
* You may pass NO_APP_ID or UNKNOWN_APP_ID for containingAppId. If you
|
|
* pass NO_APP_ID, then this docshell will return NO_APP_ID for appId. If
|
|
* you pass UNKNOWN_APP_ID, then this docshell will search its hiearchy for
|
|
* an app frame and use that frame's appId.
|
|
*
|
|
* You can call this method more than once, but there's no guarantee that
|
|
* other components will update their view of the world if you change a
|
|
* docshell's app id, so tread lightly.
|
|
*
|
|
* If you call this method after calling setIsBrowserInsideApp, this
|
|
* docshell will forget the fact that it was a browser.
|
|
*/
|
|
void setIsApp(in unsigned long ownAppId);
|
|
|
|
/**
|
|
* Indicate that this docshell corresponds to a browser inside an app with
|
|
* the given ID. As with setIsApp, you may pass NO_APP_ID or
|
|
* UNKNOWN_APP_ID.
|
|
*
|
|
* As with setIsApp, you may call this more than once, but it's kind of a
|
|
* hack, so be careful.
|
|
*/
|
|
void setIsBrowserInsideApp(in unsigned long containingAppId);
|
|
|
|
/**
|
|
* Returns the id of the app associated with this docshell. If this docshell
|
|
* is an <iframe mozbrowser> inside an <iframe mozapp>, we return the app's
|
|
* appId.
|
|
*
|
|
* We compute this value by walking up the docshell hierarchy until we find a
|
|
* docshell on which setIsApp(x) or setIsBrowserInsideApp(x) was called
|
|
* (ignoring those docshells where x == UNKNOWN_APP_ID). We return the app
|
|
* id x.
|
|
*
|
|
* If we don't find a docshell with an associated app id in our hierarchy, we
|
|
* return NO_APP_ID. We never return UNKNOWN_APP_ID.
|
|
*
|
|
* Notice that a docshell may have an associated app even if it returns true
|
|
* for isBrowserElement!
|
|
*/
|
|
[infallible] readonly attribute unsigned long appId;
|
|
|
|
/**
|
|
* Return the manifest URL of the app associated with this docshell.
|
|
*
|
|
* If there is no associated app in our hierarchy, we return empty string.
|
|
*/
|
|
readonly attribute DOMString appManifestURL;
|
|
|
|
/**
|
|
* Like nsIDocShellTreeItem::GetSameTypeParent, except this ignores <iframe
|
|
* mozbrowser> and <iframe mozapp> boundaries.
|
|
*/
|
|
nsIDocShell getSameTypeParentIgnoreBrowserAndAppBoundaries();
|
|
|
|
/**
|
|
* True iff asynchronous panning and zooming is enabled for this
|
|
* docshell.
|
|
*/
|
|
readonly attribute bool asyncPanZoomEnabled;
|
|
|
|
/**
|
|
* The sandbox flags on the docshell. These reflect the value of the sandbox
|
|
* attribute of the associated IFRAME or CSP-protectable content, if
|
|
* existent. See the HTML5 spec for more details.
|
|
* These flags on the docshell reflect the current state of the sandbox
|
|
* attribute, which is modifiable. They are only used when loading new
|
|
* content, sandbox flags are also immutably set on the document when it is
|
|
* loaded.
|
|
* The sandbox flags of a document depend on the sandbox flags on its
|
|
* docshell and of its parent document, if any.
|
|
* See nsSandboxFlags.h for the possible flags.
|
|
*/
|
|
attribute unsigned long sandboxFlags;
|
|
|
|
/**
|
|
* When a new browsing context is opened by a sandboxed document, it needs to
|
|
* keep track of the browsing context that opened it, so that it can be
|
|
* navigated by it. This is the "one permitted sandboxed navigator".
|
|
*/
|
|
attribute nsIDocShell onePermittedSandboxedNavigator;
|
|
|
|
/**
|
|
* Returns true if we are sandboxed from aTargetDocShell.
|
|
* aTargetDocShell - the browsing context we are attempting to navigate.
|
|
*/
|
|
[noscript,notxpcom,nostdcall] bool isSandboxedFrom(in nsIDocShell aTargetDocShell);
|
|
|
|
/**
|
|
* This member variable determines whether a document has Mixed Active Content that
|
|
* was initially blocked from loading, but the user has choosen to override the
|
|
* block and allow the content to load. mMixedContentChannel is set to the document's
|
|
* channel when the user allows mixed content. The nsMixedContentBlocker content policy
|
|
* checks if the document's root channel matches the mMixedContentChannel. If it matches,
|
|
* then Mixed Content is loaded. If it does match, mixed content is blocked.
|
|
*
|
|
* A match implies that there is definitely mixed active content on a page that was
|
|
* initially blocked by nsMixedContentBlocker and then allowed and loaded by the user.
|
|
* A miss imples that IF there is mixed active content on the page AND it was
|
|
* blocked by nsMixedContentBlocker.cpp, the user has not choosen to override
|
|
* the block. Note that if the about:config setting
|
|
* security.mixed_content.block_active_content is set to false, this boolean
|
|
* will be false, mMixedContentChannel will remain null since blocking active content has
|
|
* been disabled and hence mMixedContentChannel will never be set.
|
|
*/
|
|
attribute nsIChannel mixedContentChannel;
|
|
|
|
/**
|
|
* Checks whether the channel associated with the root docShell is equal to
|
|
* mMixedContentChannel. If they are the same, allowMixedContent is set to true.
|
|
* Checks if the root document has a secure connection. If it is, sets
|
|
* rootHasSecureConnection to true. If the docShell is the root doc shell,
|
|
* isRootDocShell is set to true.
|
|
*/
|
|
void GetAllowMixedContentAndConnectionData(out boolean rootHasSecureConnection, out boolean allowMixedContent, out boolean isRootDocShell);
|
|
|
|
|
|
/**
|
|
* Are plugins allowed in the current document loaded in this docshell ?
|
|
* (if there is one). This depends on whether plugins are allowed by this
|
|
* docshell itself or if the document is sandboxed and hence plugins should
|
|
* not be allowed.
|
|
*/
|
|
[noscript, notxpcom] bool pluginsAllowedInCurrentDoc();
|
|
|
|
|
|
/**
|
|
* Attribute that determines whether fullscreen is allowed to be entered for
|
|
* this subtree of the docshell tree. This is true when all iframes containing
|
|
* this docshell have their "allowfullscreen" attribute set to "true".
|
|
* fullscreenAllowed is only writable at content boundaries, where it is used
|
|
* to propagate the value of the cross process parent's iframe's
|
|
* "allowfullscreen" attribute to the child process. Setting
|
|
* fullscreenAllowed on docshells which aren't content boundaries throws an
|
|
* exception.
|
|
*/
|
|
[infallible] readonly attribute boolean fullscreenAllowed;
|
|
|
|
void setFullscreenAllowed(in boolean allowed);
|
|
|
|
[noscript, infallible] attribute boolean affectPrivateSessionLifetime;
|
|
|
|
/**
|
|
* Indicates whether the UI may enable the character encoding menu. The UI
|
|
* must disable the menu when this property is false.
|
|
*/
|
|
[infallible] readonly attribute boolean mayEnableCharacterEncodingMenu;
|
|
|
|
attribute nsIEditor editor;
|
|
readonly attribute boolean editable; /* this docShell is editable */
|
|
readonly attribute boolean hasEditingSession; /* this docShell has an editing session */
|
|
|
|
/**
|
|
* Make this docShell editable, setting a flag that causes
|
|
* an editor to get created, either immediately, or after
|
|
* a url has been loaded.
|
|
* @param inWaitForUriLoad true to wait for a URI before
|
|
* creating the editor.
|
|
*/
|
|
void makeEditable(in boolean inWaitForUriLoad);
|
|
|
|
/**
|
|
* Get the SHEntry associated with a child docshell
|
|
*/
|
|
nsISHEntry getChildSHEntry(in long aChildOffset);
|
|
|
|
/**
|
|
* Add a Child SHEntry for a frameset page, given the child's loadtype.
|
|
* If aCloneChildren is true, then aCloneReference's children will be
|
|
* cloned onto aHistoryEntry.
|
|
*/
|
|
void addChildSHEntry(in nsISHEntry aCloneReference,
|
|
in nsISHEntry aHistoryEntry,
|
|
in long aChildOffset,
|
|
in unsigned long aLoadType,
|
|
in boolean aCloneChilden);
|
|
|
|
/**
|
|
* Whether this docshell should save entries in global history.
|
|
*/
|
|
attribute boolean useGlobalHistory;
|
|
|
|
/**
|
|
* Removes nsISHEntry objects related to this docshell from session history.
|
|
* Use this only with subdocuments, like iframes.
|
|
*/
|
|
void removeFromSessionHistory();
|
|
|
|
/**
|
|
* Set when an iframe/frame is added dynamically.
|
|
*/
|
|
attribute boolean createdDynamically;
|
|
|
|
/**
|
|
* Returns false for mLSHE, true for mOSHE
|
|
*/
|
|
boolean getCurrentSHEntry(out nsISHEntry aEntry);
|
|
|
|
/**
|
|
* Cherry picked parts of nsIController.
|
|
* They are here, because we want to call these functions
|
|
* from JS.
|
|
*/
|
|
boolean isCommandEnabled(in string command);
|
|
void doCommand(in string command);
|
|
|
|
/**
|
|
* Invisible DocShell are dummy construct to simulate DOM windows
|
|
* without any actual visual representation. They have to be marked
|
|
* at construction time, to avoid any painting activity.
|
|
*/
|
|
[noscript, notxpcom] bool IsInvisible();
|
|
[noscript, notxpcom] void SetInvisible(in bool aIsInvisibleDochsell);
|
|
|
|
/**
|
|
* Get the script global for the document in this docshell.
|
|
*/
|
|
[noscript,notxpcom,nostdcall] nsIScriptGlobalObject GetScriptGlobalObject();
|
|
|
|
/**
|
|
* If deviceSizeIsPageSize is set to true, device-width/height media queries
|
|
* will be calculated from the page size, not the device size.
|
|
*
|
|
* Used by the Responsive Design View and B2G Simulator.
|
|
*
|
|
* Default is False.
|
|
* Default value can be overriden with
|
|
* docshell.device_size_is_page_size pref.
|
|
*/
|
|
[infallible] attribute boolean deviceSizeIsPageSize;
|
|
|
|
/**
|
|
* Regarding setOpener / getOpener - We can't use XPIDL's "attribute"
|
|
* for notxpcom, so we're relegated to using explicit gets / sets. This
|
|
* should be fine, considering that these methods should only ever be
|
|
* called from native code.
|
|
*/
|
|
[noscript,notxpcom,nostdcall] void setOpener(in nsITabParent aOpener);
|
|
[noscript,notxpcom,nostdcall] nsITabParent getOpener();
|
|
|
|
// URLSearchParams for the window.location is owned by the docShell.
|
|
[noscript,notxpcom] URLSearchParams getURLSearchParams();
|
|
|
|
/**
|
|
* Notify DocShell when the browser is about to start executing JS, and after
|
|
* that execution has stopped. This only occurs when the Timeline devtool
|
|
* is collecting information.
|
|
*/
|
|
[noscript,notxpcom,nostdcall] void notifyJSRunToCompletionStart(in string aReason);
|
|
[noscript,notxpcom,nostdcall] void notifyJSRunToCompletionStop();
|
|
|
|
/**
|
|
* This attribute determines whether a document which is not about:blank has
|
|
* already be loaded by this docShell.
|
|
*/
|
|
[infallible] readonly attribute boolean hasLoadedNonBlankURI;
|
|
|
|
/**
|
|
* Holds the id of the payment request associated with this docshell if any.
|
|
*/
|
|
attribute DOMString paymentRequestId;
|
|
|
|
/**
|
|
* Allow usage of -moz-window-dragging:drag for content docshells.
|
|
* True for top level chrome docshells. Throws if set to false with
|
|
* top level chrome docshell.
|
|
*/
|
|
attribute boolean windowDraggingAllowed;
|
|
};
|
|
|
|
[scriptable, builtinclass, uuid(395c6a79-80ae-4ede-9e05-93bee6c3d9a1)]
|
|
interface nsIDocShell_ESR38 : nsIDocShell
|
|
{
|
|
/**
|
|
* True if new child docshells should allow content retargeting.
|
|
* Setting allowContentRetargeting also overwrites this value.
|
|
*/
|
|
[infallible] attribute boolean allowContentRetargetingOnChildren;
|
|
};
|
|
|
|
[scriptable, builtinclass, uuid(539bce70-8261-462f-bbd0-40ee90b7d636)]
|
|
interface nsIDocShell_ESR38_2 : nsIDocShell_ESR38
|
|
{
|
|
/**
|
|
* Loads the given URI. This method is identical to loadURI(...) except
|
|
* that its parameter list is broken out instead of being packaged inside
|
|
* of an nsIDocShellLoadInfo object...
|
|
*
|
|
* @param aURI - The URI to load.
|
|
* @param aOriginalURI - The URI to set as the originalURI on the channel
|
|
* that does the load. If null, aURI will be set as
|
|
* the originalURI.
|
|
* @param aLoadReplace - If set LOAD_REPLACE flag will be set on the
|
|
* channel. aOriginalURI is null, this argument is
|
|
* ignored.
|
|
* @param aIsFromProcessingFrameAttributes
|
|
* - If this is a load triggered by changing frame attributes.
|
|
* See nsILoadInfo.isFromProcessingFrameAttributes
|
|
* @param aReferrer - Referring URI
|
|
* @param aReferrerPolicy - Referrer policy
|
|
* @param aOwner - Owner (security principal)
|
|
* @param aInheritOwner - Flag indicating whether the owner of the current
|
|
* document should be inherited if aOwner is null.
|
|
* @param aStopActiveDoc - Flag indicating whether loading the current
|
|
* document should be stopped.
|
|
* @param aWindowTarget - Window target for the load.
|
|
* @param aTypeHint - A hint as to the content-type of the resulting
|
|
* data. May be null or empty if no hint.
|
|
* @param aFileName - Non-null when the link should be downloaded as
|
|
the given filename.
|
|
* @param aPostDataStream - Post data stream (if POSTing)
|
|
* @param aHeadersStream - Stream containing "extra" request headers...
|
|
* @param aLoadFlags - Flags to modify load behaviour. Flags are defined
|
|
* in nsIWebNavigation.
|
|
* @param aSHEntry - Active Session History entry (if loading from SH)
|
|
* @param aSrcdoc When INTERNAL_LOAD_FLAGS_IS_SRCDOC is set, the
|
|
* contents of this parameter will be loaded instead
|
|
* of aURI.
|
|
* @param aSourceDocShell - The source browsing context for the navigation.
|
|
* @param aBaseURI - The base URI to be used for the load. Set in
|
|
* srcdoc loads as it cannot otherwise be inferred
|
|
* in certain situations such as view-source.
|
|
*/
|
|
[noscript]void internalLoad2(in nsIURI aURI,
|
|
in nsIURI aOriginalURI,
|
|
in boolean aLoadReplace,
|
|
in boolean aIsFromProcessingFrameAttributes,
|
|
in nsIURI aReferrer,
|
|
in unsigned long aReferrerPolicy,
|
|
in nsISupports aOwner,
|
|
in uint32_t aFlags,
|
|
in wstring aWindowTarget,
|
|
in string aTypeHint,
|
|
in AString aFileName,
|
|
in nsIInputStream aPostDataStream,
|
|
in nsIInputStream aHeadersStream,
|
|
in unsigned long aLoadFlags,
|
|
in nsISHEntry aSHEntry,
|
|
in boolean firstParty,
|
|
in AString aSrcdoc,
|
|
in nsIDocShell aSourceDocShell,
|
|
in nsIURI aBaseURI,
|
|
out nsIDocShell aDocShell,
|
|
out nsIRequest aRequest);
|
|
};
|