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

Unified Diff: third_party/WebKit/LayoutTests/fast/scrolling/scroll-non-descendant-of-root-scroller.html

Issue 2365793002: Fix scroll chaining for non-descendants of root scroller. (Closed)
Patch Set: Rebase and remove hack Created 4 years, 2 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
« no previous file with comments | « cc/trees/layer_tree_host_impl_unittest.cc ('k') | third_party/WebKit/Source/core/input/ScrollManager.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/LayoutTests/fast/scrolling/scroll-non-descendant-of-root-scroller.html
diff --git a/third_party/WebKit/LayoutTests/fast/scrolling/scroll-non-descendant-of-root-scroller.html b/third_party/WebKit/LayoutTests/fast/scrolling/scroll-non-descendant-of-root-scroller.html
new file mode 100644
index 0000000000000000000000000000000000000000..702f8f51b34861fff5d998d002c063427a25bae4
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/scrolling/scroll-non-descendant-of-root-scroller.html
@@ -0,0 +1,111 @@
+<!DOCTYPE html>
+<style>
+ ::-webkit-scrollbar {
+ width: 0px;
+ height: 0px;
+ }
+
+ body, html {
+ width: 100%;
+ height: 100%;
+ margin: 0px;
+ }
+
+ #rootscroller {
+ width: 100%;
+ height: 100%;
+ overflow: auto;
+ }
+
+ #dialog {
+ position: fixed;
+ left: 50px;
+ right: 50px;
+ top: 50px;
+ bottom: 50px;
+ overflow: auto;
+ }
+
+ .bigspace {
+ width: 2000px;
+ height: 2000px;
+ background-image: repeating-linear-gradient(
+ 45deg,
+ yellow,
+ yellow 80px,
+ orange 80px,
+ orange 160px);
+ }
+
+ .bigspace2 {
+ width: 2000px;
+ height: 2000px;
+ background-image: repeating-linear-gradient(
+ -45deg,
+ blue,
+ blue 80px,
+ red 80px,
+ red 160px);
+ }
+
+</style>
+
+<div id="rootscroller">
+ To test manually, try scrolling the red/orange box past the end. Scrolling
+ shouldn't chain up to this blue/red box.
+ <div class="bigspace2"></div>
+</div>
+<div id="dialog">
+ <div class="bigspace"></div>
+</div>
+
+<script src="../../resources/testharness.js"></script>
+<script src="../../resources/testharnessreport.js"></script>
+
+<script>
+ var rootScroller = document.querySelector('#rootscroller');
+ var dialog = document.querySelector('#dialog');
+
+ document.rootScroller = rootScroller;
+
+ var dialogRect = dialog.getBoundingClientRect();
+
+ var x = dialogRect.left + dialogRect.width / 2;
+ var y = dialogRect.top + dialogRect.height / 2;
+
+ test(function() {
+ if (!window.eventSender)
+ return;
+
+ // Sanity check - there should be no initial scroll.
+ assert_equals(dialog.scrollLeft, 0);
+ assert_equals(dialog.scrollTop, 0);
+ assert_equals(rootscroller.scrollLeft, 0);
+ assert_equals(rootscroller.scrollTop, 0);
+
+ // This scroll should fully scroll the dialog
+ eventSender.gestureScrollBegin(x, y);
+ eventSender.gestureScrollUpdate(-3000, 0);
+ eventSender.gestureScrollUpdate(0, -3000);
+ eventSender.gestureScrollEnd(0, 0);
+
+ assert_equals(dialog.scrollLeft, dialog.scrollWidth - dialog.clientWidth);
+ assert_equals(dialog.scrollTop, dialog.scrollHeight - dialog.clientHeight);
+ assert_equals(rootscroller.scrollLeft, 0);
+ assert_equals(rootscroller.scrollTop, 0);
+
+ // This scroll would normally chain up to the viewport but the "real"
+ // viewport has no scrolling. Make sure we don't scroll the
+ // document.rootScroller.
+ eventSender.gestureScrollBegin(x, y);
+ eventSender.gestureScrollUpdate(-3000, 0);
+ eventSender.gestureScrollUpdate(0, -3000);
+ eventSender.gestureScrollEnd(0, 0);
+
+ assert_equals(dialog.scrollLeft, dialog.scrollWidth - dialog.clientWidth);
+ assert_equals(dialog.scrollTop, dialog.scrollHeight - dialog.clientHeight);
+ assert_equals(rootscroller.scrollLeft, 0);
+ assert_equals(rootscroller.scrollTop, 0);
+
+ }, 'Scrolls on the dialog should not chain to the sibling root scroller.');
+</script>
« no previous file with comments | « cc/trees/layer_tree_host_impl_unittest.cc ('k') | third_party/WebKit/Source/core/input/ScrollManager.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698