mozilla

Compare Revisions

Components.utils.Sandbox

Change Revisions

Revision 319303:

Revision 319303 by Markh on

Revision 341317:

Revision 341317 by bholley on

Title:
Components.utils.Sandbox
Components.utils.Sandbox
Slug:
Components.utils.Sandbox
Components.utils.Sandbox
Tags:
"XPConnect", "XPCOM:Language Bindings"
"XPConnect", "XPCOM:Language Bindings"
Content:

Revision 319303
Revision 341317
n59          A Boolean value indicating whether code outside the sann59          A Boolean value indicating whether the sandbox wants X-
>dbox wants X-ray vision with respect to objects inside the sandbo>ray vision with respect to same-origin objects outside the sandbo
>x. Default: <code>true</code>.>x. Default: <code>true</code>.
n62          “X-ray vision” means exactly the same X-ray behavior thn62          “X-ray vision” is exactly the same X-ray behavior that 
>at chrome code always gets, by default, when working with content>script always gets, by default, when working with DOM objects acc
> DOM objects. See <a href="/en/Safely_accessing_content_DOM_from_>ross origin boundaries. This is primarily visible for chrome code
>chrome" title="en/Safely accessing content DOM from chrome">Safel> accessing content. However, it also occurs during cross-origin a
>y accessing content DOM from chrome</a>, or read on for a brief s>ccess between two content pages, since each page sees a "vanilla"
>ummary.> view of the other. The protection is bidirectional: the caller s
 >ees the bonafide DOM objects without being confused by sneakily-r
 >edefined properties, and the target receives appropriate privacy 
 >from having its expandos inspected by untrusted callers. In situa
 >tions where only unidirectional protection is needed, callers hav
 >e the option to waive the Xray behavior using <code>wrappedJSObje
 >ct</code> or <code>XPCNativeWrapper.unwrap().</code>
n65          X-ray vision lets the code outside the sandbox use objen65          In general, when accessing same-origin content, script 
>cts from inside the sandbox without worrying about the possibilit>gets a Transparent wrapper rather than an Xray wrapper. However, 
>y of sandbox code changing the object in surprising ways (for exa>sandboxes are often used when chrome wants to run script as anoth
>mple, by replacing the object's JavaScript methods). Code outside>er origin, possibly to interact with the page. In this case, same
> the sandbox will see right through those possibly malicious chan>-origin Xrays and be desirable, and <code>wantXrays</code> should
>ges. When code outside the sandbox calls a method of a sandbox ob> be set to <code>true</code>. This is also the default (for histo
>ject, it has the standard behavior. This is more secure, so the d>rical reasons).
>efault is <code>true</code>. 
n68          More technically: if <code>wantXrays</code> is omitted n68          See <a href="/en/Safely_accessing_content_DOM_from_chro
>or <code>true</code>, then the new sandbox object is an XrayWrapp>me" title="en/Safely accessing content DOM from chrome">Safely ac
>er, and calls to <code>evalInSandbox</code> will return XrayWrapp>cessing content DOM from chrome</a> for more details.
>ers if the sandbox has a non-chrome principal. Furthermore, if <c 
>ode>wantXrays</code> is <code>false</code> and the <code>sandboxP 
>rototype</code> is itself an XrayWrapper, then the underlying obj 
>ect it wraps is used as the actual prototype. 
n80    <p>n
81      For example, to specify a prototype:
82    </p>
83    <pre>
84var mySandbox = Components.utils.Sandbox("<span class="plain">htt
>p://www.example.com/</span>", { sandboxPrototype: protoObj }); 
85</pre>
86    <p>
87      And if you want to specify a prototype and give up the safe
>ty of x-ray vision: 
88    </p>
89    <pre>
90var mySandbox = Components.utils.Sandbox("<span class="plain">htt
>p://www.example.com/</span>", { sandboxPrototype: protoObj, wantX 
>rays: false }); 
91</pre>
t102    <h2>t90    <h2 id="Importing_functions_or_objects_into_the_Sandbox">

Back to History