| OLD | NEW |
| 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 10788 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10799 WebMouseEvent mouseMoveOverLinkEvent( | 10799 WebMouseEvent mouseMoveOverLinkEvent( |
| 10800 WebInputEvent::MouseMove, | 10800 WebInputEvent::MouseMove, |
| 10801 WebFloatPoint(div1Tag->offsetLeft() + 5, div1Tag->offsetTop() + 5), | 10801 WebFloatPoint(div1Tag->offsetLeft() + 5, div1Tag->offsetTop() + 5), |
| 10802 WebFloatPoint(div1Tag->offsetLeft() + 5, div1Tag->offsetTop() + 5), | 10802 WebFloatPoint(div1Tag->offsetLeft() + 5, div1Tag->offsetTop() + 5), |
| 10803 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers, | 10803 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers, |
| 10804 TimeTicks::Now().InSeconds()); | 10804 TimeTicks::Now().InSeconds()); |
| 10805 mouseMoveOverLinkEvent.setFrameScale(1); | 10805 mouseMoveOverLinkEvent.setFrameScale(1); |
| 10806 document->frame()->eventHandler().handleMouseMoveEvent( | 10806 document->frame()->eventHandler().handleMouseMoveEvent( |
| 10807 mouseMoveOverLinkEvent, Vector<WebMouseEvent>()); | 10807 mouseMoveOverLinkEvent, Vector<WebMouseEvent>()); |
| 10808 | 10808 |
| 10809 EXPECT_EQ(document->hoverNode(), | 10809 EXPECT_EQ(document->hoverElement(), |
| 10810 document->frame()->chromeClient().lastSetTooltipNodeForTesting()); | 10810 document->frame()->chromeClient().lastSetTooltipNodeForTesting()); |
| 10811 EXPECT_EQ(div1Tag, | 10811 EXPECT_EQ(div1Tag, |
| 10812 document->frame()->chromeClient().lastSetTooltipNodeForTesting()); | 10812 document->frame()->chromeClient().lastSetTooltipNodeForTesting()); |
| 10813 | 10813 |
| 10814 Element* div2Tag = document->getElementById("div2"); | 10814 Element* div2Tag = document->getElementById("div2"); |
| 10815 | 10815 |
| 10816 WebMouseEvent mouseMoveEvent( | 10816 WebMouseEvent mouseMoveEvent( |
| 10817 WebInputEvent::MouseMove, | 10817 WebInputEvent::MouseMove, |
| 10818 WebFloatPoint(div2Tag->offsetLeft() + 5, div2Tag->offsetTop() + 5), | 10818 WebFloatPoint(div2Tag->offsetLeft() + 5, div2Tag->offsetTop() + 5), |
| 10819 WebFloatPoint(div2Tag->offsetLeft() + 5, div2Tag->offsetTop() + 5), | 10819 WebFloatPoint(div2Tag->offsetLeft() + 5, div2Tag->offsetTop() + 5), |
| 10820 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers, | 10820 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers, |
| 10821 TimeTicks::Now().InSeconds()); | 10821 TimeTicks::Now().InSeconds()); |
| 10822 mouseMoveEvent.setFrameScale(1); | 10822 mouseMoveEvent.setFrameScale(1); |
| 10823 document->frame()->eventHandler().handleMouseMoveEvent( | 10823 document->frame()->eventHandler().handleMouseMoveEvent( |
| 10824 mouseMoveEvent, Vector<WebMouseEvent>()); | 10824 mouseMoveEvent, Vector<WebMouseEvent>()); |
| 10825 | 10825 |
| 10826 EXPECT_EQ(document->hoverNode(), | 10826 EXPECT_EQ(document->hoverElement(), |
| 10827 document->frame()->chromeClient().lastSetTooltipNodeForTesting()); | 10827 document->frame()->chromeClient().lastSetTooltipNodeForTesting()); |
| 10828 EXPECT_EQ(div2Tag, | 10828 EXPECT_EQ(div2Tag, |
| 10829 document->frame()->chromeClient().lastSetTooltipNodeForTesting()); | 10829 document->frame()->chromeClient().lastSetTooltipNodeForTesting()); |
| 10830 } | 10830 } |
| 10831 | 10831 |
| 10832 // Makes sure that mouse hover over an overlay scrollbar doesn't activate | 10832 // Makes sure that mouse hover over an overlay scrollbar doesn't activate |
| 10833 // elements below(except the Element that owns the scrollbar) unless the | 10833 // elements below(except the Element that owns the scrollbar) unless the |
| 10834 // scrollbar is faded out. | 10834 // scrollbar is faded out. |
| 10835 TEST_F(WebFrameTest, MouseOverLinkAndOverlayScrollbar) { | 10835 TEST_F(WebFrameTest, MouseOverLinkAndOverlayScrollbar) { |
| 10836 FrameTestHelpers::WebViewHelper webViewHelper; | 10836 FrameTestHelpers::WebViewHelper webViewHelper; |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10894 | 10894 |
| 10895 WebMouseEvent mousePressEvent( | 10895 WebMouseEvent mousePressEvent( |
| 10896 WebInputEvent::MouseDown, WebFloatPoint(18, aTag->offsetTop()), | 10896 WebInputEvent::MouseDown, WebFloatPoint(18, aTag->offsetTop()), |
| 10897 WebFloatPoint(18, aTag->offsetTop()), WebPointerProperties::Button::Left, | 10897 WebFloatPoint(18, aTag->offsetTop()), WebPointerProperties::Button::Left, |
| 10898 0, WebInputEvent::Modifiers::LeftButtonDown, | 10898 0, WebInputEvent::Modifiers::LeftButtonDown, |
| 10899 TimeTicks::Now().InSeconds()); | 10899 TimeTicks::Now().InSeconds()); |
| 10900 mousePressEvent.setFrameScale(1); | 10900 mousePressEvent.setFrameScale(1); |
| 10901 document->frame()->eventHandler().handleMousePressEvent(mousePressEvent); | 10901 document->frame()->eventHandler().handleMousePressEvent(mousePressEvent); |
| 10902 | 10902 |
| 10903 EXPECT_FALSE(document->activeHoverElement()); | 10903 EXPECT_FALSE(document->activeHoverElement()); |
| 10904 EXPECT_FALSE(document->hoverNode()); | 10904 EXPECT_FALSE(document->hoverElement()); |
| 10905 | 10905 |
| 10906 WebMouseEvent mouseReleaseEvent( | 10906 WebMouseEvent mouseReleaseEvent( |
| 10907 WebInputEvent::MouseUp, WebFloatPoint(18, aTag->offsetTop()), | 10907 WebInputEvent::MouseUp, WebFloatPoint(18, aTag->offsetTop()), |
| 10908 WebFloatPoint(18, aTag->offsetTop()), WebPointerProperties::Button::Left, | 10908 WebFloatPoint(18, aTag->offsetTop()), WebPointerProperties::Button::Left, |
| 10909 0, WebInputEvent::Modifiers::LeftButtonDown, | 10909 0, WebInputEvent::Modifiers::LeftButtonDown, |
| 10910 TimeTicks::Now().InSeconds()); | 10910 TimeTicks::Now().InSeconds()); |
| 10911 mouseReleaseEvent.setFrameScale(1); | 10911 mouseReleaseEvent.setFrameScale(1); |
| 10912 document->frame()->eventHandler().handleMouseReleaseEvent(mouseReleaseEvent); | 10912 document->frame()->eventHandler().handleMouseReleaseEvent(mouseReleaseEvent); |
| 10913 | 10913 |
| 10914 // Mouse over disabled overlay scrollbar. Mouse cursor should be hand and has | 10914 // Mouse over disabled overlay scrollbar. Mouse cursor should be hand and has |
| (...skipping 10 matching lines...) Expand all Loading... |
| 10925 document->frame()->eventHandler().handleMouseMoveEvent( | 10925 document->frame()->eventHandler().handleMouseMoveEvent( |
| 10926 mouseMoveEvent, Vector<WebMouseEvent>()); | 10926 mouseMoveEvent, Vector<WebMouseEvent>()); |
| 10927 | 10927 |
| 10928 EXPECT_EQ( | 10928 EXPECT_EQ( |
| 10929 Cursor::Type::Hand, | 10929 Cursor::Type::Hand, |
| 10930 document->frame()->chromeClient().lastSetCursorForTesting().getType()); | 10930 document->frame()->chromeClient().lastSetCursorForTesting().getType()); |
| 10931 | 10931 |
| 10932 document->frame()->eventHandler().handleMousePressEvent(mousePressEvent); | 10932 document->frame()->eventHandler().handleMousePressEvent(mousePressEvent); |
| 10933 | 10933 |
| 10934 EXPECT_TRUE(document->activeHoverElement()); | 10934 EXPECT_TRUE(document->activeHoverElement()); |
| 10935 EXPECT_TRUE(document->hoverNode()); | 10935 EXPECT_TRUE(document->hoverElement()); |
| 10936 | 10936 |
| 10937 document->frame()->eventHandler().handleMouseReleaseEvent(mouseReleaseEvent); | 10937 document->frame()->eventHandler().handleMouseReleaseEvent(mouseReleaseEvent); |
| 10938 } | 10938 } |
| 10939 | 10939 |
| 10940 // Makes sure that mouse hover over an custom scrollbar doesn't change the | 10940 // Makes sure that mouse hover over an custom scrollbar doesn't change the |
| 10941 // activate elements. | 10941 // activate elements. |
| 10942 TEST_F(WebFrameTest, MouseOverCustomScrollbar) { | 10942 TEST_F(WebFrameTest, MouseOverCustomScrollbar) { |
| 10943 registerMockedHttpURLLoad("custom-scrollbar-hover.html"); | 10943 registerMockedHttpURLLoad("custom-scrollbar-hover.html"); |
| 10944 FrameTestHelpers::WebViewHelper webViewHelper; | 10944 FrameTestHelpers::WebViewHelper webViewHelper; |
| 10945 WebViewImpl* webView = webViewHelper.initializeAndLoad( | 10945 WebViewImpl* webView = webViewHelper.initializeAndLoad( |
| (...skipping 17 matching lines...) Expand all Loading... |
| 10963 // Mouse over DIV | 10963 // Mouse over DIV |
| 10964 WebMouseEvent mouseMoveOverDiv( | 10964 WebMouseEvent mouseMoveOverDiv( |
| 10965 WebInputEvent::MouseMove, WebFloatPoint(1, 1), WebFloatPoint(1, 1), | 10965 WebInputEvent::MouseMove, WebFloatPoint(1, 1), WebFloatPoint(1, 1), |
| 10966 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers, | 10966 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers, |
| 10967 TimeTicks::Now().InSeconds()); | 10967 TimeTicks::Now().InSeconds()); |
| 10968 mouseMoveOverDiv.setFrameScale(1); | 10968 mouseMoveOverDiv.setFrameScale(1); |
| 10969 document->frame()->eventHandler().handleMouseMoveEvent( | 10969 document->frame()->eventHandler().handleMouseMoveEvent( |
| 10970 mouseMoveOverDiv, Vector<WebMouseEvent>()); | 10970 mouseMoveOverDiv, Vector<WebMouseEvent>()); |
| 10971 | 10971 |
| 10972 // DIV :hover | 10972 // DIV :hover |
| 10973 EXPECT_EQ(document->hoverNode(), scrollbarDiv); | 10973 EXPECT_EQ(document->hoverElement(), scrollbarDiv); |
| 10974 | 10974 |
| 10975 // Ensure hittest has DIV and scrollbar | 10975 // Ensure hittest has DIV and scrollbar |
| 10976 hitTestResult = webView->coreHitTestResultAt(WebPoint(175, 1)); | 10976 hitTestResult = webView->coreHitTestResultAt(WebPoint(175, 1)); |
| 10977 | 10977 |
| 10978 EXPECT_TRUE(hitTestResult.innerElement()); | 10978 EXPECT_TRUE(hitTestResult.innerElement()); |
| 10979 EXPECT_TRUE(hitTestResult.scrollbar()); | 10979 EXPECT_TRUE(hitTestResult.scrollbar()); |
| 10980 EXPECT_TRUE(hitTestResult.scrollbar()->isCustomScrollbar()); | 10980 EXPECT_TRUE(hitTestResult.scrollbar()->isCustomScrollbar()); |
| 10981 | 10981 |
| 10982 // Mouse over scrollbar | 10982 // Mouse over scrollbar |
| 10983 WebMouseEvent mouseMoveOverDivAndScrollbar( | 10983 WebMouseEvent mouseMoveOverDivAndScrollbar( |
| 10984 WebInputEvent::MouseMove, WebFloatPoint(175, 1), WebFloatPoint(175, 1), | 10984 WebInputEvent::MouseMove, WebFloatPoint(175, 1), WebFloatPoint(175, 1), |
| 10985 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers, | 10985 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers, |
| 10986 TimeTicks::Now().InSeconds()); | 10986 TimeTicks::Now().InSeconds()); |
| 10987 mouseMoveOverDivAndScrollbar.setFrameScale(1); | 10987 mouseMoveOverDivAndScrollbar.setFrameScale(1); |
| 10988 document->frame()->eventHandler().handleMouseMoveEvent( | 10988 document->frame()->eventHandler().handleMouseMoveEvent( |
| 10989 mouseMoveOverDivAndScrollbar, Vector<WebMouseEvent>()); | 10989 mouseMoveOverDivAndScrollbar, Vector<WebMouseEvent>()); |
| 10990 | 10990 |
| 10991 // Custom not change the DIV :hover | 10991 // Custom not change the DIV :hover |
| 10992 EXPECT_EQ(document->hoverNode(), scrollbarDiv); | 10992 EXPECT_EQ(document->hoverElement(), scrollbarDiv); |
| 10993 EXPECT_EQ(hitTestResult.scrollbar()->hoveredPart(), ScrollbarPart::ThumbPart); | 10993 EXPECT_EQ(hitTestResult.scrollbar()->hoveredPart(), ScrollbarPart::ThumbPart); |
| 10994 } | 10994 } |
| 10995 | 10995 |
| 10996 // Makes sure that mouse hover over an overlay scrollbar doesn't hover iframe | 10996 // Makes sure that mouse hover over an overlay scrollbar doesn't hover iframe |
| 10997 // below. | 10997 // below. |
| 10998 TEST_F(WebFrameTest, MouseOverScrollbarAndIFrame) { | 10998 TEST_F(WebFrameTest, MouseOverScrollbarAndIFrame) { |
| 10999 registerMockedHttpURLLoad("scrollbar-and-iframe-hover.html"); | 10999 registerMockedHttpURLLoad("scrollbar-and-iframe-hover.html"); |
| 11000 FrameTestHelpers::WebViewHelper webViewHelper; | 11000 FrameTestHelpers::WebViewHelper webViewHelper; |
| 11001 WebViewImpl* webView = webViewHelper.initializeAndLoad( | 11001 WebViewImpl* webView = webViewHelper.initializeAndLoad( |
| 11002 m_baseURL + "scrollbar-and-iframe-hover.html"); | 11002 m_baseURL + "scrollbar-and-iframe-hover.html"); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 11018 // Mouse over IFRAME. | 11018 // Mouse over IFRAME. |
| 11019 WebMouseEvent mouseMoveOverIFrame( | 11019 WebMouseEvent mouseMoveOverIFrame( |
| 11020 WebInputEvent::MouseMove, WebFloatPoint(5, 5), WebFloatPoint(5, 5), | 11020 WebInputEvent::MouseMove, WebFloatPoint(5, 5), WebFloatPoint(5, 5), |
| 11021 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers, | 11021 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers, |
| 11022 TimeTicks::Now().InSeconds()); | 11022 TimeTicks::Now().InSeconds()); |
| 11023 mouseMoveOverIFrame.setFrameScale(1); | 11023 mouseMoveOverIFrame.setFrameScale(1); |
| 11024 document->frame()->eventHandler().handleMouseMoveEvent( | 11024 document->frame()->eventHandler().handleMouseMoveEvent( |
| 11025 mouseMoveOverIFrame, Vector<WebMouseEvent>()); | 11025 mouseMoveOverIFrame, Vector<WebMouseEvent>()); |
| 11026 | 11026 |
| 11027 // IFRAME hover. | 11027 // IFRAME hover. |
| 11028 EXPECT_EQ(document->hoverNode(), iframe); | 11028 EXPECT_EQ(document->hoverElement(), iframe); |
| 11029 | 11029 |
| 11030 // Ensure hittest has scrollbar. | 11030 // Ensure hittest has scrollbar. |
| 11031 hitTestResult = webView->coreHitTestResultAt(WebPoint(195, 5)); | 11031 hitTestResult = webView->coreHitTestResultAt(WebPoint(195, 5)); |
| 11032 EXPECT_FALSE(hitTestResult.innerElement()); | 11032 EXPECT_FALSE(hitTestResult.innerElement()); |
| 11033 EXPECT_TRUE(hitTestResult.scrollbar()); | 11033 EXPECT_TRUE(hitTestResult.scrollbar()); |
| 11034 EXPECT_TRUE(hitTestResult.scrollbar()->enabled()); | 11034 EXPECT_TRUE(hitTestResult.scrollbar()->enabled()); |
| 11035 | 11035 |
| 11036 // Mouse over scrollbar. | 11036 // Mouse over scrollbar. |
| 11037 WebMouseEvent mouseMoveOverIFrameAndScrollbar( | 11037 WebMouseEvent mouseMoveOverIFrameAndScrollbar( |
| 11038 WebInputEvent::MouseMove, WebFloatPoint(195, 5), WebFloatPoint(195, 5), | 11038 WebInputEvent::MouseMove, WebFloatPoint(195, 5), WebFloatPoint(195, 5), |
| 11039 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers, | 11039 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers, |
| 11040 TimeTicks::Now().InSeconds()); | 11040 TimeTicks::Now().InSeconds()); |
| 11041 mouseMoveOverIFrameAndScrollbar.setFrameScale(1); | 11041 mouseMoveOverIFrameAndScrollbar.setFrameScale(1); |
| 11042 document->frame()->eventHandler().handleMouseMoveEvent( | 11042 document->frame()->eventHandler().handleMouseMoveEvent( |
| 11043 mouseMoveOverIFrameAndScrollbar, Vector<WebMouseEvent>()); | 11043 mouseMoveOverIFrameAndScrollbar, Vector<WebMouseEvent>()); |
| 11044 | 11044 |
| 11045 // IFRAME not hover. | 11045 // IFRAME not hover. |
| 11046 EXPECT_NE(document->hoverNode(), iframe); | 11046 EXPECT_NE(document->hoverElement(), iframe); |
| 11047 | 11047 |
| 11048 // Disable the Scrollbar. | 11048 // Disable the Scrollbar. |
| 11049 webView->mainFrameImpl()->frameView()->setScrollbarsHidden(true); | 11049 webView->mainFrameImpl()->frameView()->setScrollbarsHidden(true); |
| 11050 | 11050 |
| 11051 // Ensure hittest has IFRAME and no scrollbar. | 11051 // Ensure hittest has IFRAME and no scrollbar. |
| 11052 hitTestResult = webView->coreHitTestResultAt(WebPoint(196, 5)); | 11052 hitTestResult = webView->coreHitTestResultAt(WebPoint(196, 5)); |
| 11053 | 11053 |
| 11054 EXPECT_TRUE(hitTestResult.innerElement()); | 11054 EXPECT_TRUE(hitTestResult.innerElement()); |
| 11055 EXPECT_FALSE(hitTestResult.scrollbar()); | 11055 EXPECT_FALSE(hitTestResult.scrollbar()); |
| 11056 | 11056 |
| 11057 // Mouse over disabled scrollbar. | 11057 // Mouse over disabled scrollbar. |
| 11058 WebMouseEvent mouseMoveOverIFrameAndDisabledScrollbar( | 11058 WebMouseEvent mouseMoveOverIFrameAndDisabledScrollbar( |
| 11059 WebInputEvent::MouseMove, WebFloatPoint(196, 5), WebFloatPoint(196, 5), | 11059 WebInputEvent::MouseMove, WebFloatPoint(196, 5), WebFloatPoint(196, 5), |
| 11060 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers, | 11060 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers, |
| 11061 TimeTicks::Now().InSeconds()); | 11061 TimeTicks::Now().InSeconds()); |
| 11062 mouseMoveOverIFrameAndDisabledScrollbar.setFrameScale(1); | 11062 mouseMoveOverIFrameAndDisabledScrollbar.setFrameScale(1); |
| 11063 document->frame()->eventHandler().handleMouseMoveEvent( | 11063 document->frame()->eventHandler().handleMouseMoveEvent( |
| 11064 mouseMoveOverIFrameAndDisabledScrollbar, Vector<WebMouseEvent>()); | 11064 mouseMoveOverIFrameAndDisabledScrollbar, Vector<WebMouseEvent>()); |
| 11065 | 11065 |
| 11066 // IFRAME hover. | 11066 // IFRAME hover. |
| 11067 EXPECT_EQ(document->hoverNode(), iframe); | 11067 EXPECT_EQ(document->hoverElement(), iframe); |
| 11068 } | 11068 } |
| 11069 | 11069 |
| 11070 // Makes sure that mouse hover over a scrollbar also hover the element owns the | 11070 // Makes sure that mouse hover over a scrollbar also hover the element owns the |
| 11071 // scrollbar. | 11071 // scrollbar. |
| 11072 TEST_F(WebFrameTest, MouseOverScrollbarAndParentElement) { | 11072 TEST_F(WebFrameTest, MouseOverScrollbarAndParentElement) { |
| 11073 registerMockedHttpURLLoad("scrollbar-and-element-hover.html"); | 11073 registerMockedHttpURLLoad("scrollbar-and-element-hover.html"); |
| 11074 FrameTestHelpers::WebViewHelper webViewHelper; | 11074 FrameTestHelpers::WebViewHelper webViewHelper; |
| 11075 RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(false); | 11075 RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(false); |
| 11076 WebViewImpl* webView = webViewHelper.initializeAndLoad( | 11076 WebViewImpl* webView = webViewHelper.initializeAndLoad( |
| 11077 m_baseURL + "scrollbar-and-element-hover.html"); | 11077 m_baseURL + "scrollbar-and-element-hover.html"); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 11103 // Mouse over DIV. | 11103 // Mouse over DIV. |
| 11104 WebMouseEvent mouseMoveOverDiv( | 11104 WebMouseEvent mouseMoveOverDiv( |
| 11105 WebInputEvent::MouseMove, WebFloatPoint(1, 1), WebFloatPoint(1, 1), | 11105 WebInputEvent::MouseMove, WebFloatPoint(1, 1), WebFloatPoint(1, 1), |
| 11106 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers, | 11106 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers, |
| 11107 TimeTicks::Now().InSeconds()); | 11107 TimeTicks::Now().InSeconds()); |
| 11108 mouseMoveOverDiv.setFrameScale(1); | 11108 mouseMoveOverDiv.setFrameScale(1); |
| 11109 document->frame()->eventHandler().handleMouseMoveEvent( | 11109 document->frame()->eventHandler().handleMouseMoveEvent( |
| 11110 mouseMoveOverDiv, Vector<WebMouseEvent>()); | 11110 mouseMoveOverDiv, Vector<WebMouseEvent>()); |
| 11111 | 11111 |
| 11112 // DIV :hover. | 11112 // DIV :hover. |
| 11113 EXPECT_EQ(document->hoverNode(), parentDiv); | 11113 EXPECT_EQ(document->hoverElement(), parentDiv); |
| 11114 | 11114 |
| 11115 // Ensure hittest has DIV and scrollbar. | 11115 // Ensure hittest has DIV and scrollbar. |
| 11116 hitTestResult = webView->coreHitTestResultAt(WebPoint(175, 5)); | 11116 hitTestResult = webView->coreHitTestResultAt(WebPoint(175, 5)); |
| 11117 | 11117 |
| 11118 EXPECT_TRUE(hitTestResult.innerElement()); | 11118 EXPECT_TRUE(hitTestResult.innerElement()); |
| 11119 EXPECT_TRUE(hitTestResult.scrollbar()); | 11119 EXPECT_TRUE(hitTestResult.scrollbar()); |
| 11120 EXPECT_FALSE(hitTestResult.scrollbar()->isCustomScrollbar()); | 11120 EXPECT_FALSE(hitTestResult.scrollbar()->isCustomScrollbar()); |
| 11121 EXPECT_TRUE(hitTestResult.scrollbar()->enabled()); | 11121 EXPECT_TRUE(hitTestResult.scrollbar()->enabled()); |
| 11122 | 11122 |
| 11123 // Mouse over scrollbar. | 11123 // Mouse over scrollbar. |
| 11124 WebMouseEvent mouseMoveOverDivAndScrollbar( | 11124 WebMouseEvent mouseMoveOverDivAndScrollbar( |
| 11125 WebInputEvent::MouseMove, WebFloatPoint(175, 5), WebFloatPoint(175, 5), | 11125 WebInputEvent::MouseMove, WebFloatPoint(175, 5), WebFloatPoint(175, 5), |
| 11126 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers, | 11126 WebPointerProperties::Button::NoButton, 0, WebInputEvent::NoModifiers, |
| 11127 TimeTicks::Now().InSeconds()); | 11127 TimeTicks::Now().InSeconds()); |
| 11128 mouseMoveOverDivAndScrollbar.setFrameScale(1); | 11128 mouseMoveOverDivAndScrollbar.setFrameScale(1); |
| 11129 document->frame()->eventHandler().handleMouseMoveEvent( | 11129 document->frame()->eventHandler().handleMouseMoveEvent( |
| 11130 mouseMoveOverDivAndScrollbar, Vector<WebMouseEvent>()); | 11130 mouseMoveOverDivAndScrollbar, Vector<WebMouseEvent>()); |
| 11131 | 11131 |
| 11132 // Not change the DIV :hover. | 11132 // Not change the DIV :hover. |
| 11133 EXPECT_EQ(document->hoverNode(), parentDiv); | 11133 EXPECT_EQ(document->hoverElement(), parentDiv); |
| 11134 | 11134 |
| 11135 // Disable the Scrollbar by remove the childDiv. | 11135 // Disable the Scrollbar by remove the childDiv. |
| 11136 childDiv->remove(); | 11136 childDiv->remove(); |
| 11137 webView->updateAllLifecyclePhases(); | 11137 webView->updateAllLifecyclePhases(); |
| 11138 | 11138 |
| 11139 // Ensure hittest has DIV and no scrollbar. | 11139 // Ensure hittest has DIV and no scrollbar. |
| 11140 hitTestResult = webView->coreHitTestResultAt(WebPoint(175, 5)); | 11140 hitTestResult = webView->coreHitTestResultAt(WebPoint(175, 5)); |
| 11141 | 11141 |
| 11142 EXPECT_TRUE(hitTestResult.innerElement()); | 11142 EXPECT_TRUE(hitTestResult.innerElement()); |
| 11143 EXPECT_TRUE(hitTestResult.scrollbar()); | 11143 EXPECT_TRUE(hitTestResult.scrollbar()); |
| 11144 EXPECT_FALSE(hitTestResult.scrollbar()->enabled()); | 11144 EXPECT_FALSE(hitTestResult.scrollbar()->enabled()); |
| 11145 EXPECT_LT(hitTestResult.innerElement()->clientWidth(), 180); | 11145 EXPECT_LT(hitTestResult.innerElement()->clientWidth(), 180); |
| 11146 | 11146 |
| 11147 // Mouse over disabled scrollbar. | 11147 // Mouse over disabled scrollbar. |
| 11148 document->frame()->eventHandler().handleMouseMoveEvent( | 11148 document->frame()->eventHandler().handleMouseMoveEvent( |
| 11149 mouseMoveOverDivAndScrollbar, Vector<WebMouseEvent>()); | 11149 mouseMoveOverDivAndScrollbar, Vector<WebMouseEvent>()); |
| 11150 | 11150 |
| 11151 // Not change the DIV :hover. | 11151 // Not change the DIV :hover. |
| 11152 EXPECT_EQ(document->hoverNode(), parentDiv); | 11152 EXPECT_EQ(document->hoverElement(), parentDiv); |
| 11153 } | 11153 } |
| 11154 | 11154 |
| 11155 TEST_F(WebFrameTest, MouseReleaseUpdatesScrollbarHoveredPart) { | 11155 TEST_F(WebFrameTest, MouseReleaseUpdatesScrollbarHoveredPart) { |
| 11156 registerMockedHttpURLLoad("custom-scrollbar-hover.html"); | 11156 registerMockedHttpURLLoad("custom-scrollbar-hover.html"); |
| 11157 FrameTestHelpers::WebViewHelper webViewHelper; | 11157 FrameTestHelpers::WebViewHelper webViewHelper; |
| 11158 WebViewImpl* webView = webViewHelper.initializeAndLoad( | 11158 WebViewImpl* webView = webViewHelper.initializeAndLoad( |
| 11159 m_baseURL + "custom-scrollbar-hover.html"); | 11159 m_baseURL + "custom-scrollbar-hover.html"); |
| 11160 | 11160 |
| 11161 webViewHelper.resize(WebSize(200, 200)); | 11161 webViewHelper.resize(WebSize(200, 200)); |
| 11162 | 11162 |
| (...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11598 FrameTestHelpers::loadFrame(localFrame, "data:text/html,some page"); | 11598 FrameTestHelpers::loadFrame(localFrame, "data:text/html,some page"); |
| 11599 | 11599 |
| 11600 // Local frame with remote parent should have transparent baseBackgroundColor. | 11600 // Local frame with remote parent should have transparent baseBackgroundColor. |
| 11601 Color color = localFrame->frameView()->baseBackgroundColor(); | 11601 Color color = localFrame->frameView()->baseBackgroundColor(); |
| 11602 EXPECT_EQ(Color::transparent, color); | 11602 EXPECT_EQ(Color::transparent, color); |
| 11603 | 11603 |
| 11604 view->close(); | 11604 view->close(); |
| 11605 } | 11605 } |
| 11606 | 11606 |
| 11607 } // namespace blink | 11607 } // namespace blink |
| OLD | NEW |