forked from mirrors/gecko-dev
Bug 1361859 - Enable eslint on caps/ directory; r=standard8
Stop excluding caps/ from eslint runs and apply mozilla/recommended rules. This generally affects xpcshell and mochitest files under caps/tests. Includes many mechanical changes to comply with mozilla recommended formatting rules.
This commit is contained in:
parent
78c5013b6a
commit
21d0203054
10 changed files with 150 additions and 128 deletions
|
|
@ -9,7 +9,6 @@ obj*/**
|
|||
# below.
|
||||
addon-sdk/**
|
||||
build/**
|
||||
caps/**
|
||||
chrome/**
|
||||
config/**
|
||||
db/**
|
||||
|
|
@ -78,6 +77,9 @@ browser/extensions/activity-stream/vendor/**
|
|||
# imported from chromium
|
||||
browser/extensions/mortar/**
|
||||
|
||||
# caps/ exclusions
|
||||
caps/tests/mochitest/browser_checkloaduri.js
|
||||
|
||||
# devtools/ exclusions
|
||||
devtools/client/canvasdebugger/**
|
||||
devtools/client/commandline/**
|
||||
|
|
|
|||
7
caps/.eslintrc.js
Normal file
7
caps/.eslintrc.js
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
"use strict";
|
||||
|
||||
module.exports = {
|
||||
"extends": [
|
||||
"plugin:mozilla/recommended"
|
||||
]
|
||||
};
|
||||
8
caps/tests/mochitest/.eslintrc.js
Normal file
8
caps/tests/mochitest/.eslintrc.js
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
"use strict";
|
||||
|
||||
module.exports = {
|
||||
"extends": [
|
||||
"plugin:mozilla/mochitest-test",
|
||||
"plugin:mozilla/browser-test"
|
||||
]
|
||||
};
|
||||
|
|
@ -22,8 +22,8 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=1180921
|
|||
SimpleTest.waitForExplicitFinish();
|
||||
let oldAddonIdCallback = aps.setExtensionURIToAddonIdCallback(uri => uri.host);
|
||||
SimpleTest.registerCleanupFunction(function() {
|
||||
aps.setAddonLoadURICallback('addona', null);
|
||||
aps.setAddonLoadURICallback('addonb', null);
|
||||
aps.setAddonLoadURICallback("addona", null);
|
||||
aps.setAddonLoadURICallback("addonb", null);
|
||||
aps.setExtensionURIToAddonIdCallback(oldAddonIdCallback);
|
||||
});
|
||||
|
||||
|
|
@ -41,28 +41,28 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=1180921
|
|||
return p;
|
||||
}
|
||||
|
||||
let addonA = new Cu.Sandbox(ssm.createCodebasePrincipal(Services.io.newURI('moz-extension://addonA/'), {}),
|
||||
{wantGlobalProperties: ['XMLHttpRequest']});
|
||||
let addonB = new Cu.Sandbox(ssm.createCodebasePrincipal(Services.io.newURI('moz-extension://addonB/'), {}),
|
||||
{wantGlobalProperties: ['XMLHttpRequest']});
|
||||
let addonA = new Cu.Sandbox(ssm.createCodebasePrincipal(Services.io.newURI("moz-extension://addonA/"), {}),
|
||||
{wantGlobalProperties: ["XMLHttpRequest"]});
|
||||
let addonB = new Cu.Sandbox(ssm.createCodebasePrincipal(Services.io.newURI("moz-extension://addonB/"), {}),
|
||||
{wantGlobalProperties: ["XMLHttpRequest"]});
|
||||
|
||||
function uriForDomain(d) { return d + '/tests/caps/tests/mochitest/file_data.txt' }
|
||||
function uriForDomain(d) { return d + "/tests/caps/tests/mochitest/file_data.txt" }
|
||||
|
||||
tryLoad(addonA, uriForDomain('http://test1.example.org'))
|
||||
tryLoad(addonA, uriForDomain("http://test1.example.org"))
|
||||
.then(function(success) {
|
||||
ok(!success, "cross-origin load should fail for addon A");
|
||||
aps.setAddonLoadURICallback('addona', function(uri) { return /test1/.test(uri.host); });
|
||||
aps.setAddonLoadURICallback('addonb', function(uri) { return /test2/.test(uri.host); });
|
||||
return tryLoad(addonA, uriForDomain('http://test1.example.org'));
|
||||
aps.setAddonLoadURICallback("addona", function(uri) { return /test1/.test(uri.host); });
|
||||
aps.setAddonLoadURICallback("addonb", function(uri) { return /test2/.test(uri.host); });
|
||||
return tryLoad(addonA, uriForDomain("http://test1.example.org"));
|
||||
}).then(function(success) {
|
||||
ok(success, "whitelisted cross-origin load of test1 should succeed for addon A");
|
||||
return tryLoad(addonB, uriForDomain('http://test1.example.org'));
|
||||
return tryLoad(addonB, uriForDomain("http://test1.example.org"));
|
||||
}).then(function(success) {
|
||||
ok(!success, "non-whitelisted cross-origin load of test1 should fail for addon B");
|
||||
return tryLoad(addonB, uriForDomain('http://test2.example.org'));
|
||||
return tryLoad(addonB, uriForDomain("http://test2.example.org"));
|
||||
}).then(function(success) {
|
||||
ok(success, "whitelisted cross-origin load of test2 should succeed for addon B");
|
||||
return tryLoad(addonA, uriForDomain('http://test2.example.org'));
|
||||
return tryLoad(addonA, uriForDomain("http://test2.example.org"));
|
||||
}).then(function(success) {
|
||||
ok(!success, "non-whitelisted cross-origin load of test2 should fail for addon A");
|
||||
SimpleTest.finish();
|
||||
|
|
|
|||
|
|
@ -21,35 +21,31 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=246699
|
|||
** Test for Bug 246699
|
||||
** (should produce stack information for caps errors)
|
||||
**/
|
||||
function isError(e)
|
||||
{
|
||||
function isError(e) {
|
||||
return e.constructor.name === "Error" || e.constructor.name === "TypeError";
|
||||
}
|
||||
|
||||
function hasStack(e)
|
||||
{
|
||||
function hasStack(e) {
|
||||
return isError(e) && /inciteCaps/.test(e.stack);
|
||||
}
|
||||
|
||||
function inciteCaps(f)
|
||||
{
|
||||
function inciteCaps(f) {
|
||||
try {
|
||||
f();
|
||||
return "operation succeeded";
|
||||
} catch (e if hasStack(e)) {
|
||||
return "denied-stack";
|
||||
} catch (e) {
|
||||
if (hasStack(e)) {
|
||||
return "denied-stack";
|
||||
}
|
||||
return "unexpected: " + e;
|
||||
}
|
||||
}
|
||||
|
||||
function tryChromeLoad()
|
||||
{
|
||||
function tryChromeLoad() {
|
||||
window.frames[0].location = "chrome://global/content/mozilla.xhtml";
|
||||
}
|
||||
|
||||
function tryComponentsClasses()
|
||||
{
|
||||
function tryComponentsClasses() {
|
||||
return SpecialPowers.Components.classes["@mozilla.org/dummy;1"];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=292789
|
|||
** even for ALLOW_CHROME mechanisms (<script>, <img> etc)
|
||||
**/
|
||||
|
||||
/* import-globals-from ../../../toolkit/content/treeUtils.js */
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
/** <script src=""> test **/
|
||||
|
|
@ -75,14 +77,14 @@ function finishTest() {
|
|||
|
||||
function fail(event) {
|
||||
is("fail", event.target.expected,
|
||||
"content should not be allowed to load "+event.target.src);
|
||||
"content should not be allowed to load " + event.target.src);
|
||||
if (event.target.callback)
|
||||
event.target.callback();
|
||||
}
|
||||
|
||||
function success(event) {
|
||||
is("success", event.target.expected,
|
||||
"content should be able to load "+event.target.src);
|
||||
"content should be able to load " + event.target.src);
|
||||
if (event.target.callback)
|
||||
event.target.callback();
|
||||
}
|
||||
|
|
@ -94,7 +96,7 @@ function loadImage(uri, expect, callback) {
|
|||
img.expected = expect;
|
||||
img.callback = callback;
|
||||
img.src = uri;
|
||||
//document.getElementById("content").appendChild(img);
|
||||
// document.getElementById("content").appendChild(img);
|
||||
}
|
||||
|
||||
// Start off the script src test, and have it start the img tests when complete.
|
||||
|
|
|
|||
|
|
@ -21,14 +21,14 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=423375
|
|||
** Test for Bug 423375
|
||||
** (content shouldn't be able to load chrome: or resource:)
|
||||
**/
|
||||
function tryLoad(url)
|
||||
{
|
||||
function tryLoad(url) {
|
||||
try {
|
||||
window.frames[0].location = url;
|
||||
return "loaded";
|
||||
} catch (e if /Access.*denied/.test(String(e))) {
|
||||
return "denied";
|
||||
} catch (e) {
|
||||
if (/Access.*denied/.test(String(e))) {
|
||||
return "denied";
|
||||
}
|
||||
return "unexpected: " + e;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,8 +23,8 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=1161831
|
|||
.QueryInterface(SpecialPowers.Ci.nsISubstitutingProtocolHandler);
|
||||
|
||||
SimpleTest.registerCleanupFunction(function() {
|
||||
extensionHandler.setSubstitution('cherise', null);
|
||||
extensionHandler.setSubstitution('liebchen', null);
|
||||
extensionHandler.setSubstitution("cherise", null);
|
||||
extensionHandler.setSubstitution("liebchen", null);
|
||||
aps.setExtensionURILoadCallback(oldLoadCallback);
|
||||
aps.setExtensionURIToAddonIdCallback(oldMapCallback);
|
||||
});
|
||||
|
|
@ -33,16 +33,16 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=1161831
|
|||
|
||||
// First, get a file:// URI to something - open to suggestions on how to do
|
||||
// this more easily.
|
||||
var resURI = SpecialPowers.Services.io.newURI('resource://testing-common/resource_test_file.html');
|
||||
var resURI = SpecialPowers.Services.io.newURI("resource://testing-common/resource_test_file.html");
|
||||
var filePath = resourceHandler.resolveURI(resURI);
|
||||
ok(filePath.startsWith('file://'), 'resource:// URI resolves where we expect: ' + filePath);
|
||||
ok(filePath.startsWith("file://"), "resource:// URI resolves where we expect: " + filePath);
|
||||
var fileURI = SpecialPowers.Services.io.newURI(filePath);
|
||||
|
||||
// Register a moz-extension:// URI.
|
||||
extensionHandler.setSubstitution('cherise', fileURI);
|
||||
extensionHandler.setSubstitution("cherise", fileURI);
|
||||
|
||||
// Alias the above.
|
||||
extensionHandler.setSubstitution('liebchen', SpecialPowers.Services.io.newURI('moz-extension://cherise'));
|
||||
extensionHandler.setSubstitution("liebchen", SpecialPowers.Services.io.newURI("moz-extension://cherise"));
|
||||
|
||||
//
|
||||
// Make sure that non-file:// URIs don't work.
|
||||
|
|
@ -50,7 +50,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=1161831
|
|||
|
||||
// resource://
|
||||
try {
|
||||
extensionHandler.setSubstitution('interdit', resURI);
|
||||
extensionHandler.setSubstitution("interdit", resURI);
|
||||
ok(false, "Should have thrown for mapping moz-extension to resource");
|
||||
} catch (e) {
|
||||
ok(true, "Threw correctly: " + e);
|
||||
|
|
@ -58,15 +58,15 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=1161831
|
|||
|
||||
// chrome://
|
||||
try {
|
||||
var chromeURI = SpecialPowers.Services.io.newURI('chrome://global/content/mozilla.xhtml');
|
||||
extensionHandler.setSubstitution('verboten', chromeURI);
|
||||
var chromeURI = SpecialPowers.Services.io.newURI("chrome://global/content/mozilla.xhtml");
|
||||
extensionHandler.setSubstitution("verboten", chromeURI);
|
||||
ok(false, "Should have thrown for mapping moz-extension to chrome");
|
||||
} catch (e) {
|
||||
ok(true, "Threw correctly: " + e);
|
||||
}
|
||||
|
||||
function navigateWithLocation(ifr, url) { ifr.contentWindow.location = url; }
|
||||
function navigateWithSrc(ifr, url) { ifr.setAttribute('src', url); }
|
||||
function navigateWithSrc(ifr, url) { ifr.setAttribute("src", url); }
|
||||
function navigateFromChromeWithLocation(ifr, url) { SpecialPowers.wrap(ifr).contentWindow.location = url; }
|
||||
function navigateFromChromeWithWebNav(ifr, url) {
|
||||
SpecialPowers.wrap(ifr).contentWindow
|
||||
|
|
@ -81,25 +81,25 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=1161831
|
|||
aps.setExtensionURILoadCallback(cb);
|
||||
}
|
||||
|
||||
aps.setExtensionURIToAddonIdCallback(SpecialPowers.wrapCallback(function (uri) { return 'imaginaryaddon-' + uri.host[0]; }));
|
||||
aps.setExtensionURIToAddonIdCallback(SpecialPowers.wrapCallback(function(uri) { return "imaginaryaddon-" + uri.host[0]; }));
|
||||
|
||||
function testLoad(url, navigate, shouldThrow) {
|
||||
var ifr = document.createElement('iframe');
|
||||
var ifr = document.createElement("iframe");
|
||||
var p = new Promise(function(resolve, reject) {
|
||||
ifr.onload = function() {
|
||||
ok(true, 'Loaded ' + url);
|
||||
ok(true, "Loaded " + url);
|
||||
var prin = SpecialPowers.wrap(ifr.contentWindow).document.nodePrincipal;
|
||||
function stripTrailingSlash(s) { return s.replace(/\/$/, ''); };
|
||||
is(stripTrailingSlash(prin.URI.spec), url, 'Principal uri is correct: ' + url);
|
||||
function stripPath(s) { return s.replace(/(.*\/\/.+)\/.*/, '$1'); };
|
||||
is(prin.originNoSuffix, stripPath(url), 'Principal origin is correct: ' + prin.originNoSuffix);
|
||||
is(prin.addonId, 'imaginaryaddon-' + url[url.indexOf('/') + 2], 'addonId is correct');
|
||||
function stripTrailingSlash(s) { return s.replace(/\/$/, ""); }
|
||||
is(stripTrailingSlash(prin.URI.spec), url, "Principal uri is correct: " + url);
|
||||
function stripPath(s) { return s.replace(/(.*\/\/.+)\/.*/, "$1"); }
|
||||
is(prin.originNoSuffix, stripPath(url), "Principal origin is correct: " + prin.originNoSuffix);
|
||||
is(prin.addonId, "imaginaryaddon-" + url[url.indexOf("/") + 2], "addonId is correct");
|
||||
if (/_blank/.test(url)) {
|
||||
is(SpecialPowers.wrap(ifr.contentWindow).document.documentElement.innerHTML,
|
||||
'<head></head><body></body>', 'blank document looks right');
|
||||
"<head></head><body></body>", "blank document looks right");
|
||||
} else {
|
||||
is(SpecialPowers.wrap(ifr.contentWindow).document.title, 'resource test file',
|
||||
'document looks right');
|
||||
is(SpecialPowers.wrap(ifr.contentWindow).document.title, "resource test file",
|
||||
"document looks right");
|
||||
}
|
||||
ifr.remove();
|
||||
resolve();
|
||||
|
|
@ -134,20 +134,20 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=1161831
|
|||
//
|
||||
// Perform some loads and make sure they work correctly.
|
||||
//
|
||||
testLoad.bind(null, 'moz-extension://cherise', navigateFromChromeWithLocation)()
|
||||
.then(testLoad.bind(null, 'moz-extension://cherise', navigateFromChromeWithWebNav))
|
||||
.then(testLoad.bind(null, 'moz-extension://cherise', navigateWithLocation, /* shouldThrow = */ true))
|
||||
.then(testXHR.bind(null, 'moz-extension://cherise', /* shouldError = */ true))
|
||||
testLoad.bind(null, "moz-extension://cherise", navigateFromChromeWithLocation)()
|
||||
.then(testLoad.bind(null, "moz-extension://cherise", navigateFromChromeWithWebNav))
|
||||
.then(testLoad.bind(null, "moz-extension://cherise", navigateWithLocation, /* shouldThrow = */ true))
|
||||
.then(testXHR.bind(null, "moz-extension://cherise", /* shouldError = */ true))
|
||||
.then(setWhitelistCallback.bind(null, /cherise/))
|
||||
.then(testLoad.bind(null, 'moz-extension://cherise', navigateWithLocation))
|
||||
.then(testXHR.bind(null, 'moz-extension://cherise'))
|
||||
.then(testLoad.bind(null, 'moz-extension://liebchen', navigateWithLocation, /* shouldThrow = */ true))
|
||||
.then(testXHR.bind(null, 'moz-extension://liebchen', /* shouldError = */ true))
|
||||
.then(testLoad.bind(null, "moz-extension://cherise", navigateWithLocation))
|
||||
.then(testXHR.bind(null, "moz-extension://cherise"))
|
||||
.then(testLoad.bind(null, "moz-extension://liebchen", navigateWithLocation, /* shouldThrow = */ true))
|
||||
.then(testXHR.bind(null, "moz-extension://liebchen", /* shouldError = */ true))
|
||||
.then(setWhitelistCallback.bind(null, /cherise|liebchen/))
|
||||
.then(testLoad.bind(null, 'moz-extension://liebchen', navigateWithLocation))
|
||||
.then(testLoad.bind(null, 'moz-extension://liebchen', navigateWithSrc))
|
||||
.then(testLoad.bind(null, 'moz-extension://cherise', navigateWithSrc))
|
||||
.then(testLoad.bind(null, 'moz-extension://cherise/_blank.html', navigateWithSrc))
|
||||
.then(testLoad.bind(null, "moz-extension://liebchen", navigateWithLocation))
|
||||
.then(testLoad.bind(null, "moz-extension://liebchen", navigateWithSrc))
|
||||
.then(testLoad.bind(null, "moz-extension://cherise", navigateWithSrc))
|
||||
.then(testLoad.bind(null, "moz-extension://cherise/_blank.html", navigateWithSrc))
|
||||
.then(SimpleTest.finish.bind(SimpleTest),
|
||||
function(e) { ok(false, "rejected promise: " + e); SimpleTest.finish() }
|
||||
);
|
||||
|
|
|
|||
7
caps/tests/unit/.eslintrc.js
Normal file
7
caps/tests/unit/.eslintrc.js
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
"use strict";
|
||||
|
||||
module.exports = {
|
||||
"extends": [
|
||||
"plugin:mozilla/xpcshell-test"
|
||||
]
|
||||
};
|
||||
|
|
@ -25,10 +25,10 @@ function checkOriginAttributes(prin, attrs, suffix) {
|
|||
attrs = attrs || {};
|
||||
do_check_eq(prin.originAttributes.appId, attrs.appId || 0);
|
||||
do_check_eq(prin.originAttributes.inIsolatedMozBrowser, attrs.inIsolatedMozBrowser || false);
|
||||
do_check_eq(prin.originSuffix, suffix || '');
|
||||
do_check_eq(ChromeUtils.originAttributesToSuffix(attrs), suffix || '');
|
||||
do_check_eq(prin.originSuffix, suffix || "");
|
||||
do_check_eq(ChromeUtils.originAttributesToSuffix(attrs), suffix || "");
|
||||
do_check_true(ChromeUtils.originAttributesMatchPattern(prin.originAttributes, attrs));
|
||||
if (!prin.isNullPrincipal && !prin.origin.startsWith('[')) {
|
||||
if (!prin.isNullPrincipal && !prin.origin.startsWith("[")) {
|
||||
do_check_true(ssm.createCodebasePrincipalFromOrigin(prin.origin).equals(prin));
|
||||
} else {
|
||||
checkThrows(() => ssm.createCodebasePrincipalFromOrigin(prin.origin));
|
||||
|
|
@ -55,33 +55,33 @@ function printAttrs(name, attrs) {
|
|||
|
||||
function checkValues(attrs, values) {
|
||||
values = values || {};
|
||||
//printAttrs("attrs", attrs);
|
||||
//printAttrs("values", values);
|
||||
// printAttrs("attrs", attrs);
|
||||
// printAttrs("values", values);
|
||||
do_check_eq(attrs.appId, values.appId || 0);
|
||||
do_check_eq(attrs.userContextId, values.userContextId || 0);
|
||||
do_check_eq(attrs.inIsolatedMozBrowser, values.inIsolatedMozBrowser || false);
|
||||
do_check_eq(attrs.privateBrowsingId, values.privateBrowsingId || '');
|
||||
do_check_eq(attrs.firstPartyDomain, values.firstPartyDomain || '');
|
||||
do_check_eq(attrs.privateBrowsingId, values.privateBrowsingId || "");
|
||||
do_check_eq(attrs.firstPartyDomain, values.firstPartyDomain || "");
|
||||
}
|
||||
|
||||
function run_test() {
|
||||
// Attributeless origins.
|
||||
do_check_eq(ssm.getSystemPrincipal().origin, '[System Principal]');
|
||||
do_check_eq(ssm.getSystemPrincipal().origin, "[System Principal]");
|
||||
checkOriginAttributes(ssm.getSystemPrincipal());
|
||||
var exampleOrg = ssm.createCodebasePrincipal(makeURI('http://example.org'), {});
|
||||
do_check_eq(exampleOrg.origin, 'http://example.org');
|
||||
var exampleOrg = ssm.createCodebasePrincipal(makeURI("http://example.org"), {});
|
||||
do_check_eq(exampleOrg.origin, "http://example.org");
|
||||
checkOriginAttributes(exampleOrg);
|
||||
var exampleCom = ssm.createCodebasePrincipal(makeURI('https://www.example.com:123'), {});
|
||||
do_check_eq(exampleCom.origin, 'https://www.example.com:123');
|
||||
var exampleCom = ssm.createCodebasePrincipal(makeURI("https://www.example.com:123"), {});
|
||||
do_check_eq(exampleCom.origin, "https://www.example.com:123");
|
||||
checkOriginAttributes(exampleCom);
|
||||
var nullPrin = Cu.getObjectPrincipal(new Cu.Sandbox(null));
|
||||
do_check_true(/^moz-nullprincipal:\{([0-9]|[a-z]|\-){36}\}$/.test(nullPrin.origin));
|
||||
checkOriginAttributes(nullPrin);
|
||||
var ipv6Prin = ssm.createCodebasePrincipal(makeURI('https://[2001:db8::ff00:42:8329]:123'), {});
|
||||
do_check_eq(ipv6Prin.origin, 'https://[2001:db8::ff00:42:8329]:123');
|
||||
var ipv6Prin = ssm.createCodebasePrincipal(makeURI("https://[2001:db8::ff00:42:8329]:123"), {});
|
||||
do_check_eq(ipv6Prin.origin, "https://[2001:db8::ff00:42:8329]:123");
|
||||
checkOriginAttributes(ipv6Prin);
|
||||
var ipv6NPPrin = ssm.createCodebasePrincipal(makeURI('https://[2001:db8::ff00:42:8329]'), {});
|
||||
do_check_eq(ipv6NPPrin.origin, 'https://[2001:db8::ff00:42:8329]');
|
||||
var ipv6NPPrin = ssm.createCodebasePrincipal(makeURI("https://[2001:db8::ff00:42:8329]"), {});
|
||||
do_check_eq(ipv6NPPrin.origin, "https://[2001:db8::ff00:42:8329]");
|
||||
checkOriginAttributes(ipv6NPPrin);
|
||||
var ep = Cu.getObjectPrincipal(Cu.Sandbox([exampleCom, nullPrin, exampleOrg]));
|
||||
checkOriginAttributes(ep);
|
||||
|
|
@ -92,42 +92,42 @@ function run_test() {
|
|||
do_check_eq(ep.origin, `[Expanded Principal [${exampleOrg.origin}, ${exampleCom.origin}, ${nullPrin.origin}]]`);
|
||||
|
||||
// Make sure createCodebasePrincipal does what the rest of gecko does.
|
||||
do_check_true(exampleOrg.equals(Cu.getObjectPrincipal(new Cu.Sandbox('http://example.org'))));
|
||||
do_check_true(exampleOrg.equals(Cu.getObjectPrincipal(new Cu.Sandbox("http://example.org"))));
|
||||
|
||||
//
|
||||
// Test origin attributes.
|
||||
//
|
||||
|
||||
// Just app.
|
||||
var exampleOrg_app = ssm.createCodebasePrincipal(makeURI('http://example.org'), {appId: 42});
|
||||
var exampleOrg_app = ssm.createCodebasePrincipal(makeURI("http://example.org"), {appId: 42});
|
||||
var nullPrin_app = ssm.createNullPrincipal({appId: 42});
|
||||
checkOriginAttributes(exampleOrg_app, {appId: 42}, '^appId=42');
|
||||
checkOriginAttributes(nullPrin_app, {appId: 42}, '^appId=42');
|
||||
do_check_eq(exampleOrg_app.origin, 'http://example.org^appId=42');
|
||||
checkOriginAttributes(exampleOrg_app, {appId: 42}, "^appId=42");
|
||||
checkOriginAttributes(nullPrin_app, {appId: 42}, "^appId=42");
|
||||
do_check_eq(exampleOrg_app.origin, "http://example.org^appId=42");
|
||||
|
||||
// Just browser.
|
||||
var exampleOrg_browser = ssm.createCodebasePrincipal(makeURI('http://example.org'), {inIsolatedMozBrowser: true});
|
||||
var exampleOrg_browser = ssm.createCodebasePrincipal(makeURI("http://example.org"), {inIsolatedMozBrowser: true});
|
||||
var nullPrin_browser = ssm.createNullPrincipal({inIsolatedMozBrowser: true});
|
||||
checkOriginAttributes(exampleOrg_browser, {inIsolatedMozBrowser: true}, '^inBrowser=1');
|
||||
checkOriginAttributes(nullPrin_browser, {inIsolatedMozBrowser: true}, '^inBrowser=1');
|
||||
do_check_eq(exampleOrg_browser.origin, 'http://example.org^inBrowser=1');
|
||||
checkOriginAttributes(exampleOrg_browser, {inIsolatedMozBrowser: true}, "^inBrowser=1");
|
||||
checkOriginAttributes(nullPrin_browser, {inIsolatedMozBrowser: true}, "^inBrowser=1");
|
||||
do_check_eq(exampleOrg_browser.origin, "http://example.org^inBrowser=1");
|
||||
|
||||
// App and browser.
|
||||
var exampleOrg_appBrowser = ssm.createCodebasePrincipal(makeURI('http://example.org'), {inIsolatedMozBrowser: true, appId: 42});
|
||||
var exampleOrg_appBrowser = ssm.createCodebasePrincipal(makeURI("http://example.org"), {inIsolatedMozBrowser: true, appId: 42});
|
||||
var nullPrin_appBrowser = ssm.createNullPrincipal({inIsolatedMozBrowser: true, appId: 42});
|
||||
checkOriginAttributes(exampleOrg_appBrowser, {appId: 42, inIsolatedMozBrowser: true}, '^appId=42&inBrowser=1');
|
||||
checkOriginAttributes(nullPrin_appBrowser, {appId: 42, inIsolatedMozBrowser: true}, '^appId=42&inBrowser=1');
|
||||
do_check_eq(exampleOrg_appBrowser.origin, 'http://example.org^appId=42&inBrowser=1');
|
||||
checkOriginAttributes(exampleOrg_appBrowser, {appId: 42, inIsolatedMozBrowser: true}, "^appId=42&inBrowser=1");
|
||||
checkOriginAttributes(nullPrin_appBrowser, {appId: 42, inIsolatedMozBrowser: true}, "^appId=42&inBrowser=1");
|
||||
do_check_eq(exampleOrg_appBrowser.origin, "http://example.org^appId=42&inBrowser=1");
|
||||
|
||||
// App and browser, different domain.
|
||||
var exampleCom_appBrowser = ssm.createCodebasePrincipal(makeURI('https://www.example.com:123'), {appId: 42, inIsolatedMozBrowser: true});
|
||||
checkOriginAttributes(exampleCom_appBrowser, {appId: 42, inIsolatedMozBrowser: true}, '^appId=42&inBrowser=1');
|
||||
do_check_eq(exampleCom_appBrowser.origin, 'https://www.example.com:123^appId=42&inBrowser=1');
|
||||
var exampleCom_appBrowser = ssm.createCodebasePrincipal(makeURI("https://www.example.com:123"), {appId: 42, inIsolatedMozBrowser: true});
|
||||
checkOriginAttributes(exampleCom_appBrowser, {appId: 42, inIsolatedMozBrowser: true}, "^appId=42&inBrowser=1");
|
||||
do_check_eq(exampleCom_appBrowser.origin, "https://www.example.com:123^appId=42&inBrowser=1");
|
||||
|
||||
// First party Uri
|
||||
var exampleOrg_firstPartyDomain = ssm.createCodebasePrincipal(makeURI('http://example.org'), {firstPartyDomain: 'example.org'});
|
||||
checkOriginAttributes(exampleOrg_firstPartyDomain, { firstPartyDomain: "example.org" }, '^firstPartyDomain=example.org');
|
||||
do_check_eq(exampleOrg_firstPartyDomain.origin, 'http://example.org^firstPartyDomain=example.org');
|
||||
var exampleOrg_firstPartyDomain = ssm.createCodebasePrincipal(makeURI("http://example.org"), {firstPartyDomain: "example.org"});
|
||||
checkOriginAttributes(exampleOrg_firstPartyDomain, { firstPartyDomain: "example.org" }, "^firstPartyDomain=example.org");
|
||||
do_check_eq(exampleOrg_firstPartyDomain.origin, "http://example.org^firstPartyDomain=example.org");
|
||||
|
||||
// Make sure we don't crash when serializing principals with UNKNOWN_APP_ID.
|
||||
try {
|
||||
|
|
@ -136,7 +136,7 @@ function run_test() {
|
|||
let pipe = Cc["@mozilla.org/pipe;1"].createInstance(Ci.nsIPipe);
|
||||
pipe.init(false, false, 0, 0xffffffff, null);
|
||||
binaryStream.setOutputStream(pipe.outputStream);
|
||||
binaryStream.writeCompoundObject(simplePrin, Ci.nsISupports, true);
|
||||
binaryStream.writeCompoundObject(simplePrin, Ci.nsISupports, true); // eslint-disable-line no-undef
|
||||
binaryStream.close();
|
||||
} catch (e) {
|
||||
do_check_true(true);
|
||||
|
|
@ -144,24 +144,24 @@ function run_test() {
|
|||
|
||||
|
||||
// Just userContext.
|
||||
var exampleOrg_userContext = ssm.createCodebasePrincipal(makeURI('http://example.org'), {userContextId: 42});
|
||||
checkOriginAttributes(exampleOrg_userContext, { userContextId: 42 }, '^userContextId=42');
|
||||
do_check_eq(exampleOrg_userContext.origin, 'http://example.org^userContextId=42');
|
||||
var exampleOrg_userContext = ssm.createCodebasePrincipal(makeURI("http://example.org"), {userContextId: 42});
|
||||
checkOriginAttributes(exampleOrg_userContext, { userContextId: 42 }, "^userContextId=42");
|
||||
do_check_eq(exampleOrg_userContext.origin, "http://example.org^userContextId=42");
|
||||
|
||||
// UserContext and App.
|
||||
var exampleOrg_userContextApp = ssm.createCodebasePrincipal(makeURI('http://example.org'), {appId: 24, userContextId: 42});
|
||||
var exampleOrg_userContextApp = ssm.createCodebasePrincipal(makeURI("http://example.org"), {appId: 24, userContextId: 42});
|
||||
var nullPrin_userContextApp = ssm.createNullPrincipal({appId: 24, userContextId: 42});
|
||||
checkOriginAttributes(exampleOrg_userContextApp, {appId: 24, userContextId: 42}, '^appId=24&userContextId=42');
|
||||
checkOriginAttributes(nullPrin_userContextApp, {appId: 24, userContextId: 42}, '^appId=24&userContextId=42');
|
||||
do_check_eq(exampleOrg_userContextApp.origin, 'http://example.org^appId=24&userContextId=42');
|
||||
checkOriginAttributes(exampleOrg_userContextApp, {appId: 24, userContextId: 42}, "^appId=24&userContextId=42");
|
||||
checkOriginAttributes(nullPrin_userContextApp, {appId: 24, userContextId: 42}, "^appId=24&userContextId=42");
|
||||
do_check_eq(exampleOrg_userContextApp.origin, "http://example.org^appId=24&userContextId=42");
|
||||
|
||||
checkSandboxOriginAttributes(null, {});
|
||||
checkSandboxOriginAttributes('http://example.org', {});
|
||||
checkSandboxOriginAttributes('http://example.org', {}, {originAttributes: {}});
|
||||
checkSandboxOriginAttributes('http://example.org', {appId: 42}, {originAttributes: {appId: 42}});
|
||||
checkSandboxOriginAttributes(['http://example.org'], {});
|
||||
checkSandboxOriginAttributes(['http://example.org'], {}, {originAttributes: {}});
|
||||
checkSandboxOriginAttributes(['http://example.org'], {appId: 42}, {originAttributes: {appId: 42}});
|
||||
checkSandboxOriginAttributes("http://example.org", {});
|
||||
checkSandboxOriginAttributes("http://example.org", {}, {originAttributes: {}});
|
||||
checkSandboxOriginAttributes("http://example.org", {appId: 42}, {originAttributes: {appId: 42}});
|
||||
checkSandboxOriginAttributes(["http://example.org"], {});
|
||||
checkSandboxOriginAttributes(["http://example.org"], {}, {originAttributes: {}});
|
||||
checkSandboxOriginAttributes(["http://example.org"], {appId: 42}, {originAttributes: {appId: 42}});
|
||||
|
||||
// Check that all of the above are cross-origin.
|
||||
checkCrossOrigin(exampleOrg_app, exampleOrg);
|
||||
|
|
@ -177,15 +177,15 @@ function run_test() {
|
|||
|
||||
// Check Principal kinds.
|
||||
function checkKind(prin, kind) {
|
||||
do_check_eq(prin.isNullPrincipal, kind == 'nullPrincipal');
|
||||
do_check_eq(prin.isCodebasePrincipal, kind == 'codebasePrincipal');
|
||||
do_check_eq(prin.isExpandedPrincipal, kind == 'expandedPrincipal');
|
||||
do_check_eq(prin.isSystemPrincipal, kind == 'systemPrincipal');
|
||||
do_check_eq(prin.isNullPrincipal, kind == "nullPrincipal");
|
||||
do_check_eq(prin.isCodebasePrincipal, kind == "codebasePrincipal");
|
||||
do_check_eq(prin.isExpandedPrincipal, kind == "expandedPrincipal");
|
||||
do_check_eq(prin.isSystemPrincipal, kind == "systemPrincipal");
|
||||
}
|
||||
checkKind(ssm.createNullPrincipal({}), 'nullPrincipal');
|
||||
checkKind(ssm.createCodebasePrincipal(makeURI('http://www.example.com'), {}), 'codebasePrincipal');
|
||||
checkKind(Cu.getObjectPrincipal(Cu.Sandbox([ssm.createCodebasePrincipal(makeURI('http://www.example.com'), {})])), 'expandedPrincipal');
|
||||
checkKind(ssm.getSystemPrincipal(), 'systemPrincipal');
|
||||
checkKind(ssm.createNullPrincipal({}), "nullPrincipal");
|
||||
checkKind(ssm.createCodebasePrincipal(makeURI("http://www.example.com"), {}), "codebasePrincipal");
|
||||
checkKind(Cu.getObjectPrincipal(Cu.Sandbox([ssm.createCodebasePrincipal(makeURI("http://www.example.com"), {})])), "expandedPrincipal");
|
||||
checkKind(ssm.getSystemPrincipal(), "systemPrincipal");
|
||||
|
||||
//
|
||||
// Test Origin Attribute Manipulation
|
||||
|
|
@ -260,7 +260,7 @@ function run_test() {
|
|||
let orig = ChromeUtils.createOriginAttributesFromOrigin(uri + t[0]);
|
||||
checkValues(orig, t[1]);
|
||||
let mod = orig;
|
||||
mod['userContextId'] = 0;
|
||||
mod["userContextId"] = 0;
|
||||
checkValues(mod, t[2]);
|
||||
do_check_eq(ChromeUtils.originAttributesToSuffix(mod), t[3]);
|
||||
});
|
||||
|
|
@ -281,12 +281,12 @@ function run_test() {
|
|||
let orig = ChromeUtils.createOriginAttributesFromOrigin(uri + t[0]);
|
||||
checkValues(orig, t[1]);
|
||||
let mod = orig;
|
||||
mod['firstPartyDomain'] = "";
|
||||
mod["firstPartyDomain"] = "";
|
||||
checkValues(mod, t[2]);
|
||||
do_check_eq(ChromeUtils.originAttributesToSuffix(mod), t[3]);
|
||||
});
|
||||
|
||||
var fileURI = makeURI('file:///foo/bar').QueryInterface(Ci.nsIFileURL);
|
||||
var fileURI = makeURI("file:///foo/bar").QueryInterface(Ci.nsIFileURL);
|
||||
var fileTests = [
|
||||
[true, fileURI.spec],
|
||||
[false, "file://UNIVERSAL_FILE_URI_ORIGIN"],
|
||||
|
|
@ -298,7 +298,7 @@ function run_test() {
|
|||
});
|
||||
Services.prefs.clearUserPref("security.fileuri.strict_origin_policy");
|
||||
|
||||
var aboutBlankURI = makeURI('about:blank');
|
||||
var aboutBlankURI = makeURI("about:blank");
|
||||
var aboutBlankPrin = ssm.createCodebasePrincipal(aboutBlankURI, {});
|
||||
do_check_true(/^moz-nullprincipal:\{([0-9]|[a-z]|\-){36}\}$/.test(aboutBlankPrin.origin));
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue