Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

<!DOCTYPE HTML>
<html>
<head>
<title>Test cross-domain CSS loading</title>
<script src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css"
href="/tests/SimpleTest/test.css"/>
<style type="text/css">
hr { border: none; clear: both }
.column {
margin: 10px;
float: left;
}
iframe {
width: 40px;
height: 680px;
border: none;
margin: 0;
padding: 0;
}
h2 { font-weight: normal; padding: 0 }
ol, h2 { font-size: 13px; line-height: 20px; }
ol { padding-left: 1em;
list-style-type: upper-roman }
ol ol { list-style-type: upper-alpha }
ol ol ol { list-style-type: decimal }
</style>
</head>
<body>
<a target="_blank"
<hr/>
<div class="column">
<h2>&nbsp;</h2>
<ol><li>text/css<ol><li>same origin<ol><li>valid</li>
<li>malformed</li>
<li>http error</li></ol></li>
<li>cross origin<ol><li>valid</li>
<li>malformed</li>
<li>http error</li></ol></li>
<li>same to cross<ol><li>valid</li>
<li>malformed</li>
<li>http error</li></ol></li>
<li>cross to same<ol><li>valid</li>
<li>malformed</li>
<li>http error</li></ol></li></ol></li>
<li>text/html<ol><li>same origin<ol><li>valid</li>
<li>malformed</li>
<li>http error</li></ol></li>
<li>cross origin<ol><li>valid</li>
<li>malformed</li>
<li>http error</li></ol></li>
<li>same to cross<ol><li>valid</li>
<li>malformed</li>
<li>http error</li></ol></li>
<li>cross to same<ol><li>valid</li>
<li>malformed</li>
<li>http error</li></ol></li></ol></li>
</ol>
</div>
<div class="column">
<h2>Quirks</h2>
<div id="quirks-placeholder"></div>
</div>
<div class="column">
<h2>Standards</h2>
<div id="standards-placeholder"></div>
</div>
<script type="application/javascript">
const COLOR = {red: "rgb(255, 0, 0)", lime: "rgb(0, 255, 0)"};
// Cross origin requests with text/html as the contentType.
// These requests will be blocked by ORB (when ORB is enabled),
// thus the color of the element is not going to be changed.
const BLOCKED_BY_ORB = ["JD1i", "JD1l", "JD2i", "JD2l"];
/** Test for Bug 524223 **/
function check_iframe(ifr) {
var doc = ifr.contentDocument;
var cases = doc.getElementsByTagName("p");
for (var i = 0; i < cases.length; i++) {
var color = doc.defaultView.getComputedStyle(cases[i])
.getPropertyValue("background-color");
var id = cases[i].id;
// only 'quirks' can have requests that are blocked by ORB.
if (BLOCKED_BY_ORB.includes(id) && ifr.id === "quirks") {
is(color, COLOR.red, ifr.id + " " + id);
} else {
is(color, COLOR.lime, ifr.id + " " + id);
}
}
}
SimpleTest.waitForExplicitFinish();
function insertIFrames(src, id) {
const quirks = document.createElement("iframe");
quirks.src = "ccd-quirks.html";
quirks.id = "quirks";
document.getElementById("quirks-placeholder").replaceWith(quirks);
const standards = document.createElement("iframe");
standards.src = "ccd-standards.html";
standards.id = "standards";
document.getElementById("standards-placeholder").replaceWith(standards);
}
var hasQuirksLoaded = false;
var hasStandardsLoaded = false;
function quirksLoaded() {
hasQuirksLoaded = true;
MaybeRunTest();
}
function standardsLoaded() {
hasStandardsLoaded = true;
MaybeRunTest();
}
function runTest() {
check_iframe(document.getElementById("quirks"));
check_iframe(document.getElementById("standards"));
}
function MaybeRunTest() {
if (!hasQuirksLoaded || !hasStandardsLoaded) {
return;
}
runTest();
SimpleTest.finish();
}
window.onload = async function() {
await SpecialPowers.pushPrefEnv(
{
set: [
['browser.opaqueResponseBlocking', true],
['browser.opaqueResponseBlocking.javascriptValidator', true],
],
}
);
insertIFrames();
};
</script>
</body>
</html>