Index: third_party/WebKit/LayoutTests/intersection-observer/resources/observer-in-iframe-subframe.html |
diff --git a/third_party/WebKit/LayoutTests/intersection-observer/resources/observer-in-iframe-subframe.html b/third_party/WebKit/LayoutTests/intersection-observer/resources/observer-in-iframe-subframe.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..711a9ce867470dca276e8b879c7afb33f13e0de7 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/intersection-observer/resources/observer-in-iframe-subframe.html |
@@ -0,0 +1,65 @@ |
+<!DOCTYPE html> |
+<script src="../../resources/testharness.js"></script> |
+<script src="../../resources/testharnessreport.js"></script> |
+<script src="./intersection-observer-test-utils.js"></script> |
+ |
+<style> |
+#root { |
+ width: 200px; |
+ height: 200px; |
+} |
+#scroller { |
+ width: 160px; |
+ height: 200px; |
+ overflow-y: scroll; |
+} |
+#target { |
+ width: 100px; |
+ height: 100px; |
+ background-color: green; |
+} |
+.spacer { |
+ height: 300px; |
+} |
+</style> |
+ |
+<div id="root"> |
+ <div id="scroller"> |
+ <div class="spacer"></div> |
+ <div id="target"></div> |
+ <div class="spacer"></div> |
+ </div> |
+</div> |
+ |
+<script> |
+setup({message_events: [], output_document: window.parent.document}); |
+ |
+var entries = []; |
+var root, scroller, target; |
+ |
+runTestCycle(function() { |
+ root = document.getElementById("root"); |
+ assert_true(!!root, "Root element exists."); |
+ scroller = document.getElementById("scroller"); |
+ assert_true(!!scroller, "Scroller element exists."); |
+ target = document.getElementById("target"); |
+ assert_true(!!target, "Target element exists."); |
+ var observer = new IntersectionObserver(function(changes) { |
+ entries = entries.concat(changes) |
+ }, {root: root}); |
+ observer.observe(target); |
+ entries = entries.concat(observer.takeRecords()); |
+ assert_equals(entries.length, 0, "No initial notifications.") |
+ runTestCycle(step1, "First rAF."); |
+}, "IntersectionObserver in iframe with explicit root."); |
+ |
+function step1() { |
+ scroller.scrollTop = 250; |
+ runTestCycle(step2, "scroller.scrollTop = 250"); |
+ assert_equals(entries.length, 0, "No notifications after first rAF."); |
+} |
+ |
+function step2() { |
+ checkLastEntry(entries, 0, [8, 108, 58, 158, 8, 108, 58, 158, 8, 208, 8, 208, target]); |
+} |
+</script> |