53 lines
1.7 KiB
HTML
53 lines
1.7 KiB
HTML
<!DOCTYPE html>
|
|
<title>Test Intersection Observer in fenced frame</title>
|
|
<script src="/common/rendering-utils.js"></script>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="/common/utils.js"></script>
|
|
<script src="resources/utils.js"></script>
|
|
<script src="/common/utils.js"></script>
|
|
<style>
|
|
fencedframe {
|
|
width: 100px;
|
|
height: 100px;
|
|
position: fixed;
|
|
top: 0px;
|
|
left: 0px;
|
|
border: unset;
|
|
}
|
|
</style>
|
|
|
|
<body>
|
|
<script>
|
|
promise_test(async (t) => {
|
|
// first entry after observe.
|
|
const io_entry_on_registration = token();
|
|
// entry after transform.
|
|
const io_entry_on_transform = token();
|
|
// entry with clip.
|
|
const io_entry_on_clip = token();
|
|
|
|
const frame = attachFencedFrame(generateURL(
|
|
"resources/frame-with-intersection-observer.html",
|
|
[io_entry_on_registration, io_entry_on_transform, io_entry_on_clip]));
|
|
|
|
let result = await nextValueFromServer(io_entry_on_registration);
|
|
assert_equals(result, "0,0,100,100,true",
|
|
"Subscribing to IO dispatches a notification");
|
|
|
|
// Apply a transform to the fencedframe and ensure it gets applied to the
|
|
// intersectionRect.
|
|
frame.style.transform = 'translate(-10px, -20px)';
|
|
result = await nextValueFromServer(io_entry_on_transform);
|
|
assert_equals(result, "10,20,90,80,true",
|
|
"Transform applies to intersection rect");
|
|
|
|
// Now add a clip to the fencedframe which should clip the intersectionRect.
|
|
frame.style.clipPath = 'inset(10px)';
|
|
result = await nextValueFromServer(io_entry_on_clip);
|
|
assert_equals(result, "10,20,80,70,false", "Clip applies to intersection rect");
|
|
}, 'Intersection Observer Test');
|
|
|
|
</script>
|
|
</body>
|
|
</html>
|