Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(41)

Unified Diff: third_party/WebKit/LayoutTests/intersection-observer/resources/cross-origin-subframe.html

Issue 2560253004: IntersectionObserver: convert tests to testharness.js (Closed)
Patch Set: Address comments Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/intersection-observer/resources/cross-origin-subframe.html
diff --git a/third_party/WebKit/LayoutTests/http/tests/intersection-observer/resources/cross-origin-subframe.html b/third_party/WebKit/LayoutTests/intersection-observer/resources/cross-origin-subframe.html
similarity index 58%
rename from third_party/WebKit/LayoutTests/http/tests/intersection-observer/resources/cross-origin-subframe.html
rename to third_party/WebKit/LayoutTests/intersection-observer/resources/cross-origin-subframe.html
index edf34dcd2a591c09c7d4cc213bf175104acaf8ad..74168340d4b9624c9bfceaa07c87482b2347a1dc 100644
--- a/third_party/WebKit/LayoutTests/http/tests/intersection-observer/resources/cross-origin-subframe.html
+++ b/third_party/WebKit/LayoutTests/intersection-observer/resources/cross-origin-subframe.html
@@ -1,8 +1,8 @@
<!DOCTYPE html>
-<script src="/js-test-resources/intersection-observer-helper-functions.js"></script>
<div style="height: 200px; width: 100px;"></div>
<div id="target" style="background-color: green; width:100px; height:100px"></div>
<div style="height: 200px; width: 100px;"></div>
+
<script>
var port;
var entries = [];
@@ -10,28 +10,64 @@ var target = document.getElementById('target');
var scroller = document.scrollingElement;
var nextStep;
+function clientRectToJson(rect) {
+ if (!rect)
+ return "null";
+ return {
+ top: rect.top,
+ right: rect.right,
+ bottom: rect.bottom,
+ left: rect.left
+ };
+}
+
+function entryToJson(entry) {
+ return {
+ boundingClientRect: clientRectToJson(entry.boundingClientRect),
+ intersectionRect: clientRectToJson(entry.intersectionRect),
+ rootBounds: clientRectToJson(entry.rootBounds),
+ target: entry.target.id
+ };
+}
+
+function coordinatesToClientRectJson(top, right, bottom, left) {
+ return {
+ top: top,
+ right: right,
+ bottom: bottom,
+ left: left
+ };
+}
+
// Note that we never use RAF in this code, because this frame might get render-throttled.
// Instead of RAF-ing, we just post an empty message to the parent window, which will
// RAF when it is received, and then send us a message to cause the next step to run.
// Use a rootMargin here, and verify it does NOT get applied for the cross-origin case.
-var observer = new IntersectionObserver(
- changes => { entries = entries.concat(changes) },
- { rootMargin: "7px" }
-);
+var observer = new IntersectionObserver(function(changes) {
+ entries = entries.concat(changes)
+}, { rootMargin: "7px" });
observer.observe(target);
function step0() {
entries = entries.concat(observer.takeRecords());
nextStep = step1;
- port.postMessage({actual: entries.map(entryToJson), expected: []}, "*");
+ port.postMessage({
+ actual: entries.map(entryToJson),
+ expected: [],
+ description: "First rAF"
+ }, "*");
entries = [];
port.postMessage({scrollTo: 200}, "*");
}
function step1() {
entries = entries.concat(observer.takeRecords());
- port.postMessage({actual: entries.map(entryToJson), expected: []}, "*");
+ port.postMessage({
+ actual: entries.map(entryToJson),
+ expected: [],
+ description: "topDocument.scrollingElement.scrollTop = 200"
+ }, "*");
entries = [];
scroller.scrollTop = 250;
nextStep = step2;
@@ -46,7 +82,11 @@ function step2() {
rootBounds: "null",
target: target.id
}];
- port.postMessage({actual: entries.map(entryToJson), expected: expected}, "*");
+ port.postMessage({
+ actual: entries.map(entryToJson),
+ expected: expected,
+ description: "iframeDocument.scrollingElement.scrollTop = 250"
+ }, "*");
entries = [];
nextStep = step3;
port.postMessage({scrollTo: 100}, "*");
@@ -60,7 +100,11 @@ function step3() {
rootBounds: "null",
target: target.id
}];
- port.postMessage({actual: entries.map(entryToJson), expected: expected}, "*");
+ port.postMessage({
+ actual: entries.map(entryToJson),
+ expected: expected,
+ description: "topDocument.scrollingElement.scrollTop = 100"
+ }, "*");
port.postMessage({DONE: 1}, "*");
}

Powered by Google App Engine
This is Rietveld 408576698