diff options
Diffstat (limited to 'dom/interfaces/html/nsIMozBrowserFrame.idl')
-rw-r--r-- | dom/interfaces/html/nsIMozBrowserFrame.idl | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/dom/interfaces/html/nsIMozBrowserFrame.idl b/dom/interfaces/html/nsIMozBrowserFrame.idl new file mode 100644 index 000000000..a9dccdd1c --- /dev/null +++ b/dom/interfaces/html/nsIMozBrowserFrame.idl @@ -0,0 +1,89 @@ +/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim:set tw=80 expandtab softtabstop=2 ts=2 sw=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 "nsIDOMMozBrowserFrame.idl" + +interface nsITabParent; + +[scriptable, builtinclass, uuid(0c0a862c-1a47-43c0-ae9e-d51835e3e1a6)] +interface nsIMozBrowserFrame : nsIDOMMozBrowserFrame +{ + /** + * Gets whether this frame really is a browser or app frame. + * + * In order to really be a browser frame, this frame's + * nsIDOMMozBrowserFrame::mozbrowser attribute must be true, and the frame + * may have to pass various security checks. + */ + [infallible] readonly attribute boolean reallyIsBrowserOrApp; + + /** + * Gets whether this frame really is an app frame. + * + * In order to really be an app frame, this frame must really be a browser + * frame (this requirement will go away eventually), and the frame's mozapp + * attribute must point to the manifest of a valid app. + */ + [infallible] readonly attribute boolean reallyIsApp; + + /** + * Gets whether this frame is an isolated frame. + * + * By default, browser frames are isolated, meaning they have a principal + * where OriginAttributes.mIsInIsolatedMozBrowser == true. This isolates + * storage and other origin related items from non-browser apps, xul:browsers, + * etc. + * + * Isolation can be disabled by setting the frame's isolated attribute to + * false. Disabling isolation is only allowed if the containing document has + * browser permission (or equivalent access). + */ + [infallible] readonly attribute boolean isolated; + + /** + * Gets this frame's app manifest URL, if the frame really is an app frame. + * Otherwise, returns the empty string. + * + * This method is guaranteed not to fail. + */ + readonly attribute AString appManifestURL; + + /** + * Normally, a frame tries to create its frame loader when its src is + * modified, or its contentWindow is accessed. + * + * disallowCreateFrameLoader prevents the frame element from creating its + * frame loader (in the same way that not being inside a document prevents the + * creation of a frame loader). allowCreateFrameLoader lifts this restriction. + * + * These methods are not re-entrant -- it is an error to call + * disallowCreateFrameLoader twice without first calling allowFrameLoader. + * + * It's also an error to call either method if we already have a frame loader. + */ + void disallowCreateFrameLoader(); + void allowCreateFrameLoader(); + + /** + * Create a remote (i.e., out-of-process) frame loader attached to the given + * tab parent. + * + * It is an error to call this method if we already have a frame loader. + */ + void createRemoteFrameLoader(in nsITabParent aTabParent); + + /** + * Initialize the API, and add frame message listener that supports API + * invocations. + */ + [noscript] void initializeBrowserAPI(); + + /** + * Notify frame scripts that support the API to destroy. + */ + [noscript] void destroyBrowserFrameScripts(); +}; |