109 lines
3.3 KiB
Text
109 lines
3.3 KiB
Text
/* 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"
|
|
|
|
interface nsIPrincipal;
|
|
webidl Element;
|
|
webidl WindowGlobalParent;
|
|
webidl BrowsingContext;
|
|
|
|
[builtinclass, scriptable, uuid(8e49f7b0-1f98-4939-bf91-e9c39cd56434)]
|
|
interface nsIRemoteTab : nsISupports
|
|
{
|
|
/**
|
|
* When set to true, this tells the child to paint and upload layers to
|
|
* the compositor. When set to false, previous layers are cleared from
|
|
* the compositor, but only if preserveLayers is also set to false.
|
|
*/
|
|
attribute boolean renderLayers;
|
|
|
|
/**
|
|
* True if layers are being rendered and the compositor has reported
|
|
* receiving them.
|
|
*/
|
|
readonly attribute boolean hasLayers;
|
|
|
|
/**
|
|
* When set to true, this priority hint indicates that the content
|
|
* processes of this tab should be set to a higher process priority.
|
|
*/
|
|
attribute boolean priorityHint;
|
|
|
|
/**
|
|
* Adjusts the tab's active state in the process priority manager,
|
|
* allowing its process to be given a lower priority.
|
|
*/
|
|
void deprioritize();
|
|
|
|
/**
|
|
* As an optimisation, setting the docshell's active state to
|
|
* inactive also triggers a layer invalidation to free up some
|
|
* potentially unhelpful memory usage. Calling preserveLayers
|
|
* will cause the layers to be preserved even for inactive
|
|
* docshells.
|
|
*/
|
|
void preserveLayers(in boolean aPreserveLayers);
|
|
|
|
readonly attribute uint64_t tabId;
|
|
|
|
readonly attribute uint64_t contentProcessId;
|
|
|
|
/**
|
|
* The OS level process Id of the related child process.
|
|
*/
|
|
readonly attribute int32_t osPid;
|
|
|
|
/**
|
|
* The toplevel BrowsingContext loaded in this remote tab.
|
|
*/
|
|
readonly attribute BrowsingContext browsingContext;
|
|
|
|
/**
|
|
* True if we've previously received layers for this tab when switching to
|
|
* it.
|
|
*/
|
|
readonly attribute boolean hasPresented;
|
|
|
|
/**
|
|
* Ensures that the content process which has this remote tab has all of the
|
|
* permissions required to load a document with the given principal.
|
|
*/
|
|
void transmitPermissionsForPrincipal(in nsIPrincipal aPrincipal);
|
|
|
|
/**
|
|
* Similar to `nsIDocShell.createAboutBlankDocumentViewer` but on a remote
|
|
* frame. The docShell must not yet have navigated away from the initial
|
|
* about:blank document when this method is called.
|
|
*
|
|
* @param aPrincipal the principal to use for the new document.
|
|
* @param aPartitionedPrincipal the partitioned principal to use for the new
|
|
* document.
|
|
*/
|
|
void createAboutBlankDocumentViewer(in nsIPrincipal aPrincipal,
|
|
in nsIPrincipal aPartitionedPrincipal);
|
|
|
|
cenum NavigationType : 8 {
|
|
NAVIGATE_BACK = 0,
|
|
NAVIGATE_FORWARD = 1,
|
|
NAVIGATE_INDEX = 2,
|
|
NAVIGATE_URL = 3
|
|
};
|
|
|
|
/**
|
|
* Interrupt content scripts if possible/needed to allow chrome scripts in the
|
|
* content process to run (in particular, to allow navigating through browser
|
|
* history.
|
|
*/
|
|
[implicit_jscontext, binaryname(MaybeCancelContentJSExecutionFromScript)]
|
|
void maybeCancelContentJSExecution(
|
|
in nsIRemoteTab_NavigationType aNavigationType,
|
|
[optional] in jsval aCancelContentJSOptions);
|
|
|
|
/**
|
|
* Notify the remote tab that the resolution has changed.
|
|
*/
|
|
[noscript] void notifyResolutionChanged();
|
|
};
|