Title: [173766] trunk/Source
Revision
173766
Author
[email protected]
Date
2014-09-19 11:43:14 -0700 (Fri, 19 Sep 2014)

Log Message

Provide a default argument for the most commonly used HitTestRequest variant
https://bugs.webkit.org/show_bug.cgi?id=136653

Reviewed by Darin Adler.

Make the default HitTestRequest flags be ReadOnly | Active | DisallowShadowContent
and change call sites using the default flags to use a HitTestRequest temporary.

Source/WebCore:

* dom/TreeScope.cpp:
(WebCore::nodeFromPoint):
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::contains):
* page/DragController.cpp:
(WebCore::elementUnderMouse):
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseDraggedEvent):
(WebCore::EventHandler::handleMousePressEvent):
* rendering/HitTestRequest.h:
(WebCore::HitTestRequest::HitTestRequest):

Source/WebKit2:

* WebProcess/WebPage/ViewGestureGeometryCollector.cpp:
(WebKit::ViewGestureGeometryCollector::collectGeometryForSmartMagnificationGesture):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::dynamicViewportSizeUpdate):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (173765 => 173766)


--- trunk/Source/WebCore/ChangeLog	2014-09-19 18:33:16 UTC (rev 173765)
+++ trunk/Source/WebCore/ChangeLog	2014-09-19 18:43:14 UTC (rev 173766)
@@ -1,3 +1,25 @@
+2014-09-19  Simon Fraser  <[email protected]>
+
+        Provide a default argument for the most commonly used HitTestRequest variant
+        https://bugs.webkit.org/show_bug.cgi?id=136653
+
+        Reviewed by Darin Adler.
+
+        Make the default HitTestRequest flags be ReadOnly | Active | DisallowShadowContent
+        and change call sites using the default flags to use a HitTestRequest temporary.
+
+        * dom/TreeScope.cpp:
+        (WebCore::nodeFromPoint):
+        * editing/FrameSelection.cpp:
+        (WebCore::FrameSelection::contains):
+        * page/DragController.cpp:
+        (WebCore::elementUnderMouse):
+        * page/EventHandler.cpp:
+        (WebCore::EventHandler::handleMouseDraggedEvent):
+        (WebCore::EventHandler::handleMousePressEvent):
+        * rendering/HitTestRequest.h:
+        (WebCore::HitTestRequest::HitTestRequest):
+
 2014-09-19  Chris Dumez  <[email protected]>
 
         Allow DOM methods to return references instead of pointers

Modified: trunk/Source/WebCore/dom/TreeScope.cpp (173765 => 173766)


--- trunk/Source/WebCore/dom/TreeScope.cpp	2014-09-19 18:33:16 UTC (rev 173765)
+++ trunk/Source/WebCore/dom/TreeScope.cpp	2014-09-19 18:43:14 UTC (rev 173766)
@@ -240,9 +240,8 @@
     if (!visibleRect.contains(point))
         return nullptr;
 
-    HitTestRequest request(HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::DisallowShadowContent);
     HitTestResult result(point);
-    document->renderView()->hitTest(request, result);
+    document->renderView()->hitTest(HitTestRequest(), result);
 
     if (localPoint)
         *localPoint = result.localPoint();

Modified: trunk/Source/WebCore/editing/FrameSelection.cpp (173765 => 173766)


--- trunk/Source/WebCore/editing/FrameSelection.cpp	2014-09-19 18:33:16 UTC (rev 173765)
+++ trunk/Source/WebCore/editing/FrameSelection.cpp	2014-09-19 18:43:14 UTC (rev 173766)
@@ -1597,9 +1597,8 @@
     if (!document->renderView()) 
         return false;
     
-    HitTestRequest request(HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::DisallowShadowContent);
     HitTestResult result(point);
-    document->renderView()->hitTest(request, result);
+    document->renderView()->hitTest(HitTestRequest(), result);
     Node* innerNode = result.innerNode();
     if (!innerNode || !innerNode->renderer())
         return false;

Modified: trunk/Source/WebCore/page/DragController.cpp (173765 => 173766)


--- trunk/Source/WebCore/page/DragController.cpp	2014-09-19 18:33:16 UTC (rev 173765)
+++ trunk/Source/WebCore/page/DragController.cpp	2014-09-19 18:43:14 UTC (rev 173766)
@@ -286,9 +286,8 @@
     float zoomFactor = frame ? frame->pageZoomFactor() : 1;
     LayoutPoint point(p.x() * zoomFactor, p.y() * zoomFactor);
 
-    HitTestRequest request(HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::DisallowShadowContent);
     HitTestResult result(point);
-    documentUnderMouse->renderView()->hitTest(request, result);
+    documentUnderMouse->renderView()->hitTest(HitTestRequest(), result);
 
     Node* n = result.innerNode();
     while (n && !n->isElementNode())

Modified: trunk/Source/WebCore/page/EventHandler.cpp (173765 => 173766)


--- trunk/Source/WebCore/page/EventHandler.cpp	2014-09-19 18:33:16 UTC (rev 173765)
+++ trunk/Source/WebCore/page/EventHandler.cpp	2014-09-19 18:43:14 UTC (rev 173766)
@@ -840,9 +840,8 @@
     }
 
     if (m_selectionInitiationState != ExtendedSelection) {
-        HitTestRequest request(HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::DisallowShadowContent);
         HitTestResult result(m_mouseDownPos);
-        m_frame.document()->renderView()->hitTest(request, result);
+        m_frame.document()->renderView()->hitTest(HitTestRequest(), result);
 
         updateSelectionForMouseDrag(result);
     }
@@ -1751,8 +1750,7 @@
     // in case the scrollbar widget was destroyed when the mouse event was handled.
     if (mouseEvent.scrollbar()) {
         const bool wasLastScrollBar = mouseEvent.scrollbar() == m_lastScrollbarUnderMouse.get();
-        HitTestRequest request(HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::DisallowShadowContent);
-        mouseEvent = m_frame.document()->prepareMouseEvent(request, documentPoint, platformMouseEvent);
+        mouseEvent = m_frame.document()->prepareMouseEvent(HitTestRequest(), documentPoint, platformMouseEvent);
         if (wasLastScrollBar && mouseEvent.scrollbar() != m_lastScrollbarUnderMouse.get())
             m_lastScrollbarUnderMouse = nullptr;
     }
@@ -1770,10 +1768,8 @@
         // If a mouse event handler changes the input element type to one that has a widget associated,
         // we'd like to EventHandler::handleMousePressEvent to pass the event to the widget and thus the
         // event target node can't still be the shadow node.
-        if (mouseEvent.targetNode()->isShadowRoot() && isHTMLInputElement(toShadowRoot(mouseEvent.targetNode())->hostElement())) {
-            HitTestRequest request(HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::DisallowShadowContent);
-            mouseEvent = m_frame.document()->prepareMouseEvent(request, documentPoint, platformMouseEvent);
-        }
+        if (mouseEvent.targetNode()->isShadowRoot() && isHTMLInputElement(toShadowRoot(mouseEvent.targetNode())->hostElement()))
+            mouseEvent = m_frame.document()->prepareMouseEvent(HitTestRequest(), documentPoint, platformMouseEvent);
 
         FrameView* view = m_frame.view();
         Scrollbar* scrollbar = view ? view->scrollbarAtPoint(platformMouseEvent.position()) : 0;

Modified: trunk/Source/WebCore/rendering/HitTestRequest.h (173765 => 173766)


--- trunk/Source/WebCore/rendering/HitTestRequest.h	2014-09-19 18:33:16 UTC (rev 173765)
+++ trunk/Source/WebCore/rendering/HitTestRequest.h	2014-09-19 18:43:14 UTC (rev 173766)
@@ -44,7 +44,7 @@
 
     typedef unsigned HitTestRequestType;
 
-    HitTestRequest(HitTestRequestType requestType)
+    HitTestRequest(HitTestRequestType requestType = ReadOnly | Active | DisallowShadowContent)
         : m_requestType(requestType)
     {
     }

Modified: trunk/Source/WebKit2/ChangeLog (173765 => 173766)


--- trunk/Source/WebKit2/ChangeLog	2014-09-19 18:33:16 UTC (rev 173765)
+++ trunk/Source/WebKit2/ChangeLog	2014-09-19 18:43:14 UTC (rev 173766)
@@ -1,3 +1,18 @@
+2014-09-19  Simon Fraser  <[email protected]>
+
+        Provide a default argument for the most commonly used HitTestRequest variant
+        https://bugs.webkit.org/show_bug.cgi?id=136653
+
+        Reviewed by Darin Adler.
+
+        Make the default HitTestRequest flags be ReadOnly | Active | DisallowShadowContent
+        and change call sites using the default flags to use a HitTestRequest temporary.
+
+        * WebProcess/WebPage/ViewGestureGeometryCollector.cpp:
+        (WebKit::ViewGestureGeometryCollector::collectGeometryForSmartMagnificationGesture):
+        * WebProcess/WebPage/ios/WebPageIOS.mm:
+        (WebKit::WebPage::dynamicViewportSizeUpdate):
+
 2014-09-19  Daniel Bates  <[email protected]>
 
         Always assume internal SDK when building configuration Production

Modified: trunk/Source/WebKit2/WebProcess/WebPage/ViewGestureGeometryCollector.cpp (173765 => 173766)


--- trunk/Source/WebKit2/WebProcess/WebPage/ViewGestureGeometryCollector.cpp	2014-09-19 18:33:16 UTC (rev 173765)
+++ trunk/Source/WebKit2/WebProcess/WebPage/ViewGestureGeometryCollector.cpp	2014-09-19 18:43:14 UTC (rev 173766)
@@ -82,11 +82,10 @@
     if (m_webPage.mainWebFrame()->handlesPageScaleGesture())
         return;
 
-    HitTestRequest request(HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::DisallowShadowContent);
     IntPoint originInContentsSpace = m_webPage.mainFrameView()->windowToContents(roundedIntPoint(origin));
     HitTestResult hitTestResult = HitTestResult(originInContentsSpace);
 
-    m_webPage.mainFrameView()->renderView()->hitTest(request, hitTestResult);
+    m_webPage.mainFrameView()->renderView()->hitTest(HitTestRequest(), hitTestResult);
 
     if (Node* node = hitTestResult.innerNode()) {
         bool isReplaced;

Modified: trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm (173765 => 173766)


--- trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm	2014-09-19 18:33:16 UTC (rev 173765)
+++ trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm	2014-09-19 18:43:14 UTC (rev 173766)
@@ -2246,10 +2246,8 @@
 
         HitTestResult hitTestResult = HitTestResult(unobscuredContentRectCenter);
 
-        if (RenderView* mainFrameRenderView = frameView.renderView()) {
-            HitTestRequest request(HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::DisallowShadowContent);
-            mainFrameRenderView->hitTest(request, hitTestResult);
-        }
+        if (RenderView* mainFrameRenderView = frameView.renderView())
+            mainFrameRenderView->hitTest(HitTestRequest(), hitTestResult);
 
         if (Node* node = hitTestResult.innerNode()) {
             if (RenderObject* renderer = node->renderer()) {
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to