| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "bindings/core/v8/NodeOrString.h" | 5 #include "bindings/core/v8/NodeOrString.h" |
| 6 #include "core/dom/ClientRect.h" | 6 #include "core/dom/ClientRect.h" |
| 7 #include "core/exported/WebRemoteFrameImpl.h" | 7 #include "core/exported/WebRemoteFrameImpl.h" |
| 8 #include "core/frame/BrowserControls.h" | 8 #include "core/frame/BrowserControls.h" |
| 9 #include "core/frame/FrameTestHelpers.h" | 9 #include "core/frame/FrameTestHelpers.h" |
| 10 #include "core/frame/LocalFrameView.h" | 10 #include "core/frame/LocalFrameView.h" |
| (...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 144 int delta_x, | 144 int delta_x, |
| 145 int delta_y) { | 145 int delta_y) { |
| 146 WebGestureEvent event(type, WebInputEvent::kNoModifiers, | 146 WebGestureEvent event(type, WebInputEvent::kNoModifiers, |
| 147 WebInputEvent::kTimeStampForTesting); | 147 WebInputEvent::kTimeStampForTesting); |
| 148 event.source_device = device; | 148 event.source_device = device; |
| 149 event.x = 100; | 149 event.x = 100; |
| 150 event.y = 100; | 150 event.y = 100; |
| 151 if (type == WebInputEvent::kGestureScrollUpdate) { | 151 if (type == WebInputEvent::kGestureScrollUpdate) { |
| 152 event.data.scroll_update.delta_x = delta_x; | 152 event.data.scroll_update.delta_x = delta_x; |
| 153 event.data.scroll_update.delta_y = delta_y; | 153 event.data.scroll_update.delta_y = delta_y; |
| 154 } else if (type == WebInputEvent::kGestureScrollBegin) { |
| 155 event.data.scroll_begin.delta_x_hint = delta_x; |
| 156 event.data.scroll_begin.delta_y_hint = delta_y; |
| 154 } | 157 } |
| 155 return WebCoalescedInputEvent(event); | 158 return WebCoalescedInputEvent(event); |
| 156 } | 159 } |
| 157 | 160 |
| 158 WebViewBase* InitializeInternal(const std::string& url, | 161 WebViewBase* InitializeInternal(const std::string& url, |
| 159 FrameTestHelpers::TestWebViewClient* client) { | 162 FrameTestHelpers::TestWebViewClient* client) { |
| 160 RuntimeEnabledFeatures::SetSetRootScrollerEnabled(true); | 163 RuntimeEnabledFeatures::SetSetRootScrollerEnabled(true); |
| 161 | 164 |
| 162 helper_.InitializeAndLoad(url, nullptr, client, nullptr, | 165 helper_.InitializeAndLoad(url, nullptr, client, nullptr, |
| 163 &ConfigureSettings); | 166 &ConfigureSettings); |
| (...skipping 571 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 735 widget = local_frame->FrameWidget(); | 738 widget = local_frame->FrameWidget(); |
| 736 widget->Resize(WebSize(400, 400)); | 739 widget->Resize(WebSize(400, 400)); |
| 737 } | 740 } |
| 738 | 741 |
| 739 Document* document = local_frame->GetFrameView()->GetFrame().GetDocument(); | 742 Document* document = local_frame->GetFrameView()->GetFrame().GetDocument(); |
| 740 Element* container = document->getElementById("container"); | 743 Element* container = document->getElementById("container"); |
| 741 | 744 |
| 742 // Try scrolling in the iframe. | 745 // Try scrolling in the iframe. |
| 743 { | 746 { |
| 744 widget->HandleInputEvent( | 747 widget->HandleInputEvent( |
| 745 GenerateWheelGestureEvent(WebInputEvent::kGestureScrollBegin)); | 748 GenerateWheelGestureEvent(WebInputEvent::kGestureScrollBegin, 0, -100)); |
| 746 widget->HandleInputEvent(GenerateWheelGestureEvent( | 749 widget->HandleInputEvent(GenerateWheelGestureEvent( |
| 747 WebInputEvent::kGestureScrollUpdate, 0, -100)); | 750 WebInputEvent::kGestureScrollUpdate, 0, -100)); |
| 748 widget->HandleInputEvent( | 751 widget->HandleInputEvent( |
| 749 GenerateWheelGestureEvent(WebInputEvent::kGestureScrollEnd)); | 752 GenerateWheelGestureEvent(WebInputEvent::kGestureScrollEnd)); |
| 750 EXPECT_EQ(100, container->scrollTop()); | 753 EXPECT_EQ(100, container->scrollTop()); |
| 751 } | 754 } |
| 752 | 755 |
| 753 // Set the container Element as the root scroller. | 756 // Set the container Element as the root scroller. |
| 754 { | 757 { |
| 755 NonThrowableExceptionState non_throw; | 758 NonThrowableExceptionState non_throw; |
| 756 document->setRootScroller(container, non_throw); | 759 document->setRootScroller(container, non_throw); |
| 757 EXPECT_EQ(container, document->rootScroller()); | 760 EXPECT_EQ(container, document->rootScroller()); |
| 758 } | 761 } |
| 759 | 762 |
| 760 // Try scrolling in the iframe now that it has a root scroller set. | 763 // Try scrolling in the iframe now that it has a root scroller set. |
| 761 { | 764 { |
| 762 widget->HandleInputEvent( | 765 widget->HandleInputEvent( |
| 763 GenerateWheelGestureEvent(WebInputEvent::kGestureScrollBegin)); | 766 GenerateWheelGestureEvent(WebInputEvent::kGestureScrollBegin, 0, -100)); |
| 764 widget->HandleInputEvent(GenerateWheelGestureEvent( | 767 widget->HandleInputEvent(GenerateWheelGestureEvent( |
| 765 WebInputEvent::kGestureScrollUpdate, 0, -100)); | 768 WebInputEvent::kGestureScrollUpdate, 0, -100)); |
| 766 widget->HandleInputEvent( | 769 widget->HandleInputEvent( |
| 767 GenerateWheelGestureEvent(WebInputEvent::kGestureScrollEnd)); | 770 GenerateWheelGestureEvent(WebInputEvent::kGestureScrollEnd)); |
| 768 | 771 |
| 769 // TODO(bokan): This doesn't work right now because we notice in | 772 // TODO(bokan): This doesn't work right now because we notice in |
| 770 // Element::nativeApplyScroll that the container is the | 773 // Element::nativeApplyScroll that the container is the |
| 771 // effectiveRootScroller but the only way we expect to get to | 774 // effectiveRootScroller but the only way we expect to get to |
| 772 // nativeApplyScroll is if the effective scroller had its applyScroll | 775 // nativeApplyScroll is if the effective scroller had its applyScroll |
| 773 // ViewportScrollCallback removed. Keep the scrolls to guard crashes | 776 // ViewportScrollCallback removed. Keep the scrolls to guard crashes |
| (...skipping 469 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1243 // Ensure the target and container weren't put into the same layer. | 1246 // Ensure the target and container weren't put into the same layer. |
| 1244 ASSERT_NE(ToLayoutBox(target->GetLayoutObject())->EnclosingLayer(), | 1247 ASSERT_NE(ToLayoutBox(target->GetLayoutObject())->EnclosingLayer(), |
| 1245 ToLayoutBox(container->GetLayoutObject())->Layer()); | 1248 ToLayoutBox(container->GetLayoutObject())->Layer()); |
| 1246 | 1249 |
| 1247 CheckHitTestAtBottomOfScreen(); | 1250 CheckHitTestAtBottomOfScreen(); |
| 1248 } | 1251 } |
| 1249 | 1252 |
| 1250 } // namespace | 1253 } // namespace |
| 1251 | 1254 |
| 1252 } // namespace blink | 1255 } // namespace blink |
| OLD | NEW |