This patch removes support for mozapp iframes, leaving support for mozbrowser iframes intact. Some of the code has been rewritten in order to phrase things in terms of mozbrowser only, as opposed to mozbrowser or app. In some places, code that was only useful with apps has been completely removed, so that the APIs consumed can also be removed. In some places where the notion of appId was bleeding out of this API, now we use NO_APP_ID. Other notions of appId which were restricted to this API have been removed.
73 lines
2.6 KiB
Plaintext
73 lines
2.6 KiB
Plaintext
/* -*- 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 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 reallyIsBrowser;
|
|
|
|
/**
|
|
* 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;
|
|
|
|
/**
|
|
* 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();
|
|
};
|