blob: c88d1985e8ecaa195216c1824d6fa065510c1140 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
<!-- 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/. -->
The `frame/utils` module provides helper functions for working with platform
internals like [frames](https://developer.mozilla.org/en/XUL/iframe) and
[browsers](https://developer.mozilla.org/en/XUL/browser).
### create
Module exports `create` function that takes `nsIDOMDocument` of the
[privileged document](https://developer.mozilla.org/en/Working_with_windows_in_chrome_code)
and creates a `browser` element in it's `documentElement`:
let { open } = require('api-utils/window/utils');
let { create } = require('api-utils/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. Following options are supported:
- `type`
String that defines access type of the document loaded into it. Defaults to
`'content'`. For more details and other possible values see
[documentation on MDN](https://developer.mozilla.org/en/XUL/Attribute/browser.type)
- `uri`
URI of the document to be loaded into created frame. Defaults to `about:blank`.
- `remote`
If `true` separate process will be used for this frame, also in such case all
the following options are ignored.
- `allowAuth`
Whether to allow auth dialogs. Defaults to `false`.
- `allowJavascript`
Whether to allow Javascript execution. Defaults to `false`.
- `allowPlugins`
Whether to allow plugin execution. Defaults to `false`.
Execution of scripts may easily be enabled:
let { open } = require('api-utils/window/utils');
let { create } = require('api-utils/frame/utils');
let window = open('data:text/html,top');
let frame = create(window.document, {
uri: 'data:text/html,<script>alert("Hello")</script>',
allowJavascript: true
});
|