зеркало из https://github.com/mozilla/gecko-dev.git
108 строки
2.8 KiB
HTML
108 строки
2.8 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<!--
|
|
https://bugzilla.mozilla.org/show_bug.cgi?id=759964
|
|
-->
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Test for Bug 759964</title>
|
|
<script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"/>
|
|
<script type="application/javascript">
|
|
|
|
/** Test for Bug 759964 **/
|
|
|
|
SimpleTest.waitForExplicitFinish();
|
|
addLoadEvent(runNextTest);
|
|
|
|
var SJS = "http://mochi.test:8888/tests/dom/html/test/allowMedia.sjs";
|
|
var TEST_PAGE = "data:text/html,<audio src='" + SJS + "?audio'></audio>";
|
|
|
|
var Ci = Components.interfaces;
|
|
|
|
function runNextTest() {
|
|
var test = tests.shift();
|
|
if (!test) {
|
|
SimpleTest.finish();
|
|
return;
|
|
}
|
|
test();
|
|
}
|
|
|
|
var tests = [
|
|
|
|
// Set allowMedia = false, load a page with <audio>, verify the <audio>
|
|
// doesn't load its source.
|
|
function basic() {
|
|
var iframe = insertIframe();
|
|
docshellForWindow(iframe.contentWindow).allowMedia = false;
|
|
loadIframe(iframe, TEST_PAGE, function () {
|
|
verifyPass();
|
|
iframe.remove();
|
|
runNextTest();
|
|
});
|
|
},
|
|
|
|
// Set allowMedia = false on parent docshell, load a page with <audio> in a
|
|
// child iframe, verify the <audio> doesn't load its source.
|
|
function inherit() {
|
|
var docshell = docshellForWindow(window);
|
|
docshell.allowMedia = false;
|
|
|
|
var iframe = insertIframe();
|
|
loadIframe(iframe, TEST_PAGE, function () {
|
|
verifyPass();
|
|
iframe.remove();
|
|
docshell.allowMedia = true;
|
|
runNextTest();
|
|
});
|
|
},
|
|
|
|
// In a display:none iframe, set allowMedia = false, load a page with <audio>,
|
|
// verify the <audio> doesn't load its source.
|
|
function displayNone() {
|
|
var iframe = insertIframe();
|
|
iframe.style.display = "none";
|
|
docshellForWindow(iframe.contentWindow).allowMedia = false;
|
|
loadIframe(iframe, TEST_PAGE, function () {
|
|
verifyPass();
|
|
iframe.remove();
|
|
runNextTest();
|
|
});
|
|
},
|
|
];
|
|
|
|
function docshellForWindow(win) {
|
|
return win.
|
|
QueryInterface(Ci.nsIInterfaceRequestor).
|
|
getInterface(Ci.nsIWebNavigation).
|
|
QueryInterface(Ci.nsIDocShell);
|
|
}
|
|
|
|
function insertIframe() {
|
|
var iframe = document.createElement("iframe");
|
|
document.body.appendChild(iframe);
|
|
return iframe;
|
|
}
|
|
|
|
function loadIframe(iframe, url, onDone) {
|
|
iframe.setAttribute("src", url);
|
|
iframe.addEventListener("load", onDone);
|
|
}
|
|
|
|
function verifyPass() {
|
|
var xhr = new XMLHttpRequest();
|
|
xhr.open("GET", SJS, false);
|
|
xhr.send();
|
|
is(xhr.responseText, "PASS", "<audio> source should not have been loaded.");
|
|
}
|
|
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=759964">Mozilla Bug 759964</a>
|
|
<p id="display">
|
|
</p>
|
|
</body>
|
|
</html>
|