mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-25 01:47:31 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
30
js/xpconnect/tests/unit/test_allowWaivers.js
Normal file
30
js/xpconnect/tests/unit/test_allowWaivers.js
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
const Cu = Components.utils;
|
||||
function checkWaivers(from, allowed) {
|
||||
var sb = new Cu.Sandbox('http://example.com');
|
||||
from.test = sb.eval('var o = {prop: 2, f: function() {return 42;}}; o');
|
||||
|
||||
// Make sure that |from| has Xrays to sb.
|
||||
do_check_eq(from.eval('test.prop'), 2);
|
||||
do_check_eq(from.eval('test.f'), undefined);
|
||||
|
||||
// Make sure that waivability works as expected.
|
||||
do_check_eq(from.eval('!!test.wrappedJSObject'), allowed);
|
||||
do_check_eq(from.eval('XPCNativeWrapper.unwrap(test) !== test'), allowed);
|
||||
|
||||
// Make a sandbox with the same principal as |from|, but without any waiver
|
||||
// restrictions, and make sure that the waiver does not transfer.
|
||||
var friend = new Cu.Sandbox(Cu.getObjectPrincipal(from));
|
||||
friend.test = from.test;
|
||||
friend.eval('var waived = test.wrappedJSObject;');
|
||||
do_check_true(friend.eval('waived.f()'), 42);
|
||||
friend.from = from;
|
||||
friend.eval('from.waived = waived');
|
||||
do_check_eq(from.eval('!!waived.f'), allowed);
|
||||
}
|
||||
|
||||
function run_test() {
|
||||
checkWaivers(new Cu.Sandbox('http://example.com'), true);
|
||||
checkWaivers(new Cu.Sandbox('http://example.com', {allowWaivers: false}), false);
|
||||
checkWaivers(new Cu.Sandbox(['http://example.com']), true);
|
||||
checkWaivers(new Cu.Sandbox(['http://example.com'], {allowWaivers: false}), false);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue