Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
- Manifest: js/xpconnect/tests/unit/xpcshell.toml
/* 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/. */
function isSandboxFrozen(sandbox) {
return Cu.evalInSandbox("Object.isFrozen(Object)", sandbox);
}
add_task(function test_invalid_option() {
Assert.throws(
() => Cu.Sandbox(null, { freezeBuiltins: 1 }),
/Expected a boolean value for property freezeBuiltins/,
"freezeBuiltins must be a boolean"
);
});
add_task(function test_null_principal_sandbox() {
let sand1 = Cu.Sandbox(null);
ok(!isSandboxFrozen(sand1), "Null sandbox not frozen by default");
let sand2 = Cu.Sandbox(null, { freezeBuiltins: true });
ok(isSandboxFrozen(sand2), "Null sandbox can be frozen");
});
add_task(function test_system_sandbox() {
let sand1 = Cu.Sandbox(Services.scriptSecurityManager.getSystemPrincipal());
ok(isSandboxFrozen(sand1), "System sandbox frozen by default");
let sand2 = Cu.Sandbox(
Services.scriptSecurityManager.getSystemPrincipal(),
{ freezeBuiltins: false }
);
ok(!isSandboxFrozen(sand2), "System sandbox can opt out of being frozen");
});