Files
firefox/testing/web-platform/tests/css/cssom/HTMLStyleElement-load-event.html
T
Emilio Cobos Álvarez 90c0207ad5 Bug 1838045 - Fix load event on cached inline style sheets. r=mstange
Turns out we do fire load events on these (I thought they were only for
sheets with imports).

Simplify a bit some related code for links. Callers / observers need to
deal with SheetComplete being called sync anyways because of this:

  https://searchfox.org/mozilla-central/rev/962a843f6d96283c45162c788dc72bf217fca7df/layout/style/Loader.cpp#1873

So this removes the need for SheetLoadData to be a runnable etc.

Differential Revision: https://phabricator.services.mozilla.com/D180840
2023-06-14 21:42:31 +00:00

24 lines
1.0 KiB
HTML

<!doctype html>
<meta charset="utf-8">
<title>style elements fire load events properly</title>
<link rel="author" title="Emilio Cobos Álvarez" href="mailto:[email protected]">
<link rel="author" title="Mozilla" href="https://mozilla.org">
<link rel="help" href="https://html.spec.whatwg.org/#update-a-style-block">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
let NUM_LOADS = 0;
</script>
<style onload="++NUM_LOADS"></style>
<style onload="++NUM_LOADS">:root { background-color: lime }</style>
<style onload="++NUM_LOADS">:root { background-color: lime }</style> <!-- Intentionally the same -->
<script>
async_test(function(t) {
assert_equals(document.styleSheets.length, 3, "Should expose the three stylesheets to the OM sync");
assert_equals(NUM_LOADS, 0, "Should not fire load event sync");
window.addEventListener("load", t.step_func_done(() => {
assert_equals(NUM_LOADS, 3, "Load event should've fired for all nodes");
}));
});
</script>