LibWeb: Invalidate style when media content attribute changes

Previously, we would only invalidate style when setting the `media` IDL
attribute; changing the attribute via `setAttribute()` and
`removeAttribute()` had no immediate effect.
This commit is contained in:
Tim Ledbetter
2025-03-22 11:33:59 +00:00
committed by Alexander Kalenik
parent 0b0f47e320
commit e1f6a170d5
Notes: github-actions[bot] 2025-03-22 16:04:49 +00:00
5 changed files with 62 additions and 16 deletions

View File

@@ -0,0 +1,43 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Dynamically changing HTMLStyleElement.media should change the rendering accordingly</title>
<script src="../../../../resources/testharness.js"></script>
<script src="../../../../resources/testharnessreport.js"></script>
<link rel="help" href="https://html.spec.whatwg.org/multipage/#the-style-element">
<style>
span {
color: red;
}
</style>
<style id="text-style" media="none">
span {
color: green;
}
</style>
<style id="body-style" media="aural">
body {
color: green;
}
</style>
</head>
<body>
<span>text</span>
<script>
test(function() {
var element = document.querySelector("span");
assert_equals(getComputedStyle(element).color, "rgb(255, 0, 0)");
document.getElementById("text-style").media = 'all';
assert_equals(getComputedStyle(element).color, "rgb(0, 128, 0)");
}, "change media value dynamically");
test(function() {
var style = document.getElementById("body-style");
assert_not_equals(getComputedStyle(document.querySelector("body")).color, "rgb(0, 128, 0)");
style.removeAttribute("media");
assert_equals(getComputedStyle(document.querySelector("body")).color, "rgb(0, 128, 0)");
}, "removing media attribute");
</script>
</body>
</html>