2012-08-20 11:34:33 -07:00
<!DOCTYPE HTML>
< html >
< head >
< meta charset = "utf-8" >
< title > Test for Bug 341604< / title >
< script type = "text/javascript" src = "/tests/SimpleTest/EventUtils.js" > < / script >
< link rel = "stylesheet" type = "text/css" href = "/tests/SimpleTest/test.css" / >
< / head >
< script type = "text/javascript" >
function ok(result, desc) {
window.parent.postMessage({ok: result, desc: desc}, "*");
}
function doStuff() {
// test data URI
// self.onmessage = function(event) {
// self.postMessage('make it so');
// };
var data_url = "data:text/plain;charset=utf-8;base64,c2VsZi5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgeyAgDQogICAgc2VsZi5wb3N0TWVzc2FnZSgnbWFrZSBpdCBzbycpOyAgDQp9Ow==";
var worker_data = new Worker(data_url);
worker_data.addEventListener('message', function(event) {
ok(true, "a worker in a sandboxed document should be able to be loaded from a data: URI");
}, false);
worker_data.postMessage("engage!");
// test a blob URI we created (will have the same null principal
// as us
var b = new Blob(["onmessage = function(event) { self.postMessage('make it so');};"]);
var blobURL = URL.createObjectURL(b);
var worker_blob = new Worker(blobURL);
worker_blob.addEventListener('message', function(event) {
ok(true, "a worker in a sandboxed document should be able to be loaded from a blob URI " +
"created by that sandboxed document");
}, false);
worker_blob.postMessage("engage!");
// test loading with relative url - this should fail since we are
// sandboxed and have a null principal
2013-03-07 14:27:21 -08:00
try {
var worker_js = new Worker('file_iframe_sandbox_worker.js');
} catch (e) {
ok(e.name === "SecurityError", "a worker in a sandboxed document should throw when loading from a relative URI");
}
2012-08-20 11:34:33 -07:00
worker_js.onerror = function(error) {
2013-03-07 14:27:21 -08:00
ok(false, "a worker in a sandboxed document should not tell the load error via error event");
2012-08-20 11:34:33 -07:00
}
worker_js.addEventListener('message', function(event) {
ok(false, "a worker in a sandboxed document should not be able to load from a relative URI");
}, false);
worker_js.postMessage('engage');
}
< / script >
< body onload = 'doStuff();' >
I am sandboxed but with "allow-scripts"
< / body >
< / html >