mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-20 23:37:33 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
156
dom/media/test/file_access_controls.html
Normal file
156
dom/media/test/file_access_controls.html
Normal file
|
|
@ -0,0 +1,156 @@
|
|||
<html>
|
||||
<head>
|
||||
<script type="text/javascript" src="manifest.js"></script>
|
||||
</head>
|
||||
<body onload="setTimeout(load, 0);" onunload="done()">
|
||||
<script>
|
||||
|
||||
// Page URL: http://example.org/tests/dom/media/test/file_access_controls.html
|
||||
|
||||
var gResource = getPlayableVideo(gSmallTests).name;
|
||||
|
||||
var gTests = [
|
||||
{
|
||||
// Test 0
|
||||
url: "redirect.sjs?domain=example.com&file="+ gResource,
|
||||
result: "error",
|
||||
description: "Won't load when redirected to different domain",
|
||||
},{
|
||||
// Test 1
|
||||
url: "redirect.sjs?domain=example.com&allowed&file=" + gResource,
|
||||
result: "loadeddata",
|
||||
description: "Can load when redirected to different domain with allow-origin",
|
||||
},{
|
||||
// Test 2
|
||||
url: "redirect.sjs?domain=test1.example.org&file=" + gResource,
|
||||
result: "error",
|
||||
description: "Won't load when redirected to subdomain",
|
||||
},{
|
||||
// Test 3
|
||||
url: "redirect.sjs?domain=test1.example.org&allowed&file=" + gResource,
|
||||
result: "loadeddata",
|
||||
description: "Can load when redirected to subdomain with allow-origin",
|
||||
},{
|
||||
// Test 4
|
||||
url: "redirect.sjs?domain=example.org&file=" + gResource,
|
||||
result: "loadeddata",
|
||||
description: "Can load when redirected to same domain",
|
||||
},{
|
||||
// Test 5
|
||||
url: "http://example.org/tests/dom/media/test/" + gResource,
|
||||
result: "loadeddata",
|
||||
description: "Can load from same domain"
|
||||
},{
|
||||
// Test 6
|
||||
url: "http://example.org:8000/tests/dom/media/test/" + gResource,
|
||||
result: "error",
|
||||
description: "Won't load from different port on same domain"
|
||||
},{
|
||||
// Test 7
|
||||
url: "http://example.org:8000/tests/dom/media/test/allowed.sjs?" + gResource,
|
||||
result: "loadeddata",
|
||||
description: "Can load from different port on same domain with allow-origin",
|
||||
},{
|
||||
// Test 8
|
||||
url: "http://example.com/tests/dom/media/test/" + gResource,
|
||||
result: "error",
|
||||
description: "Won't load cross domain",
|
||||
},{
|
||||
// Test 9
|
||||
url: "http://example.com/tests/dom/media/test/allowed.sjs?" + gResource,
|
||||
result: "loadeddata",
|
||||
description: "Can load cross domain with allow-origin",
|
||||
},{
|
||||
// Test 10
|
||||
url: "http://test1.example.org/tests/dom/media/test/allowed.sjs?" + gResource,
|
||||
result: "loadeddata",
|
||||
description: "Can load from subdomain with allow-origin",
|
||||
},{
|
||||
// Test 11
|
||||
url: "http://test1.example.org/tests/dom/media/test/" + gResource,
|
||||
result: "error",
|
||||
description: "Won't load from subdomain",
|
||||
}
|
||||
];
|
||||
|
||||
var gTestNum = 0;
|
||||
var gVideo = null;
|
||||
var gTestedRemoved = false;
|
||||
|
||||
function eventHandler(event) {
|
||||
//dump((gTestNum - 1) + ": " + event.type + "\n");
|
||||
var video = event.target;
|
||||
opener.postMessage({"result": (event.type == video.expectedResult),
|
||||
"message": video.testDescription + (gTestedRemoved ? " (element not in document)" : " (element in document)")},
|
||||
"http://mochi.test:8888");
|
||||
// Make sure any extra events cause an error
|
||||
video.expectedResult = "<none>";
|
||||
nextTest();
|
||||
}
|
||||
|
||||
function createVideo() {
|
||||
var v = document.createElement('video');
|
||||
v.addEventListener('loadeddata', eventHandler, false);
|
||||
v.addEventListener('error', eventHandler, false);
|
||||
v.crossOrigin = 'anonymous';
|
||||
return v;
|
||||
}
|
||||
|
||||
function load() {
|
||||
opener.postMessage({"result": (window.location.href == "http://example.org/tests/dom/media/test/file_access_controls.html"),
|
||||
"message": "We must be on a example.org:80"},
|
||||
"http://mochi.test:8888");
|
||||
|
||||
nextTest();
|
||||
}
|
||||
|
||||
function nextTest() {
|
||||
//dump("nextTest() called, gTestNum="+gTestNum+" gTestedRemoved="+gTestedRemoved+"\n");
|
||||
if (gTestNum == gTests.length) {
|
||||
//dump("gTestNum == gTests.length\n");
|
||||
if (!gTestedRemoved) {
|
||||
// Repeat all tests with element removed from doc, should get same result.
|
||||
gTestedRemoved = true;
|
||||
gTestNum = 0;
|
||||
} else {
|
||||
//dump("Exiting...\n");
|
||||
// We're done, exit the test.
|
||||
window.close();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (gVideo && gVideo.parentNode)
|
||||
gVideo.parentNode.removeChild(gVideo);
|
||||
|
||||
gVideo = null;
|
||||
SpecialPowers.forceGC();
|
||||
|
||||
gVideo = createVideo();
|
||||
gVideo.expectedResult = gTests[gTestNum].result;
|
||||
gVideo.testDescription = gTests[gTestNum].description;
|
||||
// Uniquify the resource URL to ensure that the resources loaded by earlier or subsequent tests
|
||||
// don't overlap with the resources we load here, which are loaded with non-default preferences set.
|
||||
// We also want to make sure that an HTTP fetch actually happens for each testcase.
|
||||
var url = gTests[gTestNum].url;
|
||||
var random = Math.floor(Math.random()*1000000000);
|
||||
url += (url.search(/\?/) < 0 ? "?" : "&") + "rand=" + random;
|
||||
gVideo.src = url;
|
||||
//dump("Starting test " + gTestNum + " at " + gVideo.src + " expecting:" + gVideo.expectedResult + "\n");
|
||||
if (!gTestedRemoved) {
|
||||
document.body.appendChild(gVideo);
|
||||
// Will cause load() to be invoked.
|
||||
} else {
|
||||
gVideo.load();
|
||||
}
|
||||
gTestNum++;
|
||||
}
|
||||
|
||||
function done() {
|
||||
opener.postMessage({"done": "true"}, "http://mochi.test:8888");
|
||||
}
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue