Add-ons using the techniques described in this document are considered a legacy technology in Firefox. Don't use these techniques to develop new add-ons. Use WebExtensions instead. If you maintain an add-on which uses the techniques described here, consider migrating it to use WebExtensions.
From Firefox 53 onwards, no new legacy add-ons will be accepted on addons.mozilla.org (AMO).
From Firefox 57 onwards, WebExtensions will be the only supported extension type, and Firefox will not load other types.
Even before Firefox 57, changes coming up in the Firefox platform will break many legacy extensions. These changes include multiprocess Firefox (e10s), sandboxing, and multiple content processes. Legacy extensions that are affected by these changes should migrate to WebExtensions if they can. See the "Compatibility Milestones" document for more.
A wiki page containing resources, migration paths, office hours, and more, is available to help developers transition to the new technologies.
Experimental
Provides helper functions for working with platform internals like frames and browsers.
Usage
Module exports create
function that takes the nsIDOMDocument
of a privileged document and creates a browser
element in its documentElement
:
let { open } = require('sdk/window/utils'); let { create } = require('sdk/frame/utils'); let window = open('data:text/html,Foo'); let frame = create(window.document);
Optionally create
can be passed set of options
to configure created frame even further.
Execution of scripts may easily be enabled:
let { open } = require('sdk/window/utils'); let { create } = require('sdk/frame/utils'); let window = open('data:text/html,top'); let frame = create(window.document, { uri: 'data:text/html,<script>console.log("running");</script>', allowJavascript: true }); }
Globals
Functions
create(document, options)
Creates a XUL browser
element in a privileged document.
Parameters
document : nsIDOMDocument
options : object
Optional options:
Name | Type | |
---|---|---|
type | String |
String that defines access type of the document loaded into it. Defaults to |
uri | String |
URI of the document to be loaded into the new frame. Defaults to |
remote | Boolean |
If |
allowAuth | Boolean |
Whether to allow auth dialogs. Defaults to |
allowJavascript | Boolean |
Whether to allow Javascript execution. Defaults to |
allowPlugins | Boolean |
Whether to allow plugin execution. Defaults to |
Returns
frame : The new browser
element.