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

Side by Side Diff: third_party/WebKit/Source/web/tests/WebFrameTest.cpp

Issue 2650403006: Remove PlatformMouseEvent and use WebMouseEvent instead (Closed)
Patch Set: Created 3 years, 10 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 #include "core/loader/FrameLoadRequest.h" 72 #include "core/loader/FrameLoadRequest.h"
73 #include "core/loader/ThreadableLoader.h" 73 #include "core/loader/ThreadableLoader.h"
74 #include "core/page/Page.h" 74 #include "core/page/Page.h"
75 #include "core/page/ScopedPageSuspender.h" 75 #include "core/page/ScopedPageSuspender.h"
76 #include "core/paint/PaintLayer.h" 76 #include "core/paint/PaintLayer.h"
77 #include "core/testing/NullExecutionContext.h" 77 #include "core/testing/NullExecutionContext.h"
78 #include "modules/mediastream/MediaStream.h" 78 #include "modules/mediastream/MediaStream.h"
79 #include "modules/mediastream/MediaStreamRegistry.h" 79 #include "modules/mediastream/MediaStreamRegistry.h"
80 #include "platform/Cursor.h" 80 #include "platform/Cursor.h"
81 #include "platform/DragImage.h" 81 #include "platform/DragImage.h"
82 #include "platform/PlatformMouseEvent.h"
83 #include "platform/PlatformResourceLoader.h" 82 #include "platform/PlatformResourceLoader.h"
84 #include "platform/RuntimeEnabledFeatures.h" 83 #include "platform/RuntimeEnabledFeatures.h"
85 #include "platform/UserGestureIndicator.h" 84 #include "platform/UserGestureIndicator.h"
86 #include "platform/geometry/FloatRect.h" 85 #include "platform/geometry/FloatRect.h"
87 #include "platform/loader/fetch/FetchRequest.h" 86 #include "platform/loader/fetch/FetchRequest.h"
88 #include "platform/loader/fetch/MemoryCache.h" 87 #include "platform/loader/fetch/MemoryCache.h"
89 #include "platform/loader/fetch/ResourceFetcher.h" 88 #include "platform/loader/fetch/ResourceFetcher.h"
90 #include "platform/network/ResourceError.h" 89 #include "platform/network/ResourceError.h"
91 #include "platform/scroll/Scrollbar.h" 90 #include "platform/scroll/Scrollbar.h"
92 #include "platform/scroll/ScrollbarTestSuite.h" 91 #include "platform/scroll/ScrollbarTestSuite.h"
(...skipping 6773 matching lines...) Expand 10 before | Expand all | Expand 10 after
6866 TestNavigationPolicyWebFrameClient client; 6865 TestNavigationPolicyWebFrameClient client;
6867 FrameTestHelpers::WebViewHelper webViewHelper; 6866 FrameTestHelpers::WebViewHelper webViewHelper;
6868 webViewHelper.initializeAndLoad(m_baseURL + "fragment_middle_click.html", 6867 webViewHelper.initializeAndLoad(m_baseURL + "fragment_middle_click.html",
6869 true, &client); 6868 true, &client);
6870 6869
6871 Document* document = 6870 Document* document =
6872 toLocalFrame(webViewHelper.webView()->page()->mainFrame())->document(); 6871 toLocalFrame(webViewHelper.webView()->page()->mainFrame())->document();
6873 KURL destination = document->url(); 6872 KURL destination = document->url();
6874 destination.setFragmentIdentifier("test"); 6873 destination.setFragmentIdentifier("test");
6875 6874
6876 Event* event = MouseEvent::create( 6875 MouseEventInit mouseInitializer;
6877 EventTypeNames::click, false, false, document->domWindow(), 0, 0, 0, 0, 0, 6876 mouseInitializer.setView(document->domWindow());
6878 0, 0, PlatformEvent::NoModifiers, 1, 0, nullptr, TimeTicks(), 6877 mouseInitializer.setButton(1);
6879 PlatformMouseEvent::RealOrIndistinguishable, String(), nullptr); 6878
6879 Event* event =
6880 MouseEvent::create(nullptr, EventTypeNames::click, mouseInitializer);
6880 FrameLoadRequest frameRequest(document, ResourceRequest(destination)); 6881 FrameLoadRequest frameRequest(document, ResourceRequest(destination));
6881 frameRequest.setTriggeringEvent(event); 6882 frameRequest.setTriggeringEvent(event);
6882 toLocalFrame(webViewHelper.webView()->page()->mainFrame()) 6883 toLocalFrame(webViewHelper.webView()->page()->mainFrame())
6883 ->loader() 6884 ->loader()
6884 .load(frameRequest); 6885 .load(frameRequest);
6885 } 6886 }
6886 6887
6887 class TestNewWindowWebViewClient : public FrameTestHelpers::TestWebViewClient { 6888 class TestNewWindowWebViewClient : public FrameTestHelpers::TestWebViewClient {
6888 public: 6889 public:
6889 virtual WebView* createView(WebLocalFrame*, 6890 virtual WebView* createView(WebLocalFrame*,
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
6921 TestNewWindowWebFrameClient webFrameClient; 6922 TestNewWindowWebFrameClient webFrameClient;
6922 FrameTestHelpers::WebViewHelper webViewHelper; 6923 FrameTestHelpers::WebViewHelper webViewHelper;
6923 webViewHelper.initializeAndLoad(m_baseURL + "ctrl_click.html", true, 6924 webViewHelper.initializeAndLoad(m_baseURL + "ctrl_click.html", true,
6924 &webFrameClient, &webViewClient); 6925 &webFrameClient, &webViewClient);
6925 6926
6926 Document* document = 6927 Document* document =
6927 toLocalFrame(webViewHelper.webView()->page()->mainFrame())->document(); 6928 toLocalFrame(webViewHelper.webView()->page()->mainFrame())->document();
6928 KURL destination = toKURL(m_baseURL + "hello_world.html"); 6929 KURL destination = toKURL(m_baseURL + "hello_world.html");
6929 6930
6930 // ctrl+click event 6931 // ctrl+click event
6931 Event* event = MouseEvent::create( 6932 MouseEventInit mouseInitializer;
6932 EventTypeNames::click, false, false, document->domWindow(), 0, 0, 0, 0, 0, 6933 mouseInitializer.setView(document->domWindow());
6933 0, 0, PlatformEvent::CtrlKey, 0, 0, nullptr, TimeTicks(), 6934 mouseInitializer.setButton(1);
6934 PlatformMouseEvent::RealOrIndistinguishable, String(), nullptr); 6935 mouseInitializer.setCtrlKey(true);
6936
6937 Event* event =
6938 MouseEvent::create(nullptr, EventTypeNames::click, mouseInitializer);
6935 FrameLoadRequest frameRequest(document, ResourceRequest(destination)); 6939 FrameLoadRequest frameRequest(document, ResourceRequest(destination));
6936 frameRequest.setTriggeringEvent(event); 6940 frameRequest.setTriggeringEvent(event);
6937 UserGestureIndicator gesture(DocumentUserGestureToken::create(document)); 6941 UserGestureIndicator gesture(DocumentUserGestureToken::create(document));
6938 toLocalFrame(webViewHelper.webView()->page()->mainFrame()) 6942 toLocalFrame(webViewHelper.webView()->page()->mainFrame())
6939 ->loader() 6943 ->loader()
6940 .load(frameRequest); 6944 .load(frameRequest);
6941 FrameTestHelpers::pumpPendingRequestsForFrameToLoad( 6945 FrameTestHelpers::pumpPendingRequestsForFrameToLoad(
6942 webViewHelper.webView()->mainFrame()); 6946 webViewHelper.webView()->mainFrame());
6943 6947
6944 // decidePolicyForNavigation should be called both for the original request 6948 // decidePolicyForNavigation should be called both for the original request
(...skipping 3845 matching lines...) Expand 10 before | Expand all | Expand 10 after
10790 10794
10791 Document* document = webView->mainFrameImpl()->frame()->document(); 10795 Document* document = webView->mainFrameImpl()->frame()->document();
10792 Element* div1Tag = document->getElementById("div1"); 10796 Element* div1Tag = document->getElementById("div1");
10793 10797
10794 HitTestResult hitTestResult = webView->coreHitTestResultAt( 10798 HitTestResult hitTestResult = webView->coreHitTestResultAt(
10795 WebPoint(div1Tag->offsetLeft() + 5, div1Tag->offsetTop() + 5)); 10799 WebPoint(div1Tag->offsetLeft() + 5, div1Tag->offsetTop() + 5));
10796 10800
10797 EXPECT_TRUE(hitTestResult.innerElement()); 10801 EXPECT_TRUE(hitTestResult.innerElement());
10798 10802
10799 // Mouse over link. Mouse cursor should be hand. 10803 // Mouse over link. Mouse cursor should be hand.
10800 PlatformMouseEvent mouseMoveOverLinkEvent( 10804 WebMouseEvent mouseMoveOverLinkEvent(
10801 IntPoint(div1Tag->offsetLeft() + 5, div1Tag->offsetTop() + 5), 10805 WebInputEvent::MouseMove,
10802 IntPoint(div1Tag->offsetLeft() + 5, div1Tag->offsetTop() + 5), 10806 WebFloatPoint(div1Tag->offsetLeft() + 5, div1Tag->offsetTop() + 5),
10803 WebPointerProperties::Button::NoButton, PlatformEvent::MouseMoved, 0, 10807 WebFloatPoint(div1Tag->offsetLeft() + 5, div1Tag->offsetTop() + 5),
10804 PlatformEvent::NoModifiers, TimeTicks::Now()); 10808 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers,
10809 TimeTicks::Now().InSeconds());
10810 mouseMoveOverLinkEvent.setFrameScale(1);
10805 document->frame()->eventHandler().handleMouseMoveEvent( 10811 document->frame()->eventHandler().handleMouseMoveEvent(
10806 mouseMoveOverLinkEvent, Vector<PlatformMouseEvent>()); 10812 mouseMoveOverLinkEvent, Vector<WebMouseEvent>());
10807 10813
10808 EXPECT_EQ(document->hoverNode(), 10814 EXPECT_EQ(document->hoverNode(),
10809 document->frame()->chromeClient().lastSetTooltipNodeForTesting()); 10815 document->frame()->chromeClient().lastSetTooltipNodeForTesting());
10810 EXPECT_EQ(div1Tag, 10816 EXPECT_EQ(div1Tag,
10811 document->frame()->chromeClient().lastSetTooltipNodeForTesting()); 10817 document->frame()->chromeClient().lastSetTooltipNodeForTesting());
10812 10818
10813 Element* div2Tag = document->getElementById("div2"); 10819 Element* div2Tag = document->getElementById("div2");
10814 10820
10815 PlatformMouseEvent mouseMoveEvent( 10821 WebMouseEvent mouseMoveEvent(
10816 IntPoint(div2Tag->offsetLeft() + 5, div2Tag->offsetTop() + 5), 10822 WebInputEvent::MouseMove,
10817 IntPoint(div2Tag->offsetLeft() + 5, div2Tag->offsetTop() + 5), 10823 WebFloatPoint(div2Tag->offsetLeft() + 5, div2Tag->offsetTop() + 5),
10818 WebPointerProperties::Button::NoButton, PlatformEvent::MouseMoved, 0, 10824 WebFloatPoint(div2Tag->offsetLeft() + 5, div2Tag->offsetTop() + 5),
10819 PlatformEvent::NoModifiers, TimeTicks::Now()); 10825 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers,
10826 TimeTicks::Now().InSeconds());
10827 mouseMoveEvent.setFrameScale(1);
10820 document->frame()->eventHandler().handleMouseMoveEvent( 10828 document->frame()->eventHandler().handleMouseMoveEvent(
10821 mouseMoveEvent, Vector<PlatformMouseEvent>()); 10829 mouseMoveEvent, Vector<WebMouseEvent>());
10822 10830
10823 EXPECT_EQ(document->hoverNode(), 10831 EXPECT_EQ(document->hoverNode(),
10824 document->frame()->chromeClient().lastSetTooltipNodeForTesting()); 10832 document->frame()->chromeClient().lastSetTooltipNodeForTesting());
10825 EXPECT_EQ(div2Tag, 10833 EXPECT_EQ(div2Tag,
10826 document->frame()->chromeClient().lastSetTooltipNodeForTesting()); 10834 document->frame()->chromeClient().lastSetTooltipNodeForTesting());
10827 } 10835 }
10828 10836
10829 // Makes sure that mouse hover over an overlay scrollbar doesn't activate 10837 // Makes sure that mouse hover over an overlay scrollbar doesn't activate
10830 // elements below unless the scrollbar is faded out. 10838 // elements below unless the scrollbar is faded out.
10831 TEST_F(WebFrameTest, MouseOverLinkAndOverlayScrollbar) { 10839 TEST_F(WebFrameTest, MouseOverLinkAndOverlayScrollbar) {
(...skipping 20 matching lines...) Expand all
10852 // Ensure hittest has scrollbar and link 10860 // Ensure hittest has scrollbar and link
10853 HitTestResult hitTestResult = 10861 HitTestResult hitTestResult =
10854 webView->coreHitTestResultAt(WebPoint(18, aTag->offsetTop())); 10862 webView->coreHitTestResultAt(WebPoint(18, aTag->offsetTop()));
10855 10863
10856 EXPECT_TRUE(hitTestResult.URLElement()); 10864 EXPECT_TRUE(hitTestResult.URLElement());
10857 EXPECT_TRUE(hitTestResult.innerElement()); 10865 EXPECT_TRUE(hitTestResult.innerElement());
10858 EXPECT_TRUE(hitTestResult.scrollbar()); 10866 EXPECT_TRUE(hitTestResult.scrollbar());
10859 EXPECT_FALSE(hitTestResult.scrollbar()->isCustomScrollbar()); 10867 EXPECT_FALSE(hitTestResult.scrollbar()->isCustomScrollbar());
10860 10868
10861 // Mouse over link. Mouse cursor should be hand. 10869 // Mouse over link. Mouse cursor should be hand.
10862 PlatformMouseEvent mouseMoveOverLinkEvent( 10870 WebMouseEvent mouseMoveOverLinkEvent(
10863 IntPoint(aTag->offsetLeft(), aTag->offsetTop()), 10871 WebInputEvent::MouseMove,
10864 IntPoint(aTag->offsetLeft(), aTag->offsetTop()), 10872 WebFloatPoint(aTag->offsetLeft(), aTag->offsetTop()),
10865 WebPointerProperties::Button::NoButton, PlatformEvent::MouseMoved, 0, 10873 WebFloatPoint(aTag->offsetLeft(), aTag->offsetTop()),
10866 PlatformEvent::NoModifiers, TimeTicks::Now()); 10874 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers,
10875 TimeTicks::Now().InSeconds());
10876 mouseMoveOverLinkEvent.setFrameScale(1);
10867 document->frame()->eventHandler().handleMouseMoveEvent( 10877 document->frame()->eventHandler().handleMouseMoveEvent(
10868 mouseMoveOverLinkEvent, Vector<PlatformMouseEvent>()); 10878 mouseMoveOverLinkEvent, Vector<WebMouseEvent>());
10869 10879
10870 EXPECT_EQ( 10880 EXPECT_EQ(
10871 Cursor::Type::Hand, 10881 Cursor::Type::Hand,
10872 document->frame()->chromeClient().lastSetCursorForTesting().getType()); 10882 document->frame()->chromeClient().lastSetCursorForTesting().getType());
10873 10883
10874 // Mouse over enabled overlay scrollbar. Mouse cursor should be pointer and no 10884 // Mouse over enabled overlay scrollbar. Mouse cursor should be pointer and no
10875 // active hover element. 10885 // active hover element.
10876 PlatformMouseEvent mouseMoveEvent( 10886 WebMouseEvent mouseMoveEvent(
10877 IntPoint(18, aTag->offsetTop()), IntPoint(18, aTag->offsetTop()), 10887 WebInputEvent::MouseMove, WebFloatPoint(18, aTag->offsetTop()),
10878 WebPointerProperties::Button::NoButton, PlatformEvent::MouseMoved, 0, 10888 WebFloatPoint(18, aTag->offsetTop()),
10879 PlatformEvent::NoModifiers, TimeTicks::Now()); 10889 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers,
10890 TimeTicks::Now().InSeconds());
10891 mouseMoveEvent.setFrameScale(1);
10880 document->frame()->eventHandler().handleMouseMoveEvent( 10892 document->frame()->eventHandler().handleMouseMoveEvent(
10881 mouseMoveEvent, Vector<PlatformMouseEvent>()); 10893 mouseMoveEvent, Vector<WebMouseEvent>());
10882 10894
10883 EXPECT_EQ( 10895 EXPECT_EQ(
10884 Cursor::Type::Pointer, 10896 Cursor::Type::Pointer,
10885 document->frame()->chromeClient().lastSetCursorForTesting().getType()); 10897 document->frame()->chromeClient().lastSetCursorForTesting().getType());
10886 10898
10887 PlatformMouseEvent mousePressEvent( 10899 WebMouseEvent mousePressEvent(
10888 IntPoint(18, aTag->offsetTop()), IntPoint(18, aTag->offsetTop()), 10900 WebInputEvent::MouseDown, WebFloatPoint(18, aTag->offsetTop()),
10889 WebPointerProperties::Button::Left, PlatformEvent::MousePressed, 0, 10901 WebFloatPoint(18, aTag->offsetTop()), WebPointerProperties::Button::Left,
10890 PlatformEvent::Modifiers::LeftButtonDown, TimeTicks::Now()); 10902 0, WebInputEvent::Modifiers::LeftButtonDown,
10903 TimeTicks::Now().InSeconds());
10904 mousePressEvent.setFrameScale(1);
10891 document->frame()->eventHandler().handleMousePressEvent(mousePressEvent); 10905 document->frame()->eventHandler().handleMousePressEvent(mousePressEvent);
10892 10906
10893 EXPECT_FALSE(document->activeHoverElement()); 10907 EXPECT_FALSE(document->activeHoverElement());
10894 EXPECT_FALSE(document->hoverNode()); 10908 EXPECT_FALSE(document->hoverNode());
10895 10909
10896 PlatformMouseEvent MouseReleaseEvent( 10910 WebMouseEvent mouseReleaseEvent(
10897 IntPoint(18, aTag->offsetTop()), IntPoint(18, aTag->offsetTop()), 10911 WebInputEvent::MouseUp, WebFloatPoint(18, aTag->offsetTop()),
10898 WebPointerProperties::Button::Left, PlatformEvent::MouseReleased, 0, 10912 WebFloatPoint(18, aTag->offsetTop()), WebPointerProperties::Button::Left,
10899 PlatformEvent::Modifiers::LeftButtonDown, TimeTicks::Now()); 10913 0, WebInputEvent::Modifiers::LeftButtonDown,
10900 document->frame()->eventHandler().handleMouseReleaseEvent(MouseReleaseEvent); 10914 TimeTicks::Now().InSeconds());
10915 mouseReleaseEvent.setFrameScale(1);
10916 document->frame()->eventHandler().handleMouseReleaseEvent(mouseReleaseEvent);
10901 10917
10902 // Mouse over disabled overlay scrollbar. Mouse cursor should be hand and has 10918 // Mouse over disabled overlay scrollbar. Mouse cursor should be hand and has
10903 // active hover element. 10919 // active hover element.
10904 webView->mainFrameImpl()->frameView()->setScrollbarsHidden(true); 10920 webView->mainFrameImpl()->frameView()->setScrollbarsHidden(true);
10905 10921
10906 // Ensure hittest only has link 10922 // Ensure hittest only has link
10907 hitTestResult = webView->coreHitTestResultAt(WebPoint(18, aTag->offsetTop())); 10923 hitTestResult = webView->coreHitTestResultAt(WebPoint(18, aTag->offsetTop()));
10908 10924
10909 EXPECT_TRUE(hitTestResult.URLElement()); 10925 EXPECT_TRUE(hitTestResult.URLElement());
10910 EXPECT_TRUE(hitTestResult.innerElement()); 10926 EXPECT_TRUE(hitTestResult.innerElement());
10911 EXPECT_FALSE(hitTestResult.scrollbar()); 10927 EXPECT_FALSE(hitTestResult.scrollbar());
10912 10928
10913 document->frame()->eventHandler().handleMouseMoveEvent( 10929 document->frame()->eventHandler().handleMouseMoveEvent(
10914 mouseMoveEvent, Vector<PlatformMouseEvent>()); 10930 mouseMoveEvent, Vector<WebMouseEvent>());
10915 10931
10916 EXPECT_EQ( 10932 EXPECT_EQ(
10917 Cursor::Type::Hand, 10933 Cursor::Type::Hand,
10918 document->frame()->chromeClient().lastSetCursorForTesting().getType()); 10934 document->frame()->chromeClient().lastSetCursorForTesting().getType());
10919 10935
10920 document->frame()->eventHandler().handleMousePressEvent(mousePressEvent); 10936 document->frame()->eventHandler().handleMousePressEvent(mousePressEvent);
10921 10937
10922 EXPECT_TRUE(document->activeHoverElement()); 10938 EXPECT_TRUE(document->activeHoverElement());
10923 EXPECT_TRUE(document->hoverNode()); 10939 EXPECT_TRUE(document->hoverNode());
10924 10940
10925 document->frame()->eventHandler().handleMouseReleaseEvent(MouseReleaseEvent); 10941 document->frame()->eventHandler().handleMouseReleaseEvent(mouseReleaseEvent);
10926 } 10942 }
10927 10943
10928 // Makes sure that mouse hover over an custom scrollbar doesn't change the 10944 // Makes sure that mouse hover over an custom scrollbar doesn't change the
10929 // activate elements. 10945 // activate elements.
10930 TEST_F(WebFrameTest, MouseOverCustomScrollbar) { 10946 TEST_F(WebFrameTest, MouseOverCustomScrollbar) {
10931 registerMockedHttpURLLoad("custom-scrollbar-hover.html"); 10947 registerMockedHttpURLLoad("custom-scrollbar-hover.html");
10932 FrameTestHelpers::WebViewHelper webViewHelper; 10948 FrameTestHelpers::WebViewHelper webViewHelper;
10933 WebViewImpl* webView = webViewHelper.initializeAndLoad( 10949 WebViewImpl* webView = webViewHelper.initializeAndLoad(
10934 m_baseURL + "custom-scrollbar-hover.html"); 10950 m_baseURL + "custom-scrollbar-hover.html");
10935 10951
10936 webViewHelper.resize(WebSize(200, 200)); 10952 webViewHelper.resize(WebSize(200, 200));
10937 10953
10938 webView->updateAllLifecyclePhases(); 10954 webView->updateAllLifecyclePhases();
10939 10955
10940 Document* document = toLocalFrame(webView->page()->mainFrame())->document(); 10956 Document* document = toLocalFrame(webView->page()->mainFrame())->document();
10941 10957
10942 Element* scrollbarDiv = document->getElementById("scrollbar"); 10958 Element* scrollbarDiv = document->getElementById("scrollbar");
10943 EXPECT_TRUE(scrollbarDiv); 10959 EXPECT_TRUE(scrollbarDiv);
10944 10960
10945 // Ensure hittest only has DIV 10961 // Ensure hittest only has DIV
10946 HitTestResult hitTestResult = webView->coreHitTestResultAt(WebPoint(1, 1)); 10962 HitTestResult hitTestResult = webView->coreHitTestResultAt(WebPoint(1, 1));
10947 10963
10948 EXPECT_TRUE(hitTestResult.innerElement()); 10964 EXPECT_TRUE(hitTestResult.innerElement());
10949 EXPECT_FALSE(hitTestResult.scrollbar()); 10965 EXPECT_FALSE(hitTestResult.scrollbar());
10950 10966
10951 // Mouse over DIV 10967 // Mouse over DIV
10952 PlatformMouseEvent mouseMoveOverDiv( 10968 WebMouseEvent mouseMoveOverDiv(
10953 IntPoint(1, 1), IntPoint(1, 1), WebPointerProperties::Button::NoButton, 10969 WebInputEvent::MouseMove, WebFloatPoint(1, 1), WebFloatPoint(1, 1),
10954 PlatformEvent::MouseMoved, 0, PlatformEvent::NoModifiers, 10970 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers,
10955 TimeTicks::Now()); 10971 TimeTicks::Now().InSeconds());
10972 mouseMoveOverDiv.setFrameScale(1);
10956 document->frame()->eventHandler().handleMouseMoveEvent( 10973 document->frame()->eventHandler().handleMouseMoveEvent(
10957 mouseMoveOverDiv, Vector<PlatformMouseEvent>()); 10974 mouseMoveOverDiv, Vector<WebMouseEvent>());
10958 10975
10959 // DIV :hover 10976 // DIV :hover
10960 EXPECT_EQ(document->hoverNode(), scrollbarDiv); 10977 EXPECT_EQ(document->hoverNode(), scrollbarDiv);
10961 10978
10962 // Ensure hittest has DIV and scrollbar 10979 // Ensure hittest has DIV and scrollbar
10963 hitTestResult = webView->coreHitTestResultAt(WebPoint(175, 1)); 10980 hitTestResult = webView->coreHitTestResultAt(WebPoint(175, 1));
10964 10981
10965 EXPECT_TRUE(hitTestResult.innerElement()); 10982 EXPECT_TRUE(hitTestResult.innerElement());
10966 EXPECT_TRUE(hitTestResult.scrollbar()); 10983 EXPECT_TRUE(hitTestResult.scrollbar());
10967 EXPECT_TRUE(hitTestResult.scrollbar()->isCustomScrollbar()); 10984 EXPECT_TRUE(hitTestResult.scrollbar()->isCustomScrollbar());
10968 10985
10969 // Mouse over scrollbar 10986 // Mouse over scrollbar
10970 PlatformMouseEvent mouseMoveOverDivAndScrollbar( 10987 WebMouseEvent mouseMoveOverDivAndScrollbar(
10971 IntPoint(175, 1), IntPoint(175, 1), 10988 WebInputEvent::MouseMove, WebFloatPoint(175, 1), WebFloatPoint(175, 1),
10972 WebPointerProperties::Button::NoButton, PlatformEvent::MouseMoved, 0, 10989 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers,
10973 PlatformEvent::NoModifiers, TimeTicks::Now()); 10990 TimeTicks::Now().InSeconds());
10991 mouseMoveOverDivAndScrollbar.setFrameScale(1);
10974 document->frame()->eventHandler().handleMouseMoveEvent( 10992 document->frame()->eventHandler().handleMouseMoveEvent(
10975 mouseMoveOverDivAndScrollbar, Vector<PlatformMouseEvent>()); 10993 mouseMoveOverDivAndScrollbar, Vector<WebMouseEvent>());
10976 10994
10977 // Custom not change the DIV :hover 10995 // Custom not change the DIV :hover
10978 EXPECT_EQ(document->hoverNode(), scrollbarDiv); 10996 EXPECT_EQ(document->hoverNode(), scrollbarDiv);
10979 EXPECT_EQ(hitTestResult.scrollbar()->hoveredPart(), ScrollbarPart::ThumbPart); 10997 EXPECT_EQ(hitTestResult.scrollbar()->hoveredPart(), ScrollbarPart::ThumbPart);
10980 } 10998 }
10981 10999
10982 TEST_F(WebFrameTest, MouseReleaseUpdatesScrollbarHoveredPart) { 11000 TEST_F(WebFrameTest, MouseReleaseUpdatesScrollbarHoveredPart) {
10983 registerMockedHttpURLLoad("custom-scrollbar-hover.html"); 11001 registerMockedHttpURLLoad("custom-scrollbar-hover.html");
10984 FrameTestHelpers::WebViewHelper webViewHelper; 11002 FrameTestHelpers::WebViewHelper webViewHelper;
10985 WebViewImpl* webView = webViewHelper.initializeAndLoad( 11003 WebViewImpl* webView = webViewHelper.initializeAndLoad(
(...skipping 10 matching lines...) Expand all
10996 11014
10997 ScrollableArea* scrollableArea = 11015 ScrollableArea* scrollableArea =
10998 toLayoutBox(scrollbarDiv->layoutObject())->getScrollableArea(); 11016 toLayoutBox(scrollbarDiv->layoutObject())->getScrollableArea();
10999 11017
11000 EXPECT_TRUE(scrollableArea->verticalScrollbar()); 11018 EXPECT_TRUE(scrollableArea->verticalScrollbar());
11001 Scrollbar* scrollbar = scrollableArea->verticalScrollbar(); 11019 Scrollbar* scrollbar = scrollableArea->verticalScrollbar();
11002 EXPECT_EQ(scrollbar->pressedPart(), ScrollbarPart::NoPart); 11020 EXPECT_EQ(scrollbar->pressedPart(), ScrollbarPart::NoPart);
11003 EXPECT_EQ(scrollbar->hoveredPart(), ScrollbarPart::NoPart); 11021 EXPECT_EQ(scrollbar->hoveredPart(), ScrollbarPart::NoPart);
11004 11022
11005 // Mouse moved over the scrollbar. 11023 // Mouse moved over the scrollbar.
11006 PlatformMouseEvent mouseMoveOverScrollbar( 11024 WebMouseEvent mouseMoveOverScrollbar(
11007 IntPoint(175, 1), IntPoint(175, 1), 11025 WebInputEvent::MouseMove, WebFloatPoint(175, 1), WebFloatPoint(175, 1),
11008 WebPointerProperties::Button::NoButton, PlatformEvent::MouseMoved, 0, 11026 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers,
11009 PlatformEvent::NoModifiers, TimeTicks::Now()); 11027 TimeTicks::Now().InSeconds());
11028 mouseMoveOverScrollbar.setFrameScale(1);
11010 document->frame()->eventHandler().handleMouseMoveEvent( 11029 document->frame()->eventHandler().handleMouseMoveEvent(
11011 mouseMoveOverScrollbar, Vector<PlatformMouseEvent>()); 11030 mouseMoveOverScrollbar, Vector<WebMouseEvent>());
11012 HitTestResult hitTestResult = webView->coreHitTestResultAt(WebPoint(175, 1)); 11031 HitTestResult hitTestResult = webView->coreHitTestResultAt(WebPoint(175, 1));
11013 EXPECT_EQ(scrollbar->pressedPart(), ScrollbarPart::NoPart); 11032 EXPECT_EQ(scrollbar->pressedPart(), ScrollbarPart::NoPart);
11014 EXPECT_EQ(scrollbar->hoveredPart(), ScrollbarPart::ThumbPart); 11033 EXPECT_EQ(scrollbar->hoveredPart(), ScrollbarPart::ThumbPart);
11015 11034
11016 // Mouse pressed. 11035 // Mouse pressed.
11017 PlatformMouseEvent mousePressEvent( 11036 WebMouseEvent mousePressEvent(
11018 IntPoint(175, 1), IntPoint(175, 1), WebPointerProperties::Button::Left, 11037 WebInputEvent::MouseDown, WebFloatPoint(175, 1), WebFloatPoint(175, 1),
11019 PlatformEvent::MousePressed, 0, PlatformEvent::Modifiers::LeftButtonDown, 11038 WebPointerProperties::Button::Left, 0,
11020 TimeTicks::Now()); 11039 WebInputEvent::Modifiers::LeftButtonDown, TimeTicks::Now().InSeconds());
11040 mousePressEvent.setFrameScale(1);
11021 document->frame()->eventHandler().handleMousePressEvent(mousePressEvent); 11041 document->frame()->eventHandler().handleMousePressEvent(mousePressEvent);
11022 EXPECT_EQ(scrollbar->pressedPart(), ScrollbarPart::ThumbPart); 11042 EXPECT_EQ(scrollbar->pressedPart(), ScrollbarPart::ThumbPart);
11023 EXPECT_EQ(scrollbar->hoveredPart(), ScrollbarPart::ThumbPart); 11043 EXPECT_EQ(scrollbar->hoveredPart(), ScrollbarPart::ThumbPart);
11024 11044
11025 // Mouse moved off the scrollbar while still pressed. 11045 // Mouse moved off the scrollbar while still pressed.
11026 PlatformMouseEvent mouseMoveOffScrollbar( 11046 WebMouseEvent mouseMoveOffScrollbar(
11027 IntPoint(1, 1), IntPoint(1, 1), WebPointerProperties::Button::Left, 11047 WebInputEvent::MouseMove, WebFloatPoint(1, 1), WebFloatPoint(1, 1),
11028 PlatformEvent::MouseMoved, 0, PlatformEvent::Modifiers::LeftButtonDown, 11048 WebPointerProperties::Button::Left, 0,
11029 TimeTicks::Now()); 11049 WebInputEvent::Modifiers::LeftButtonDown, TimeTicks::Now().InSeconds());
11050 mouseMoveOffScrollbar.setFrameScale(1);
11030 document->frame()->eventHandler().handleMouseLeaveEvent( 11051 document->frame()->eventHandler().handleMouseLeaveEvent(
11031 mouseMoveOffScrollbar); 11052 mouseMoveOffScrollbar);
11032 EXPECT_EQ(scrollbar->pressedPart(), ScrollbarPart::ThumbPart); 11053 EXPECT_EQ(scrollbar->pressedPart(), ScrollbarPart::ThumbPart);
11033 EXPECT_EQ(scrollbar->hoveredPart(), ScrollbarPart::ThumbPart); 11054 EXPECT_EQ(scrollbar->hoveredPart(), ScrollbarPart::ThumbPart);
11034 11055
11035 // Mouse released. 11056 // Mouse released.
11036 PlatformMouseEvent MouseReleaseEvent( 11057 WebMouseEvent mouseReleaseEvent(
11037 IntPoint(1, 1), IntPoint(1, 1), WebPointerProperties::Button::Left, 11058 WebInputEvent::MouseUp, WebFloatPoint(1, 1), WebFloatPoint(1, 1),
11038 PlatformEvent::MouseReleased, 0, PlatformEvent::Modifiers::LeftButtonDown, 11059 WebPointerProperties::Button::Left, 0,
11039 TimeTicks::Now()); 11060 WebInputEvent::Modifiers::LeftButtonDown, TimeTicks::Now().InSeconds());
11040 document->frame()->eventHandler().handleMouseReleaseEvent(MouseReleaseEvent); 11061 mouseReleaseEvent.setFrameScale(1);
11062 document->frame()->eventHandler().handleMouseReleaseEvent(mouseReleaseEvent);
11041 EXPECT_EQ(scrollbar->pressedPart(), ScrollbarPart::NoPart); 11063 EXPECT_EQ(scrollbar->pressedPart(), ScrollbarPart::NoPart);
11042 EXPECT_EQ(scrollbar->hoveredPart(), ScrollbarPart::NoPart); 11064 EXPECT_EQ(scrollbar->hoveredPart(), ScrollbarPart::NoPart);
11043 } 11065 }
11044 11066
11045 static void disableCompositing(WebSettings* settings) { 11067 static void disableCompositing(WebSettings* settings) {
11046 settings->setAcceleratedCompositingEnabled(false); 11068 settings->setAcceleratedCompositingEnabled(false);
11047 settings->setPreferCompositingToLCDTextEnabled(false); 11069 settings->setPreferCompositingToLCDTextEnabled(false);
11048 } 11070 }
11049 11071
11050 // Make sure overlay scrollbars on non-composited scrollers fade out and set 11072 // Make sure overlay scrollbars on non-composited scrollers fade out and set
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
11237 11259
11238 EXPECT_TRUE(mainFrameClient.childClient().didCallFrameDetached()); 11260 EXPECT_TRUE(mainFrameClient.childClient().didCallFrameDetached());
11239 EXPECT_TRUE(mainFrameClient.childClient().didCallDidStopLoading()); 11261 EXPECT_TRUE(mainFrameClient.childClient().didCallDidStopLoading());
11240 EXPECT_TRUE(mainFrameClient.childClient().didCallDidFinishDocumentLoad()); 11262 EXPECT_TRUE(mainFrameClient.childClient().didCallDidFinishDocumentLoad());
11241 EXPECT_TRUE(mainFrameClient.childClient().didCallDidHandleOnloadEvents()); 11263 EXPECT_TRUE(mainFrameClient.childClient().didCallDidHandleOnloadEvents());
11242 11264
11243 webViewHelper.reset(); 11265 webViewHelper.reset();
11244 } 11266 }
11245 11267
11246 } // namespace blink 11268 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698