blob: 2dd01decf95476b847f6abbbf386fd6a5e086c38 [file] [log] [blame]
<!DOCTYPE html><!-- webkit-test-runner [ ResizeObserverEnabled=true ] -->
<html>
<body>
<script src="../resources/js-test.js"></script>
<div id="testDiv">test</div>
<script>
description("Tests that an observation is received after disconnecting a visible target");
jsTestIsAsync = true;
let receivedInitialObservation = false;
onload = () => {
let resizeObserver = new ResizeObserver((_observations) => {
gc();
observations = _observations;
shouldBe("observations.length", "1");
shouldBeEqualToString("observations[0].target.tagName", "DIV");
shouldBe("observations[0].target.foo", "1");
if (!receivedInitialObservation) {
receivedInitialObservation = true;
shouldBeTrue("observations[0].contentRect.width > 0.0");
shouldBeTrue("observations[0].contentRect.height > 0.0");
requestAnimationFrame(() => {
debug("* Removing target from document");
document.getElementById("testDiv").remove();
gc();
setTimeout(gc, 0);
timeoutHandle = setTimeout(() => {
testFailed("Didn't get observation after removing target from document");
finishJSTest();
}, 3000);
});
} else {
clearTimeout(timeoutHandle);
shouldBe("observations[0].contentRect.width", "0.0");
shouldBe("observations[0].contentRect.height", "0.0");
setTimeout(finishJSTest, 100);
}
});
let div = document.getElementById("testDiv");
div.foo = 1;
resizeObserver.observe(div);
div = null;
gc();
setTimeout(gc, 0);
};
</script>
</body>
</html>