summaryrefslogtreecommitdiffstats
path: root/dom/interfaces/html/nsIMozBrowserFrame.idl
diff options
context:
space:
mode:
Diffstat (limited to 'dom/interfaces/html/nsIMozBrowserFrame.idl')
-rw-r--r--dom/interfaces/html/nsIMozBrowserFrame.idl89
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();
+};