blob: 3c61e9980b781df3bd25e5e1d959fd88a2d8c73a [file] [log] [blame]
<html>
<!--
Note the lack of doctype above: That is intentional. This test
MUST be in quirks mode to have any real testing power.
-->
<head>
<title>Same-origin CSS in quirks mode</title>
<script>
// Prune memory cache to make sure we don't use a cached parsed stylesheet, in which case
// the console warning would not be shown and the test would be flaky.
internals.pruneMemoryCacheToSize(0);
</script>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<link rel="stylesheet"
href="/resources/redirect.py?url=/security/resources/xorigincss1.html"></link>
<link rel="stylesheet"
type="text/css"
href="/resources/redirect.py?url=/security/resources/xorigincss2.html"></link>
<link rel="stylesheet"
href="/resources/redirect.py?url=/security/resources/xorigincss1.css"></link>
<link rel="stylesheet"
href="resources/xorigincss3.html"></link>
<style>
/* Deliberately reuse the same file / class / id on this first one */
@import "/resources/redirect.py?url=/security/resources/xorigincss2.html";
@import "/resources/redirect.py?url=/security/resources/xorigincss4.html";
@import "/resources/redirect.py?url=/security/resources/xorigincss2.css";
@import "resources/xorigincss5.html";
/* Check that data: is still allowed for non-CORS cross-origin image fetches. */
#data-background-url {
content: "PASS (image loaded)";
background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='0px' height='0px'></svg>");
}
</style>
<script>
function getBackgroundColorForId(id) {
return window.getComputedStyle(document.getElementById(id), null).getPropertyValue('background-color')
}
var onloadTest = async_test("Testing same-origin and MIME behavior for CSS.");
window.onload = function () {
test(function () {
assert_equals(getBackgroundColorForId('id1'), 'rgb(255, 255, 0)');
}, 'xorigincss1.html should be loaded via &lt;link&gt;.');
test(function () {
assert_equals(getBackgroundColorForId('id2'), 'rgb(255, 255, 0)');
}, 'xorigincss2.html should be loaded either via &lt;link&gt; or @import.');
test(function () {
assert_equals(getBackgroundColorForId('id3'), 'rgb(255, 255, 0)');
}, 'xorigincss1.css should be loaded via &lt;link&gt;');
test(function () {
assert_equals(getBackgroundColorForId('id4'), 'rgb(255, 255, 0)');
}, 'xorigincss3.html should be loaded');
test(function () {
assert_equals(getBackgroundColorForId('id5'), 'rgb(255, 255, 0)');
}, 'xorigincss4.html should be loaded via @import.');
test(function () {
assert_equals(getBackgroundColorForId('id6'), 'rgb(255, 255, 0)');
}, 'xorigincss2.css should be loaded.');
test(function () {
assert_equals(getBackgroundColorForId('id7'), 'rgb(255, 255, 0)');
}, 'xorigincss5.html should be loaded.');
onloadTest.done();
};
</script>
</head>
<body>
<div id="id1" class="id1"></div>
<div id="id2" class="id2"></div>
<div id="id3" class="id3"></div>
<div id="id4" class="id4"></div>
<div id="id5" class="id5"></div>
<div id="id6" class="id6"></div>
<div id="id7" class="id7"></div>
<div id="id8" class="id8"></div>
<div id="data-background-url">PASS background image loaded</div>
</body>
</html>