Bug 1264593 - Add a test case for the isolation on the shared worker by first party domain. r=arthuredelstein,baku

Adapted from Tor Browser patch 15564

--HG--
extra : rebase_source : 60d09115cf76fab8dee9868d233ce962b5c8eea8
This commit is contained in:
Tim Huang 2016-08-07 01:20:59 +08:00
parent ccb0396db8
commit 33d9942f0a
4 changed files with 46 additions and 0 deletions

View File

@ -4,6 +4,8 @@ tags = usercontextid firstpartyisolation originattributes
support-files =
dummy.html
file_firstPartyBasic.html
file_sharedworker.html
file_sharedworker.js
head.js
test.js
test.js^headers^
@ -26,3 +28,4 @@ support-files =
[browser_localStorageIsolation.js]
[browser_blobURLIsolation.js]
[browser_imageCacheIsolation.js]
[browser_sharedworker.js]

View File

@ -0,0 +1,26 @@
/**
* Bug 1264593 - A test case for the shared worker by first party isolation.
*/
const TEST_DOMAIN = "http://example.net/";
const TEST_PATH = TEST_DOMAIN + "browser/browser/components/originattributes/test/browser/";
const TEST_PAGE = TEST_PATH + "file_sharedworker.html";
function* getResultFromSharedworker(aBrowser) {
let response = yield ContentTask.spawn(aBrowser, null, function* () {
let worker = new content.SharedWorker("file_sharedworker.js", "isolationSharedWorkerTest");
let result = yield new Promise(resolve => {
worker.port.onmessage = function (e) {
content.document.getElementById("display").innerHTML = e.data;
resolve(e.data);
};
});
return result;
});
return response;
}
IsolationTestTools.runTests(TEST_PAGE, getResultFromSharedworker);

View File

@ -0,0 +1,10 @@
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Page SharedWorker creator for first party isolation</title>
</head>
<body>
<div id="display" style="white-space:pre; font-family:monospace; display:inline;"></div>
</body>
</html>

View File

@ -0,0 +1,7 @@
self.randomValue = Math.random();
onconnect = function (e) {
let port = e.ports[0];
port.postMessage(self.randomValue);
port.start();
};