1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
<!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
var worker_js = new Worker('file_iframe_sandbox_worker.js');
worker_js.onerror = function(error) {
ok(true, "a worker in a sandboxed document should tell the load error via error event");
}
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>
|