blob: 5eb92cd392da1aa62b444f0224a67c0d3344dbbd [file] [log] [blame]
<!DOCTYPE html>
<script src="../../resources/js-test.js"></script>
<script>
window.jsTestIsAsync = true;
function runTest() {
document.querySelector("iframe").style.width = "500px";
shouldBe("getComputedStyle(document.querySelector('iframe').contentDocument.querySelector('.cssom')).backgroundColor", "\"rgb(0, 128, 0)\"");
shouldBe("getComputedStyle(document.querySelector('iframe').contentDocument.querySelector('.cssom-import')).backgroundColor", "\"rgb(0, 128, 0)\"");
finishJSTest();
}
</script>
<iframe style="width: 300px; height: 300px;" srcdoc='
<style>
.cssom-import, .cssom, .std {
background: green;
}
@media (max-width: 400px) {
.std {
background-color: green;
}
}
</style>
<style id="media-rule"></style>
<style id="import-rule"></style>
Tests that dynamically inserted media rules apply. The boxes below should be green. <br>
<div class="std">The styles for this box are handled in standard CSS.</div>
<div class="cssom">The styles for this box are handled via CSS created dynamically.</div>
<div class="cssom-import">The styles for this box are handled via CSS created dynamically with an import rule.</div>
<script>
document.getElementById("media-rule").sheet.insertRule("@media (max-width: 400px) { .cssom { background: red; display: block; }}", 0);
document.getElementById("import-rule").sheet.insertRule("@import url(resources/media-query-insert-rule.css) (max-width: 400px)", 0);
function hasImportLoaded() {
return document.getElementById("import-rule").sheet.rules[0].styleSheet;
}
function runTestOnImportLoad() {
if (hasImportLoaded())
top.runTest();
else
setTimeout(runTestOnImportLoad);
}
document.documentElement.offsetTop;
runTestOnImportLoad();
</script>'></iframe>