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

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

Issue 2650403006: Remove PlatformMouseEvent and use WebMouseEvent instead (Closed)
Patch Set: Fix nits 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 3842 matching lines...) Expand 10 before | Expand all | Expand 10 after
10787 10791
10788 Document* document = webView->mainFrameImpl()->frame()->document(); 10792 Document* document = webView->mainFrameImpl()->frame()->document();
10789 Element* div1Tag = document->getElementById("div1"); 10793 Element* div1Tag = document->getElementById("div1");
10790 10794
10791 HitTestResult hitTestResult = webView->coreHitTestResultAt( 10795 HitTestResult hitTestResult = webView->coreHitTestResultAt(
10792 WebPoint(div1Tag->offsetLeft() + 5, div1Tag->offsetTop() + 5)); 10796 WebPoint(div1Tag->offsetLeft() + 5, div1Tag->offsetTop() + 5));
10793 10797
10794 EXPECT_TRUE(hitTestResult.innerElement()); 10798 EXPECT_TRUE(hitTestResult.innerElement());
10795 10799
10796 // Mouse over link. Mouse cursor should be hand. 10800 // Mouse over link. Mouse cursor should be hand.
10797 PlatformMouseEvent mouseMoveOverLinkEvent( 10801 WebMouseEvent mouseMoveOverLinkEvent(
10798 IntPoint(div1Tag->offsetLeft() + 5, div1Tag->offsetTop() + 5), 10802 WebInputEvent::MouseMove,
10799 IntPoint(div1Tag->offsetLeft() + 5, div1Tag->offsetTop() + 5), 10803 WebFloatPoint(div1Tag->offsetLeft() + 5, div1Tag->offsetTop() + 5),
10800 WebPointerProperties::Button::NoButton, PlatformEvent::MouseMoved, 0, 10804 WebFloatPoint(div1Tag->offsetLeft() + 5, div1Tag->offsetTop() + 5),
10801 PlatformEvent::NoModifiers, TimeTicks::Now()); 10805 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers,
10806 TimeTicks::Now().InSeconds());
10807 mouseMoveOverLinkEvent.setFrameScale(1);
10802 document->frame()->eventHandler().handleMouseMoveEvent( 10808 document->frame()->eventHandler().handleMouseMoveEvent(
10803 mouseMoveOverLinkEvent, Vector<PlatformMouseEvent>()); 10809 mouseMoveOverLinkEvent, Vector<WebMouseEvent>());
10804 10810
10805 EXPECT_EQ(document->hoverNode(), 10811 EXPECT_EQ(document->hoverNode(),
10806 document->frame()->chromeClient().lastSetTooltipNodeForTesting()); 10812 document->frame()->chromeClient().lastSetTooltipNodeForTesting());
10807 EXPECT_EQ(div1Tag, 10813 EXPECT_EQ(div1Tag,
10808 document->frame()->chromeClient().lastSetTooltipNodeForTesting()); 10814 document->frame()->chromeClient().lastSetTooltipNodeForTesting());
10809 10815
10810 Element* div2Tag = document->getElementById("div2"); 10816 Element* div2Tag = document->getElementById("div2");
10811 10817
10812 PlatformMouseEvent mouseMoveEvent( 10818 WebMouseEvent mouseMoveEvent(
10813 IntPoint(div2Tag->offsetLeft() + 5, div2Tag->offsetTop() + 5), 10819 WebInputEvent::MouseMove,
10814 IntPoint(div2Tag->offsetLeft() + 5, div2Tag->offsetTop() + 5), 10820 WebFloatPoint(div2Tag->offsetLeft() + 5, div2Tag->offsetTop() + 5),
10815 WebPointerProperties::Button::NoButton, PlatformEvent::MouseMoved, 0, 10821 WebFloatPoint(div2Tag->offsetLeft() + 5, div2Tag->offsetTop() + 5),
10816 PlatformEvent::NoModifiers, TimeTicks::Now()); 10822 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers,
10823 TimeTicks::Now().InSeconds());
10824 mouseMoveEvent.setFrameScale(1);
10817 document->frame()->eventHandler().handleMouseMoveEvent( 10825 document->frame()->eventHandler().handleMouseMoveEvent(
10818 mouseMoveEvent, Vector<PlatformMouseEvent>()); 10826 mouseMoveEvent, Vector<WebMouseEvent>());
10819 10827
10820 EXPECT_EQ(document->hoverNode(), 10828 EXPECT_EQ(document->hoverNode(),
10821 document->frame()->chromeClient().lastSetTooltipNodeForTesting()); 10829 document->frame()->chromeClient().lastSetTooltipNodeForTesting());
10822 EXPECT_EQ(div2Tag, 10830 EXPECT_EQ(div2Tag,
10823 document->frame()->chromeClient().lastSetTooltipNodeForTesting()); 10831 document->frame()->chromeClient().lastSetTooltipNodeForTesting());
10824 } 10832 }
10825 10833
10826 // Makes sure that mouse hover over an overlay scrollbar doesn't activate 10834 // Makes sure that mouse hover over an overlay scrollbar doesn't activate
10827 // elements below unless the scrollbar is faded out. 10835 // elements below unless the scrollbar is faded out.
10828 TEST_F(WebFrameTest, MouseOverLinkAndOverlayScrollbar) { 10836 TEST_F(WebFrameTest, MouseOverLinkAndOverlayScrollbar) {
(...skipping 20 matching lines...) Expand all
10849 // Ensure hittest has scrollbar and link 10857 // Ensure hittest has scrollbar and link
10850 HitTestResult hitTestResult = 10858 HitTestResult hitTestResult =
10851 webView->coreHitTestResultAt(WebPoint(18, aTag->offsetTop())); 10859 webView->coreHitTestResultAt(WebPoint(18, aTag->offsetTop()));
10852 10860
10853 EXPECT_TRUE(hitTestResult.URLElement()); 10861 EXPECT_TRUE(hitTestResult.URLElement());
10854 EXPECT_TRUE(hitTestResult.innerElement()); 10862 EXPECT_TRUE(hitTestResult.innerElement());
10855 EXPECT_TRUE(hitTestResult.scrollbar()); 10863 EXPECT_TRUE(hitTestResult.scrollbar());
10856 EXPECT_FALSE(hitTestResult.scrollbar()->isCustomScrollbar()); 10864 EXPECT_FALSE(hitTestResult.scrollbar()->isCustomScrollbar());
10857 10865
10858 // Mouse over link. Mouse cursor should be hand. 10866 // Mouse over link. Mouse cursor should be hand.
10859 PlatformMouseEvent mouseMoveOverLinkEvent( 10867 WebMouseEvent mouseMoveOverLinkEvent(
10860 IntPoint(aTag->offsetLeft(), aTag->offsetTop()), 10868 WebInputEvent::MouseMove,
10861 IntPoint(aTag->offsetLeft(), aTag->offsetTop()), 10869 WebFloatPoint(aTag->offsetLeft(), aTag->offsetTop()),
10862 WebPointerProperties::Button::NoButton, PlatformEvent::MouseMoved, 0, 10870 WebFloatPoint(aTag->offsetLeft(), aTag->offsetTop()),
10863 PlatformEvent::NoModifiers, TimeTicks::Now()); 10871 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers,
10872 TimeTicks::Now().InSeconds());
10873 mouseMoveOverLinkEvent.setFrameScale(1);
10864 document->frame()->eventHandler().handleMouseMoveEvent( 10874 document->frame()->eventHandler().handleMouseMoveEvent(
10865 mouseMoveOverLinkEvent, Vector<PlatformMouseEvent>()); 10875 mouseMoveOverLinkEvent, Vector<WebMouseEvent>());
10866 10876
10867 EXPECT_EQ( 10877 EXPECT_EQ(
10868 Cursor::Type::Hand, 10878 Cursor::Type::Hand,
10869 document->frame()->chromeClient().lastSetCursorForTesting().getType()); 10879 document->frame()->chromeClient().lastSetCursorForTesting().getType());
10870 10880
10871 // Mouse over enabled overlay scrollbar. Mouse cursor should be pointer and no 10881 // Mouse over enabled overlay scrollbar. Mouse cursor should be pointer and no
10872 // active hover element. 10882 // active hover element.
10873 PlatformMouseEvent mouseMoveEvent( 10883 WebMouseEvent mouseMoveEvent(
10874 IntPoint(18, aTag->offsetTop()), IntPoint(18, aTag->offsetTop()), 10884 WebInputEvent::MouseMove, WebFloatPoint(18, aTag->offsetTop()),
10875 WebPointerProperties::Button::NoButton, PlatformEvent::MouseMoved, 0, 10885 WebFloatPoint(18, aTag->offsetTop()),
10876 PlatformEvent::NoModifiers, TimeTicks::Now()); 10886 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers,
10887 TimeTicks::Now().InSeconds());
10888 mouseMoveEvent.setFrameScale(1);
10877 document->frame()->eventHandler().handleMouseMoveEvent( 10889 document->frame()->eventHandler().handleMouseMoveEvent(
10878 mouseMoveEvent, Vector<PlatformMouseEvent>()); 10890 mouseMoveEvent, Vector<WebMouseEvent>());
10879 10891
10880 EXPECT_EQ( 10892 EXPECT_EQ(
10881 Cursor::Type::Pointer, 10893 Cursor::Type::Pointer,
10882 document->frame()->chromeClient().lastSetCursorForTesting().getType()); 10894 document->frame()->chromeClient().lastSetCursorForTesting().getType());
10883 10895
10884 PlatformMouseEvent mousePressEvent( 10896 WebMouseEvent mousePressEvent(
10885 IntPoint(18, aTag->offsetTop()), IntPoint(18, aTag->offsetTop()), 10897 WebInputEvent::MouseDown, WebFloatPoint(18, aTag->offsetTop()),
10886 WebPointerProperties::Button::Left, PlatformEvent::MousePressed, 0, 10898 WebFloatPoint(18, aTag->offsetTop()), WebPointerProperties::Button::Left,
10887 PlatformEvent::Modifiers::LeftButtonDown, TimeTicks::Now()); 10899 0, WebInputEvent::Modifiers::LeftButtonDown,
10900 TimeTicks::Now().InSeconds());
10901 mousePressEvent.setFrameScale(1);
10888 document->frame()->eventHandler().handleMousePressEvent(mousePressEvent); 10902 document->frame()->eventHandler().handleMousePressEvent(mousePressEvent);
10889 10903
10890 EXPECT_FALSE(document->activeHoverElement()); 10904 EXPECT_FALSE(document->activeHoverElement());
10891 EXPECT_FALSE(document->hoverNode()); 10905 EXPECT_FALSE(document->hoverNode());
10892 10906
10893 PlatformMouseEvent MouseReleaseEvent( 10907 WebMouseEvent mouseReleaseEvent(
10894 IntPoint(18, aTag->offsetTop()), IntPoint(18, aTag->offsetTop()), 10908 WebInputEvent::MouseUp, WebFloatPoint(18, aTag->offsetTop()),
10895 WebPointerProperties::Button::Left, PlatformEvent::MouseReleased, 0, 10909 WebFloatPoint(18, aTag->offsetTop()), WebPointerProperties::Button::Left,
10896 PlatformEvent::Modifiers::LeftButtonDown, TimeTicks::Now()); 10910 0, WebInputEvent::Modifiers::LeftButtonDown,
10897 document->frame()->eventHandler().handleMouseReleaseEvent(MouseReleaseEvent); 10911 TimeTicks::Now().InSeconds());
10912 mouseReleaseEvent.setFrameScale(1);
10913 document->frame()->eventHandler().handleMouseReleaseEvent(mouseReleaseEvent);
10898 10914
10899 // Mouse over disabled overlay scrollbar. Mouse cursor should be hand and has 10915 // Mouse over disabled overlay scrollbar. Mouse cursor should be hand and has
10900 // active hover element. 10916 // active hover element.
10901 webView->mainFrameImpl()->frameView()->setScrollbarsHidden(true); 10917 webView->mainFrameImpl()->frameView()->setScrollbarsHidden(true);
10902 10918
10903 // Ensure hittest only has link 10919 // Ensure hittest only has link
10904 hitTestResult = webView->coreHitTestResultAt(WebPoint(18, aTag->offsetTop())); 10920 hitTestResult = webView->coreHitTestResultAt(WebPoint(18, aTag->offsetTop()));
10905 10921
10906 EXPECT_TRUE(hitTestResult.URLElement()); 10922 EXPECT_TRUE(hitTestResult.URLElement());
10907 EXPECT_TRUE(hitTestResult.innerElement()); 10923 EXPECT_TRUE(hitTestResult.innerElement());
10908 EXPECT_FALSE(hitTestResult.scrollbar()); 10924 EXPECT_FALSE(hitTestResult.scrollbar());
10909 10925
10910 document->frame()->eventHandler().handleMouseMoveEvent( 10926 document->frame()->eventHandler().handleMouseMoveEvent(
10911 mouseMoveEvent, Vector<PlatformMouseEvent>()); 10927 mouseMoveEvent, Vector<WebMouseEvent>());
10912 10928
10913 EXPECT_EQ( 10929 EXPECT_EQ(
10914 Cursor::Type::Hand, 10930 Cursor::Type::Hand,
10915 document->frame()->chromeClient().lastSetCursorForTesting().getType()); 10931 document->frame()->chromeClient().lastSetCursorForTesting().getType());
10916 10932
10917 document->frame()->eventHandler().handleMousePressEvent(mousePressEvent); 10933 document->frame()->eventHandler().handleMousePressEvent(mousePressEvent);
10918 10934
10919 EXPECT_TRUE(document->activeHoverElement()); 10935 EXPECT_TRUE(document->activeHoverElement());
10920 EXPECT_TRUE(document->hoverNode()); 10936 EXPECT_TRUE(document->hoverNode());
10921 10937
10922 document->frame()->eventHandler().handleMouseReleaseEvent(MouseReleaseEvent); 10938 document->frame()->eventHandler().handleMouseReleaseEvent(mouseReleaseEvent);
10923 } 10939 }
10924 10940
10925 // Makes sure that mouse hover over an custom scrollbar doesn't change the 10941 // Makes sure that mouse hover over an custom scrollbar doesn't change the
10926 // activate elements. 10942 // activate elements.
10927 TEST_F(WebFrameTest, MouseOverCustomScrollbar) { 10943 TEST_F(WebFrameTest, MouseOverCustomScrollbar) {
10928 registerMockedHttpURLLoad("custom-scrollbar-hover.html"); 10944 registerMockedHttpURLLoad("custom-scrollbar-hover.html");
10929 FrameTestHelpers::WebViewHelper webViewHelper; 10945 FrameTestHelpers::WebViewHelper webViewHelper;
10930 WebViewImpl* webView = webViewHelper.initializeAndLoad( 10946 WebViewImpl* webView = webViewHelper.initializeAndLoad(
10931 m_baseURL + "custom-scrollbar-hover.html"); 10947 m_baseURL + "custom-scrollbar-hover.html");
10932 10948
10933 webViewHelper.resize(WebSize(200, 200)); 10949 webViewHelper.resize(WebSize(200, 200));
10934 10950
10935 webView->updateAllLifecyclePhases(); 10951 webView->updateAllLifecyclePhases();
10936 10952
10937 Document* document = toLocalFrame(webView->page()->mainFrame())->document(); 10953 Document* document = toLocalFrame(webView->page()->mainFrame())->document();
10938 10954
10939 Element* scrollbarDiv = document->getElementById("scrollbar"); 10955 Element* scrollbarDiv = document->getElementById("scrollbar");
10940 EXPECT_TRUE(scrollbarDiv); 10956 EXPECT_TRUE(scrollbarDiv);
10941 10957
10942 // Ensure hittest only has DIV 10958 // Ensure hittest only has DIV
10943 HitTestResult hitTestResult = webView->coreHitTestResultAt(WebPoint(1, 1)); 10959 HitTestResult hitTestResult = webView->coreHitTestResultAt(WebPoint(1, 1));
10944 10960
10945 EXPECT_TRUE(hitTestResult.innerElement()); 10961 EXPECT_TRUE(hitTestResult.innerElement());
10946 EXPECT_FALSE(hitTestResult.scrollbar()); 10962 EXPECT_FALSE(hitTestResult.scrollbar());
10947 10963
10948 // Mouse over DIV 10964 // Mouse over DIV
10949 PlatformMouseEvent mouseMoveOverDiv( 10965 WebMouseEvent mouseMoveOverDiv(
10950 IntPoint(1, 1), IntPoint(1, 1), WebPointerProperties::Button::NoButton, 10966 WebInputEvent::MouseMove, WebFloatPoint(1, 1), WebFloatPoint(1, 1),
10951 PlatformEvent::MouseMoved, 0, PlatformEvent::NoModifiers, 10967 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers,
10952 TimeTicks::Now()); 10968 TimeTicks::Now().InSeconds());
10969 mouseMoveOverDiv.setFrameScale(1);
10953 document->frame()->eventHandler().handleMouseMoveEvent( 10970 document->frame()->eventHandler().handleMouseMoveEvent(
10954 mouseMoveOverDiv, Vector<PlatformMouseEvent>()); 10971 mouseMoveOverDiv, Vector<WebMouseEvent>());
10955 10972
10956 // DIV :hover 10973 // DIV :hover
10957 EXPECT_EQ(document->hoverNode(), scrollbarDiv); 10974 EXPECT_EQ(document->hoverNode(), scrollbarDiv);
10958 10975
10959 // Ensure hittest has DIV and scrollbar 10976 // Ensure hittest has DIV and scrollbar
10960 hitTestResult = webView->coreHitTestResultAt(WebPoint(175, 1)); 10977 hitTestResult = webView->coreHitTestResultAt(WebPoint(175, 1));
10961 10978
10962 EXPECT_TRUE(hitTestResult.innerElement()); 10979 EXPECT_TRUE(hitTestResult.innerElement());
10963 EXPECT_TRUE(hitTestResult.scrollbar()); 10980 EXPECT_TRUE(hitTestResult.scrollbar());
10964 EXPECT_TRUE(hitTestResult.scrollbar()->isCustomScrollbar()); 10981 EXPECT_TRUE(hitTestResult.scrollbar()->isCustomScrollbar());
10965 10982
10966 // Mouse over scrollbar 10983 // Mouse over scrollbar
10967 PlatformMouseEvent mouseMoveOverDivAndScrollbar( 10984 WebMouseEvent mouseMoveOverDivAndScrollbar(
10968 IntPoint(175, 1), IntPoint(175, 1), 10985 WebInputEvent::MouseMove, WebFloatPoint(175, 1), WebFloatPoint(175, 1),
10969 WebPointerProperties::Button::NoButton, PlatformEvent::MouseMoved, 0, 10986 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers,
10970 PlatformEvent::NoModifiers, TimeTicks::Now()); 10987 TimeTicks::Now().InSeconds());
10988 mouseMoveOverDivAndScrollbar.setFrameScale(1);
10971 document->frame()->eventHandler().handleMouseMoveEvent( 10989 document->frame()->eventHandler().handleMouseMoveEvent(
10972 mouseMoveOverDivAndScrollbar, Vector<PlatformMouseEvent>()); 10990 mouseMoveOverDivAndScrollbar, Vector<WebMouseEvent>());
10973 10991
10974 // Custom not change the DIV :hover 10992 // Custom not change the DIV :hover
10975 EXPECT_EQ(document->hoverNode(), scrollbarDiv); 10993 EXPECT_EQ(document->hoverNode(), scrollbarDiv);
10976 EXPECT_EQ(hitTestResult.scrollbar()->hoveredPart(), ScrollbarPart::ThumbPart); 10994 EXPECT_EQ(hitTestResult.scrollbar()->hoveredPart(), ScrollbarPart::ThumbPart);
10977 } 10995 }
10978 10996
10979 TEST_F(WebFrameTest, MouseReleaseUpdatesScrollbarHoveredPart) { 10997 TEST_F(WebFrameTest, MouseReleaseUpdatesScrollbarHoveredPart) {
10980 registerMockedHttpURLLoad("custom-scrollbar-hover.html"); 10998 registerMockedHttpURLLoad("custom-scrollbar-hover.html");
10981 FrameTestHelpers::WebViewHelper webViewHelper; 10999 FrameTestHelpers::WebViewHelper webViewHelper;
10982 WebViewImpl* webView = webViewHelper.initializeAndLoad( 11000 WebViewImpl* webView = webViewHelper.initializeAndLoad(
(...skipping 10 matching lines...) Expand all
10993 11011
10994 ScrollableArea* scrollableArea = 11012 ScrollableArea* scrollableArea =
10995 toLayoutBox(scrollbarDiv->layoutObject())->getScrollableArea(); 11013 toLayoutBox(scrollbarDiv->layoutObject())->getScrollableArea();
10996 11014
10997 EXPECT_TRUE(scrollableArea->verticalScrollbar()); 11015 EXPECT_TRUE(scrollableArea->verticalScrollbar());
10998 Scrollbar* scrollbar = scrollableArea->verticalScrollbar(); 11016 Scrollbar* scrollbar = scrollableArea->verticalScrollbar();
10999 EXPECT_EQ(scrollbar->pressedPart(), ScrollbarPart::NoPart); 11017 EXPECT_EQ(scrollbar->pressedPart(), ScrollbarPart::NoPart);
11000 EXPECT_EQ(scrollbar->hoveredPart(), ScrollbarPart::NoPart); 11018 EXPECT_EQ(scrollbar->hoveredPart(), ScrollbarPart::NoPart);
11001 11019
11002 // Mouse moved over the scrollbar. 11020 // Mouse moved over the scrollbar.
11003 PlatformMouseEvent mouseMoveOverScrollbar( 11021 WebMouseEvent mouseMoveOverScrollbar(
11004 IntPoint(175, 1), IntPoint(175, 1), 11022 WebInputEvent::MouseMove, WebFloatPoint(175, 1), WebFloatPoint(175, 1),
11005 WebPointerProperties::Button::NoButton, PlatformEvent::MouseMoved, 0, 11023 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers,
11006 PlatformEvent::NoModifiers, TimeTicks::Now()); 11024 TimeTicks::Now().InSeconds());
11025 mouseMoveOverScrollbar.setFrameScale(1);
11007 document->frame()->eventHandler().handleMouseMoveEvent( 11026 document->frame()->eventHandler().handleMouseMoveEvent(
11008 mouseMoveOverScrollbar, Vector<PlatformMouseEvent>()); 11027 mouseMoveOverScrollbar, Vector<WebMouseEvent>());
11009 HitTestResult hitTestResult = webView->coreHitTestResultAt(WebPoint(175, 1)); 11028 HitTestResult hitTestResult = webView->coreHitTestResultAt(WebPoint(175, 1));
11010 EXPECT_EQ(scrollbar->pressedPart(), ScrollbarPart::NoPart); 11029 EXPECT_EQ(scrollbar->pressedPart(), ScrollbarPart::NoPart);
11011 EXPECT_EQ(scrollbar->hoveredPart(), ScrollbarPart::ThumbPart); 11030 EXPECT_EQ(scrollbar->hoveredPart(), ScrollbarPart::ThumbPart);
11012 11031
11013 // Mouse pressed. 11032 // Mouse pressed.
11014 PlatformMouseEvent mousePressEvent( 11033 WebMouseEvent mousePressEvent(
11015 IntPoint(175, 1), IntPoint(175, 1), WebPointerProperties::Button::Left, 11034 WebInputEvent::MouseDown, WebFloatPoint(175, 1), WebFloatPoint(175, 1),
11016 PlatformEvent::MousePressed, 0, PlatformEvent::Modifiers::LeftButtonDown, 11035 WebPointerProperties::Button::Left, 0,
11017 TimeTicks::Now()); 11036 WebInputEvent::Modifiers::LeftButtonDown, TimeTicks::Now().InSeconds());
11037 mousePressEvent.setFrameScale(1);
11018 document->frame()->eventHandler().handleMousePressEvent(mousePressEvent); 11038 document->frame()->eventHandler().handleMousePressEvent(mousePressEvent);
11019 EXPECT_EQ(scrollbar->pressedPart(), ScrollbarPart::ThumbPart); 11039 EXPECT_EQ(scrollbar->pressedPart(), ScrollbarPart::ThumbPart);
11020 EXPECT_EQ(scrollbar->hoveredPart(), ScrollbarPart::ThumbPart); 11040 EXPECT_EQ(scrollbar->hoveredPart(), ScrollbarPart::ThumbPart);
11021 11041
11022 // Mouse moved off the scrollbar while still pressed. 11042 // Mouse moved off the scrollbar while still pressed.
11023 PlatformMouseEvent mouseMoveOffScrollbar( 11043 WebMouseEvent mouseMoveOffScrollbar(
11024 IntPoint(1, 1), IntPoint(1, 1), WebPointerProperties::Button::Left, 11044 WebInputEvent::MouseMove, WebFloatPoint(1, 1), WebFloatPoint(1, 1),
11025 PlatformEvent::MouseMoved, 0, PlatformEvent::Modifiers::LeftButtonDown, 11045 WebPointerProperties::Button::Left, 0,
11026 TimeTicks::Now()); 11046 WebInputEvent::Modifiers::LeftButtonDown, TimeTicks::Now().InSeconds());
11047 mouseMoveOffScrollbar.setFrameScale(1);
11027 document->frame()->eventHandler().handleMouseLeaveEvent( 11048 document->frame()->eventHandler().handleMouseLeaveEvent(
11028 mouseMoveOffScrollbar); 11049 mouseMoveOffScrollbar);
11029 EXPECT_EQ(scrollbar->pressedPart(), ScrollbarPart::ThumbPart); 11050 EXPECT_EQ(scrollbar->pressedPart(), ScrollbarPart::ThumbPart);
11030 EXPECT_EQ(scrollbar->hoveredPart(), ScrollbarPart::ThumbPart); 11051 EXPECT_EQ(scrollbar->hoveredPart(), ScrollbarPart::ThumbPart);
11031 11052
11032 // Mouse released. 11053 // Mouse released.
11033 PlatformMouseEvent MouseReleaseEvent( 11054 WebMouseEvent mouseReleaseEvent(
11034 IntPoint(1, 1), IntPoint(1, 1), WebPointerProperties::Button::Left, 11055 WebInputEvent::MouseUp, WebFloatPoint(1, 1), WebFloatPoint(1, 1),
11035 PlatformEvent::MouseReleased, 0, PlatformEvent::Modifiers::LeftButtonDown, 11056 WebPointerProperties::Button::Left, 0,
11036 TimeTicks::Now()); 11057 WebInputEvent::Modifiers::LeftButtonDown, TimeTicks::Now().InSeconds());
11037 document->frame()->eventHandler().handleMouseReleaseEvent(MouseReleaseEvent); 11058 mouseReleaseEvent.setFrameScale(1);
11059 document->frame()->eventHandler().handleMouseReleaseEvent(mouseReleaseEvent);
11038 EXPECT_EQ(scrollbar->pressedPart(), ScrollbarPart::NoPart); 11060 EXPECT_EQ(scrollbar->pressedPart(), ScrollbarPart::NoPart);
11039 EXPECT_EQ(scrollbar->hoveredPart(), ScrollbarPart::NoPart); 11061 EXPECT_EQ(scrollbar->hoveredPart(), ScrollbarPart::NoPart);
11040 } 11062 }
11041 11063
11042 static void disableCompositing(WebSettings* settings) { 11064 static void disableCompositing(WebSettings* settings) {
11043 settings->setAcceleratedCompositingEnabled(false); 11065 settings->setAcceleratedCompositingEnabled(false);
11044 settings->setPreferCompositingToLCDTextEnabled(false); 11066 settings->setPreferCompositingToLCDTextEnabled(false);
11045 } 11067 }
11046 11068
11047 // Make sure overlay scrollbars on non-composited scrollers fade out and set 11069 // Make sure overlay scrollbars on non-composited scrollers fade out and set
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
11234 11256
11235 EXPECT_TRUE(mainFrameClient.childClient().didCallFrameDetached()); 11257 EXPECT_TRUE(mainFrameClient.childClient().didCallFrameDetached());
11236 EXPECT_TRUE(mainFrameClient.childClient().didCallDidStopLoading()); 11258 EXPECT_TRUE(mainFrameClient.childClient().didCallDidStopLoading());
11237 EXPECT_TRUE(mainFrameClient.childClient().didCallDidFinishDocumentLoad()); 11259 EXPECT_TRUE(mainFrameClient.childClient().didCallDidFinishDocumentLoad());
11238 EXPECT_TRUE(mainFrameClient.childClient().didCallDidHandleOnloadEvents()); 11260 EXPECT_TRUE(mainFrameClient.childClient().didCallDidHandleOnloadEvents());
11239 11261
11240 webViewHelper.reset(); 11262 webViewHelper.reset();
11241 } 11263 }
11242 11264
11243 } // namespace blink 11265 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/web/WebViewImpl.cpp ('k') | third_party/WebKit/Source/web/tests/WebInputEventConversionTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698