43 lines
1.4 KiB
HTML
43 lines
1.4 KiB
HTML
<!doctype html>
|
|
<meta charset=utf-8>
|
|
<title>Observer notifications when updating styles</title>
|
|
<link rel="help" href="https://drafts.csswg.org/cssom/#dom-cssstyledeclaration-setproperty">
|
|
<script src=/resources/testharness.js></script>
|
|
<script src=/resources/testharnessreport.js></script>
|
|
<body>
|
|
<script>
|
|
"use strict";
|
|
|
|
promise_test(async () => {
|
|
let called = 0;
|
|
const el = document.createElement("div");
|
|
document.body.appendChild(el);
|
|
const m = new MutationObserver(() => {
|
|
called++;
|
|
});
|
|
m.observe(el, { attributes: true });
|
|
el.style.height = "100px";
|
|
await Promise.resolve();
|
|
assert_equals(called, 1, "times callback called");
|
|
el.style.height = "100px";
|
|
await Promise.resolve();
|
|
assert_equals(called, 1, "times callback called");
|
|
}, "Updating style property with the same value does not trigger an observation callback");
|
|
|
|
promise_test(async () => {
|
|
let called = 0;
|
|
const el = document.createElement("div");
|
|
document.body.appendChild(el);
|
|
const m = new MutationObserver(() => {
|
|
called++;
|
|
});
|
|
m.observe(el, { attributes: true });
|
|
el.style.cssText = "height:100px";
|
|
await Promise.resolve();
|
|
assert_equals(called, 1, "times callback called");
|
|
el.style.cssText = "height:100px";
|
|
await Promise.resolve();
|
|
assert_equals(called, 2, "times callback called");
|
|
}, "Updating cssText triggers an observation callback even if the value is the same");
|
|
</script>
|
|
|