[IntersectionObserver] Upstream V2 tests to wpt
BUG=827639
Change-Id: I38fcdd0ae40cd3122541ffa8521d4ee30adffc22
Reviewed-on: https://chromium-review.googlesource.com/c/1447267
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Reviewed-by: Philip Jägenstedt <foolip@chromium.org>
Commit-Queue: Stefan Zager <szager@chromium.org>
Cr-Commit-Position: refs/heads/master@{#631836}
diff --git a/third_party/blink/web_tests/external/wpt/intersection-observer/resources/intersection-observer-test-utils.js b/third_party/blink/web_tests/external/wpt/intersection-observer/resources/intersection-observer-test-utils.js
index 8683c8b..44f794b 100644
--- a/third_party/blink/web_tests/external/wpt/intersection-observer/resources/intersection-observer-test-utils.js
+++ b/third_party/blink/web_tests/external/wpt/intersection-observer/resources/intersection-observer-test-utils.js
@@ -72,7 +72,15 @@
// notifications.
function waitForNotification(t, f) {
requestAnimationFrame(function() {
- requestAnimationFrame(function() { t.step_timeout(f); });
+ requestAnimationFrame(function() { t.step_timeout(f, 0); });
+ });
+}
+
+// If you need to wait until the IntersectionObserver algorithm has a chance
+// to run, but don't need to wait for delivery of the notifications...
+function waitForFrame(t, f) {
+ requestAnimationFrame(function() {
+ t.step_timeout(f, 0);
});
}
@@ -85,9 +93,19 @@
//
// Following these rules will ensure that the test suite will not abort before
// all test steps have run.
-function runTestCycle(f, description) {
+//
+// If the 'delay' parameter to the IntersectionObserver constructor is used,
+// tests will need to add the same delay to their runTestCycle invocations, to
+// wait for notifications to be generated and delivered.
+function runTestCycle(f, description, delay) {
async_test(function(t) {
- waitForNotification(t, t.step_func_done(f));
+ if (delay) {
+ step_timeout(() => {
+ waitForNotification(t, t.step_func_done(f));
+ }, delay);
+ } else {
+ waitForNotification(t, t.step_func_done(f));
+ }
}, description);
}
@@ -174,4 +192,4 @@
function checkIsIntersecting(entries, i, expected) {
assert_equals(entries[i].isIntersecting, expected,
'entries[' + i + '].target.isIntersecting equals ' + expected);
-}
\ No newline at end of file
+}
diff --git a/third_party/blink/web_tests/http/tests/intersection-observer/resources/v2-subframe.html b/third_party/blink/web_tests/external/wpt/intersection-observer/resources/v2-subframe.html
similarity index 61%
rename from third_party/blink/web_tests/http/tests/intersection-observer/resources/v2-subframe.html
rename to third_party/blink/web_tests/external/wpt/intersection-observer/resources/v2-subframe.html
index 686ef0f..295bbf04 100644
--- a/third_party/blink/web_tests/http/tests/intersection-observer/resources/v2-subframe.html
+++ b/third_party/blink/web_tests/external/wpt/intersection-observer/resources/v2-subframe.html
@@ -1,23 +1,22 @@
<!DOCTYPE html>
<div id="target">target</div>
<script>
+var delay = 100;
var results = [];
-if (window.internals) {
- internals.DisableIntersectionObserverThrottleDelay();
-}
-
function waitForNotification(f) {
- requestAnimationFrame(function () {
- setTimeout(function () {
- setTimeout(f)
+ setTimeout(() => {
+ requestAnimationFrame(function () {
+ requestAnimationFrame(function () {
+ setTimeout(f)
+ })
})
- })
+ }, delay)
}
window.addEventListener("message", event => {
waitForNotification(() => {
- window.parent.postMessage(results.map(e => { return e.isVisible }), "*");
+ window.parent.postMessage(results.map(e => e.isVisible), "*");
results = [];
});
});
@@ -26,7 +25,7 @@
var target = document.getElementById("target");
var observer = new IntersectionObserver(entries => {
results = entries;
- }, {trackVisibility: true, delay: 100});
+ }, {trackVisibility: true, delay: delay});
observer.observe(document.getElementById("target"));
window.parent.postMessage("", "*");
};
diff --git a/third_party/blink/web_tests/intersection-observer/v2/animated-occlusion.html b/third_party/blink/web_tests/external/wpt/intersection-observer/v2/animated-occlusion.html
similarity index 71%
rename from third_party/blink/web_tests/intersection-observer/v2/animated-occlusion.html
rename to third_party/blink/web_tests/external/wpt/intersection-observer/v2/animated-occlusion.html
index 2e076cf..c1eafb7 100644
--- a/third_party/blink/web_tests/intersection-observer/v2/animated-occlusion.html
+++ b/third_party/blink/web_tests/external/wpt/intersection-observer/v2/animated-occlusion.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
-<script src="../../resources/testharness.js"></script>
-<script src="../../resources/testharnessreport.js"></script>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
<script src="../resources/intersection-observer-test-utils.js"></script>
<style>
@@ -37,40 +37,36 @@
<div id="occluder"></div>
<script>
+var vw = document.documentElement.clientWidth;
+var vh = document.documentElement.clientHeight;
+var delay = 100;
var entries = [];
var target;
var occluder;
-if (window.internals) {
- internals.DisableIntersectionObserverThrottleDelay();
-}
-
runTestCycle(function() {
- assert_equals(window.innerWidth, 800, "Window must be 800 pixels wide.");
- assert_equals(window.innerHeight, 600, "Window must be 600 pixels high.");
-
target = document.getElementById("target");
occluder = document.getElementById("occluder");
assert_true(!!target, "target exists");
assert_true(!!occluder, "occluder exists");
var observer = new IntersectionObserver(function(changes) {
entries = entries.concat(changes)
- }, {trackVisibility: true, delay: 100});
+ }, {trackVisibility: true, delay: delay});
observer.observe(target);
entries = entries.concat(observer.takeRecords());
assert_equals(entries.length, 0, "No initial notifications.");
- runTestCycle(step0, "First rAF.");
-}, "IntersectionObserverV2 in a single document using the implicit root, with an animated occluding element.");
+ runTestCycle(step0, "First rAF.", delay);
+}, "IntersectionObserverV2 in a single document using the implicit root, with an animated occluding element.", delay);
function step0() {
occluder.style.animation = "rotate .1s linear";
- setTimeout(() => {
- runTestCycle(step1, "occluder.style.animation = 'rotate .1s linear'");
+ step_timeout(() => {
+ runTestCycle(step1, "occluder.style.animation = 'rotate .1s linear'", delay);
}, 50);
- checkLastEntry(entries, 0, [0, 100, 0, 100, 0, 100, 0, 100, 0, 800, 0, 600, true, true]);
+ checkLastEntry(entries, 0, [0, 100, 0, 100, 0, 100, 0, 100, 0, vw, 0, vh, true, true]);
}
function step1() {
- checkLastEntry(entries, 1, [0, 100, 0, 100, 0, 100, 0, 100, 0, 800, 0, 600, true, false]);
+ checkLastEntry(entries, 1, [0, 100, 0, 100, 0, 100, 0, 100, 0, vw, 0, vh, true, false]);
}
</script>
diff --git a/third_party/blink/web_tests/intersection-observer/v2/blur-filter.html b/third_party/blink/web_tests/external/wpt/intersection-observer/v2/blur-filter.html
similarity index 79%
rename from third_party/blink/web_tests/intersection-observer/v2/blur-filter.html
rename to third_party/blink/web_tests/external/wpt/intersection-observer/v2/blur-filter.html
index c4782eb..2f55066 100644
--- a/third_party/blink/web_tests/intersection-observer/v2/blur-filter.html
+++ b/third_party/blink/web_tests/external/wpt/intersection-observer/v2/blur-filter.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
-<script src="../../resources/testharness.js"></script>
-<script src="../../resources/testharnessreport.js"></script>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
<script src="../resources/intersection-observer-test-utils.js"></script>
<style>
@@ -30,14 +30,11 @@
<div id="occluder"></div>
<script>
+var delay = 100;
var entries = [];
var target;
var occluder;
-if (window.internals) {
- internals.DisableIntersectionObserverThrottleDelay();
-}
-
runTestCycle(function() {
target = document.getElementById("target");
occluder = document.getElementById("occluder");
@@ -45,17 +42,17 @@
assert_true(!!occluder, "occluder exists");
var observer = new IntersectionObserver(function(changes) {
entries = entries.concat(changes)
- }, {trackVisibility: true, delay: 100});
+ }, {trackVisibility: true, delay: delay});
observer.observe(target);
entries = entries.concat(observer.takeRecords());
assert_equals(entries.length, 0, "No initial notifications.");
- runTestCycle(step0, "First rAF.");
-}, "IntersectionObserverV2 in a single document using the implicit root, with an occluding element.");
+ runTestCycle(step0, "First rAF.", delay);
+}, "IntersectionObserverV2 in a single document using the implicit root, with an occluding element.", delay);
function step0() {
// Occluding elements with opacity=0 should not affect target visibility.
occluder.style.opacity = "0";
- runTestCycle(step2, "occluder.style.opacity = 0");
+ runTestCycle(step2, "occluder.style.opacity = 0", delay);
// First notification should report occlusion due to blur filter.
checkLastEntry(entries, 0, [0, 100, 0, 100, 0, 100, 0, 100, 0, 800, 0, 600, true, false]);
diff --git a/third_party/blink/web_tests/intersection-observer/v2/box-shadow.html b/third_party/blink/web_tests/external/wpt/intersection-observer/v2/box-shadow.html
similarity index 78%
rename from third_party/blink/web_tests/intersection-observer/v2/box-shadow.html
rename to third_party/blink/web_tests/external/wpt/intersection-observer/v2/box-shadow.html
index 6a3c1e0..bcc6980 100644
--- a/third_party/blink/web_tests/intersection-observer/v2/box-shadow.html
+++ b/third_party/blink/web_tests/external/wpt/intersection-observer/v2/box-shadow.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
-<script src="../../resources/testharness.js"></script>
-<script src="../../resources/testharnessreport.js"></script>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
<script src="../resources/intersection-observer-test-utils.js"></script>
<style>
@@ -26,14 +26,11 @@
<iframe id=target srcdoc="<!DOCTYPE html><div>Lorem ipsum. Lorem ipsum. Lorem ipsum. Lorem ipsum. Lorem ipsum. Lorem ipsum. Lorem ipsum. Lorem ipsum. Lorem ipsum. Lorem ipsum.</div>"></iframe><div id=box-shadow></div>
<script>
+var delay = 100;
var entries = [];
var target;
var occluder;
-if (window.internals) {
- internals.DisableIntersectionObserverThrottleDelay();
-}
-
runTestCycle(function() {
target = document.getElementById("target");
occluder = document.getElementById("box-shadow");
@@ -41,23 +38,23 @@
assert_true(!!occluder, "occluder exists");
let observer = new IntersectionObserver(function(changes) {
entries = entries.concat(changes)
- }, {trackVisibility: true, delay: 100});
+ }, {trackVisibility: true, delay: delay});
observer.observe(target);
entries = entries.concat(observer.takeRecords());
assert_equals(entries.length, 0, "No initial notifications.");
- runTestCycle(step0, "First rAF.");
-}, "IntersectionObserverV2 observing an iframe element.");
+ runTestCycle(step0, "First rAF.", delay);
+}, "IntersectionObserverV2 observing an iframe element.", delay);
function step0() {
occluder.style.boxShadow = "none";
- runTestCycle(step1, 'occluder.style.boxShadow = "none"');
+ runTestCycle(step1, 'occluder.style.boxShadow = "none"', delay);
assert_equals(entries.length, 1, "Initial notification.");
assert_equals(entries[0].isVisible, false, "Initially occluded.");
}
function step1() {
occluder.style.boxShadow = "";
- runTestCycle(step2, 'occluder.style.boxShadow = ""');
+ runTestCycle(step2, 'occluder.style.boxShadow = ""', delay);
assert_equals(entries.length, 2, "Notification after removing box shadow.");
assert_equals(entries[1].isVisible, true, "Visible when box shadow removed.");
}
diff --git a/third_party/blink/web_tests/http/tests/intersection-observer/v2/cross-origin-effects.html b/third_party/blink/web_tests/external/wpt/intersection-observer/v2/cross-origin-effects.sub.html
similarity index 79%
rename from third_party/blink/web_tests/http/tests/intersection-observer/v2/cross-origin-effects.html
rename to third_party/blink/web_tests/external/wpt/intersection-observer/v2/cross-origin-effects.sub.html
index 546ec74..edb8f02 100644
--- a/third_party/blink/web_tests/http/tests/intersection-observer/v2/cross-origin-effects.html
+++ b/third_party/blink/web_tests/external/wpt/intersection-observer/v2/cross-origin-effects.sub.html
@@ -1,6 +1,7 @@
<!DOCTYPE html>
-<script src="../../resources/testharness.js"></script>
-<script src="../../resources/testharnessreport.js"></script>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/intersection-observer-test-utils.js"></script>
<style>
pre, #log {
@@ -11,16 +12,10 @@
</style>
<div id="container">
- <iframe src="http://localhost:8080/intersection-observer/resources/v2-subframe.html"></iframe>
+ <iframe src="http://{{domains[www1]}}:{{ports[http][0]}}/intersection-observer/resources/v2-subframe.html"></iframe>
</div>
<script>
-function waitForFrame(f) {
- requestAnimationFrame(() => {
- setTimeout(f)
- })
-}
-
async_test(function(t) {
let container = document.getElementById("container");
let iframe = document.querySelector("iframe");
@@ -57,7 +52,7 @@
window.addEventListener("message", event => {
if (steps.length) {
t.step_func(steps.shift(), event);
- waitForFrame(() => {
+ waitForFrame(t, () => {
iframe.contentWindow.postMessage("", "*")
});
} else {
diff --git a/third_party/blink/web_tests/http/tests/intersection-observer/v2/cross-origin-occlusion.html b/third_party/blink/web_tests/external/wpt/intersection-observer/v2/cross-origin-occlusion.sub.html
similarity index 79%
rename from third_party/blink/web_tests/http/tests/intersection-observer/v2/cross-origin-occlusion.html
rename to third_party/blink/web_tests/external/wpt/intersection-observer/v2/cross-origin-occlusion.sub.html
index 1556ade4..6f9fa57 100644
--- a/third_party/blink/web_tests/http/tests/intersection-observer/v2/cross-origin-occlusion.html
+++ b/third_party/blink/web_tests/external/wpt/intersection-observer/v2/cross-origin-occlusion.sub.html
@@ -1,6 +1,7 @@
<!DOCTYPE html>
-<script src="../../resources/testharness.js"></script>
-<script src="../../resources/testharnessreport.js"></script>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/intersection-observer-test-utils.js"></script>
<style>
pre, #log {
@@ -21,16 +22,10 @@
}
</style>
-<iframe src="http://localhost:8080/intersection-observer/resources/v2-subframe.html"></iframe>
+<iframe src="http://{{domains[www1]}}:{{ports[http][0]}}/intersection-observer/resources/v2-subframe.html"></iframe>
<div id="occluder"></div>
<script>
-function waitForFrame(f) {
- requestAnimationFrame(() => {
- setTimeout(f)
- })
-}
-
async_test(function(t) {
let iframe = document.querySelector("iframe");
let occluder = document.getElementById("occluder");
@@ -61,7 +56,7 @@
window.addEventListener("message", event => {
if (steps.length) {
t.step_func(steps.shift(), event);
- waitForFrame(() => {
+ waitForFrame(t, () => {
iframe.contentWindow.postMessage("", "*");
});
} else {
diff --git a/third_party/blink/web_tests/intersection-observer/v2/delay-test.html b/third_party/blink/web_tests/external/wpt/intersection-observer/v2/delay-test.html
similarity index 92%
rename from third_party/blink/web_tests/intersection-observer/v2/delay-test.html
rename to third_party/blink/web_tests/external/wpt/intersection-observer/v2/delay-test.html
index 52ab5b84..086301c4 100644
--- a/third_party/blink/web_tests/intersection-observer/v2/delay-test.html
+++ b/third_party/blink/web_tests/external/wpt/intersection-observer/v2/delay-test.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
-<script src="../../resources/testharness.js"></script>
-<script src="../../resources/testharnessreport.js"></script>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
<script src="../resources/intersection-observer-test-utils.js"></script>
<style>
@@ -43,16 +43,7 @@
entries = entries.concat(observer.takeRecords());
assert_equals(entries.length, 0, "No initial notifications.");
// The first notification should be sent without delay.
- waitForNotification(t.step_func(step0));
-
- function step0() {
- assert_equals(entries.length, 1);
- assert_true(entries[0].isVisible);
- // This should trigger a notification on the next run.
- occluder.style.marginTop = "-10px";
- // Enter a rAF loop until the delay timer expires.
- waitForDelay(false);
- }
+ waitForNotification(t, t.step_func(step0));
function waitForDelay(timerExpiredBeforeLastFrame) {
requestAnimationFrame(t.step_func(() => {
@@ -71,5 +62,14 @@
}));
}
+ function step0() {
+ assert_equals(entries.length, 1);
+ assert_true(entries[0].isVisible);
+ // This should trigger a notification on the next run.
+ occluder.style.marginTop = "-10px";
+ // Enter a rAF loop until the delay timer expires.
+ waitForDelay(false);
+ }
+
}, "'delay' parameter throttles frequency of notifications.");
</script>
diff --git a/third_party/blink/web_tests/intersection-observer/v2/iframe-target.html b/third_party/blink/web_tests/external/wpt/intersection-observer/v2/iframe-target.html
similarity index 73%
rename from third_party/blink/web_tests/intersection-observer/v2/iframe-target.html
rename to third_party/blink/web_tests/external/wpt/intersection-observer/v2/iframe-target.html
index d7cbf27..3e53ee5 100644
--- a/third_party/blink/web_tests/intersection-observer/v2/iframe-target.html
+++ b/third_party/blink/web_tests/external/wpt/intersection-observer/v2/iframe-target.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
-<script src="../../resources/testharness.js"></script>
-<script src="../../resources/testharnessreport.js"></script>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
<script src="../resources/intersection-observer-test-utils.js"></script>
<style>
@@ -22,24 +22,21 @@
<iframe srcdoc="<!DOCTYPE html><div>Lorem ipsum. Lorem ipsum. Lorem ipsum. Lorem ipsum. Lorem ipsum. Lorem ipsum. Lorem ipsum. Lorem ipsum. Lorem ipsum. Lorem ipsum.</div>"></iframe>
<script>
+var delay = 100;
var entries = [];
var target;
-if (window.internals) {
- internals.DisableIntersectionObserverThrottleDelay();
-}
-
runTestCycle(function() {
target = document.querySelector("iframe");
assert_true(!!target, "target exists");
var observer = new IntersectionObserver(function(changes) {
entries = entries.concat(changes)
- }, {trackVisibility: true, delay: 100});
+ }, {trackVisibility: true, delay: delay});
observer.observe(target);
entries = entries.concat(observer.takeRecords());
assert_equals(entries.length, 0, "No initial notifications.");
- runTestCycle(step0, "First rAF.");
-}, "IntersectionObserverV2 observing an iframe element.");
+ runTestCycle(step0, "First rAF.", delay);
+}, "IntersectionObserverV2 observing an iframe element.", delay);
function step0() {
checkLastEntry(entries, 0, [0, 150, 0, 100, 0, 150, 0, 100, 0, 800, 0, 600, true, true]);
diff --git a/third_party/blink/web_tests/intersection-observer/v2/simple-effects.html b/third_party/blink/web_tests/external/wpt/intersection-observer/v2/simple-effects.html
similarity index 75%
rename from third_party/blink/web_tests/intersection-observer/v2/simple-effects.html
rename to third_party/blink/web_tests/external/wpt/intersection-observer/v2/simple-effects.html
index 913da21..2b7a83a9 100644
--- a/third_party/blink/web_tests/intersection-observer/v2/simple-effects.html
+++ b/third_party/blink/web_tests/external/wpt/intersection-observer/v2/simple-effects.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
-<script src="../../resources/testharness.js"></script>
-<script src="../../resources/testharnessreport.js"></script>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
<script src="../resources/intersection-observer-test-utils.js"></script>
<style>
@@ -28,14 +28,11 @@
</div>
<script>
+var delay = 100;
var entries = [];
var target;
var effects;
-if (window.internals) {
- internals.DisableIntersectionObserverThrottleDelay();
-}
-
runTestCycle(function() {
target = document.getElementById("target");
effects = document.getElementById("effects");
@@ -43,28 +40,28 @@
assert_true(!!effects, "effects exists");
var observer = new IntersectionObserver(function(changes) {
entries = entries.concat(changes)
- }, {trackVisibility: true, delay: 100});
+ }, {trackVisibility: true, delay: delay});
observer.observe(target);
entries = entries.concat(observer.takeRecords());
assert_equals(entries.length, 0, "No initial notifications.");
- runTestCycle(step0, "First rAF.");
-}, "IntersectionObserverV2 in a single document using the implicit root, with a non-zero opacity ancestor.");
+ runTestCycle(step0, "First rAF.", delay);
+}, "IntersectionObserverV2 in a single document using the implicit root, with a non-zero opacity ancestor.", delay);
function step0() {
effects.style.opacity = "0.99";
- runTestCycle(step1, "effects.style.opacity = 0.99");
+ runTestCycle(step1, "effects.style.opacity = 0.99", delay);
checkLastEntry(entries, 0, [0, 100, 0, 100, 0, 100, 0, 100, 0, 800, 0, 600, true, true]);
}
function step1() {
effects.style.opacity = "1";
- runTestCycle(step2, "effects.style.opacity = 1");
+ runTestCycle(step2, "effects.style.opacity = 1", delay);
checkLastEntry(entries, 1, [0, 100, 0, 100, 0, 100, 0, 100, 0, 800, 0, 600, true, false]);
}
function step2() {
effects.style.filter = "grayscale(50%)";
- runTestCycle(step3, "effects.style.filter = grayscale(50%)");
+ runTestCycle(step3, "effects.style.filter = grayscale(50%)", delay);
checkLastEntry(entries, 2, [0, 100, 0, 100, 0, 100, 0, 100, 0, 800, 0, 600, true, true]);
}
diff --git a/third_party/blink/web_tests/intersection-observer/v2/simple-occlusion-svg-foreign-object.html b/third_party/blink/web_tests/external/wpt/intersection-observer/v2/simple-occlusion-svg-foreign-object.html
similarity index 78%
rename from third_party/blink/web_tests/intersection-observer/v2/simple-occlusion-svg-foreign-object.html
rename to third_party/blink/web_tests/external/wpt/intersection-observer/v2/simple-occlusion-svg-foreign-object.html
index a13938a..fcdff67 100644
--- a/third_party/blink/web_tests/intersection-observer/v2/simple-occlusion-svg-foreign-object.html
+++ b/third_party/blink/web_tests/external/wpt/intersection-observer/v2/simple-occlusion-svg-foreign-object.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
-<script src="../../resources/testharness.js"></script>
-<script src="../../resources/testharnessreport.js"></script>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
<script src="../resources/intersection-observer-test-utils.js"></script>
<style>
@@ -32,14 +32,11 @@
</svg>
<script>
+var delay = 100;
var entries = [];
var target;
var occluder;
-if (window.internals) {
- internals.DisableIntersectionObserverThrottleDelay();
-}
-
runTestCycle(function() {
target = document.getElementById("target");
occluder = document.getElementById("occluder");
@@ -47,23 +44,23 @@
assert_true(!!occluder, "occluder exists");
var observer = new IntersectionObserver(function(changes) {
entries = entries.concat(changes)
- }, {trackVisibility: true, delay: 100});
+ }, {trackVisibility: true, delay: delay});
observer.observe(target);
entries = entries.concat(observer.takeRecords());
assert_equals(entries.length, 0, "No initial notifications.");
- runTestCycle(step0, "First rAF.");
-}, "IntersectionObserverV2 in a single document using the implicit root, with an occluding element.");
+ runTestCycle(step0, "First rAF.", delay);
+}, "IntersectionObserverV2 in a single document using the implicit root, with an occluding element.", delay);
function step0() {
svg.style.marginTop = "-10px";
- runTestCycle(step1, "svg.style.marginTop = '-10px'");
+ runTestCycle(step1, "svg.style.marginTop = '-10px'", delay);
checkLastEntry(entries, 0, [0, 100, 0, 100, 0, 100, 0, 100, 0, 800, 0, 600, true, true]);
}
function step1() {
// Occluding elements with opacity=0 should not affect target visibility.
svg.style.opacity = "0";
- runTestCycle(step2, "occluder.style.opacity = 0");
+ runTestCycle(step2, "occluder.style.opacity = 0", delay);
checkLastEntry(entries, 1, [0, 100, 0, 100, 0, 100, 0, 100, 0, 800, 0, 600, true, false]);
}
diff --git a/third_party/blink/web_tests/intersection-observer/v2/simple-occlusion.html b/third_party/blink/web_tests/external/wpt/intersection-observer/v2/simple-occlusion.html
similarity index 77%
rename from third_party/blink/web_tests/intersection-observer/v2/simple-occlusion.html
rename to third_party/blink/web_tests/external/wpt/intersection-observer/v2/simple-occlusion.html
index 16f2f22..ea1ee31 100644
--- a/third_party/blink/web_tests/intersection-observer/v2/simple-occlusion.html
+++ b/third_party/blink/web_tests/external/wpt/intersection-observer/v2/simple-occlusion.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
-<script src="../../resources/testharness.js"></script>
-<script src="../../resources/testharnessreport.js"></script>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
<script src="../resources/intersection-observer-test-utils.js"></script>
<style>
@@ -28,14 +28,11 @@
<div id="occluder"></div>
<script>
+var delay = 100;
var entries = [];
var target;
var occluder;
-if (window.internals) {
- internals.DisableIntersectionObserverThrottleDelay();
-}
-
runTestCycle(function() {
target = document.getElementById("target");
occluder = document.getElementById("occluder");
@@ -43,23 +40,23 @@
assert_true(!!occluder, "occluder exists");
var observer = new IntersectionObserver(function(changes) {
entries = entries.concat(changes)
- }, {trackVisibility: true, delay: 100});
+ }, {trackVisibility: true, delay: delay});
observer.observe(target);
entries = entries.concat(observer.takeRecords());
assert_equals(entries.length, 0, "No initial notifications.");
- runTestCycle(step0, "First rAF.");
-}, "IntersectionObserverV2 in a single document using the implicit root, with an occluding element.");
+ runTestCycle(step0, "First rAF.", delay);
+}, "IntersectionObserverV2 in a single document using the implicit root, with an occluding element.", delay);
function step0() {
occluder.style.marginTop = "-10px";
- runTestCycle(step1, "occluder.style.marginTop = '-10px'");
+ runTestCycle(step1, "occluder.style.marginTop = '-10px'", delay);
checkLastEntry(entries, 0, [0, 100, 0, 100, 0, 100, 0, 100, 0, 800, 0, 600, true, true]);
}
function step1() {
// Occluding elements with opacity=0 should not affect target visibility.
occluder.style.opacity = "0";
- runTestCycle(step2, "occluder.style.opacity = 0");
+ runTestCycle(step2, "occluder.style.opacity = 0", delay);
checkLastEntry(entries, 1, [0, 100, 0, 100, 0, 100, 0, 100, 0, 800, 0, 600, true, false]);
}
diff --git a/third_party/blink/web_tests/intersection-observer/v2/text-shadow.html b/third_party/blink/web_tests/external/wpt/intersection-observer/v2/text-shadow.html
similarity index 79%
rename from third_party/blink/web_tests/intersection-observer/v2/text-shadow.html
rename to third_party/blink/web_tests/external/wpt/intersection-observer/v2/text-shadow.html
index 6a49ae3..c6445c5 100644
--- a/third_party/blink/web_tests/intersection-observer/v2/text-shadow.html
+++ b/third_party/blink/web_tests/external/wpt/intersection-observer/v2/text-shadow.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
-<script src="../../resources/testharness.js"></script>
-<script src="../../resources/testharnessreport.js"></script>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
<script src="../resources/intersection-observer-test-utils.js"></script>
<style>
@@ -29,14 +29,11 @@
<iframe id=target srcdoc="<!DOCTYPE html><div>Lorem ipsum. Lorem ipsum. Lorem ipsum. Lorem ipsum. Lorem ipsum. Lorem ipsum. Lorem ipsum. Lorem ipsum. Lorem ipsum. Lorem ipsum.</div>"></iframe><div id=text-shadow>O</div>
<script>
+var delay = 100;
var entries = [];
var target;
var occluder;
-if (window.internals) {
- internals.DisableIntersectionObserverThrottleDelay();
-}
-
runTestCycle(function() {
target = document.getElementById("target");
occluder = document.getElementById("text-shadow");
@@ -44,23 +41,23 @@
assert_true(!!occluder, "occluder exists");
let observer = new IntersectionObserver(function(changes) {
entries = entries.concat(changes)
- }, {trackVisibility: true, delay: 100});
+ }, {trackVisibility: true, delay: delay});
observer.observe(target);
entries = entries.concat(observer.takeRecords());
assert_equals(entries.length, 0, "No initial notifications.");
- runTestCycle(step0, "First rAF.");
-}, "IntersectionObserverV2 observing an iframe element.");
+ runTestCycle(step0, "First rAF.", delay);
+}, "IntersectionObserverV2 observing an iframe element.", delay);
function step0() {
occluder.style.textShadow = "none";
- runTestCycle(step1, 'occluder.style.textShadow = "none"');
+ runTestCycle(step1, 'occluder.style.textShadow = "none"', delay);
assert_equals(entries.length, 1, "Initial notification.");
assert_equals(entries[0].isVisible, false, "Initially occluded.");
}
function step1() {
occluder.style.textShadow = "";
- runTestCycle(step2, 'occluder.style.textShadow = ""');
+ runTestCycle(step2, 'occluder.style.textShadow = ""', delay);
assert_equals(entries.length, 2, "Notification after removing text shadow.");
assert_equals(entries[1].isVisible, true, "Visible when text shadow removed.");
}
diff --git a/third_party/blink/web_tests/external/wpt/lint.whitelist b/third_party/blink/web_tests/external/wpt/lint.whitelist
index 64ff029..0d066ac 100644
--- a/third_party/blink/web_tests/external/wpt/lint.whitelist
+++ b/third_party/blink/web_tests/external/wpt/lint.whitelist
@@ -174,6 +174,7 @@
SET TIMEOUT: html/webappapis/scripting/processing-model-2/*
SET TIMEOUT: IndexedDB/*
SET TIMEOUT: infrastructure/*
+SET TIMEOUT: intersection-observer/resources/v2-subframe.html
SET TIMEOUT: intersection-observer/target-in-different-window.html
SET TIMEOUT: media-source/mediasource-util.js
SET TIMEOUT: media-source/URL-createObjectURL-revoke.html