Title: [258468] trunk/Source/WebCore
Revision
258468
Author
[email protected]
Date
2020-03-14 12:01:48 -0700 (Sat, 14 Mar 2020)

Log Message

Share HitTestResult::addNodeToListBasedTestResult() impl for LayoutRect and FloatRect overloads
https://bugs.webkit.org/show_bug.cgi?id=209107

Reviewed by Brady Eidson.

Remove code duplication for adding a node to the result set.

* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::addNodeToListBasedTestResultCommon): Added.
(WebCore::HitTestResult::addNodeToListBasedTestResult): Write in terms of addNodeToListBasedTestResultCommon().
* rendering/HitTestResult.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (258467 => 258468)


--- trunk/Source/WebCore/ChangeLog	2020-03-14 16:10:25 UTC (rev 258467)
+++ trunk/Source/WebCore/ChangeLog	2020-03-14 19:01:48 UTC (rev 258468)
@@ -1,3 +1,17 @@
+2020-03-14  Daniel Bates  <[email protected]>
+
+        Share HitTestResult::addNodeToListBasedTestResult() impl for LayoutRect and FloatRect overloads
+        https://bugs.webkit.org/show_bug.cgi?id=209107
+
+        Reviewed by Brady Eidson.
+
+        Remove code duplication for adding a node to the result set.
+
+        * rendering/HitTestResult.cpp:
+        (WebCore::HitTestResult::addNodeToListBasedTestResultCommon): Added.
+        (WebCore::HitTestResult::addNodeToListBasedTestResult): Write in terms of addNodeToListBasedTestResultCommon().
+        * rendering/HitTestResult.h:
+
 2020-03-14  Zalan Bujtas  <[email protected]>
 
         [Tree building] Reset the fragmented flow status before calling child.willBeRemovedFromTree.

Modified: trunk/Source/WebCore/rendering/HitTestResult.cpp (258467 => 258468)


--- trunk/Source/WebCore/rendering/HitTestResult.cpp	2020-03-14 16:10:25 UTC (rev 258467)
+++ trunk/Source/WebCore/rendering/HitTestResult.cpp	2020-03-14 19:01:48 UTC (rev 258468)
@@ -615,7 +615,8 @@
     return m_innerNonSharedNode->hasEditableStyle();
 }
 
-HitTestProgress HitTestResult::addNodeToListBasedTestResult(Node* node, const HitTestRequest& request, const HitTestLocation& locationInContainer, const LayoutRect& rect)
+template<typename RectType>
+inline HitTestProgress HitTestResult::addNodeToListBasedTestResultCommon(Node* node, const HitTestRequest& request, const HitTestLocation& locationInContainer, const RectType& rect)
 {
     // If it is not a list-based hit test, this method has to be no-op.
     if (!request.resultIsElementList()) {
@@ -638,27 +639,14 @@
     return regionFilled ? HitTestProgress::Stop : HitTestProgress::Continue;
 }
 
+HitTestProgress HitTestResult::addNodeToListBasedTestResult(Node* node, const HitTestRequest& request, const HitTestLocation& locationInContainer, const LayoutRect& rect)
+{
+    return addNodeToListBasedTestResultCommon(node, request, locationInContainer, rect);
+}
+
 HitTestProgress HitTestResult::addNodeToListBasedTestResult(Node* node, const HitTestRequest& request, const HitTestLocation& locationInContainer, const FloatRect& rect)
 {
-    // If it is not a list-based hit test, this method has to be no-op.
-    if (!request.resultIsElementList()) {
-        ASSERT(!isRectBasedTest());
-        return HitTestProgress::Stop;
-    }
-
-    if (!node)
-        return HitTestProgress::Continue;
-
-    if (request.disallowsUserAgentShadowContent() && node->isInUserAgentShadowTree())
-        node = node->document().ancestorNodeInThisScope(node);
-
-    mutableListBasedTestResult().add(node);
-
-    if (request.includesAllElementsUnderPoint())
-        return HitTestProgress::Continue;
-
-    bool regionFilled = rect.contains(locationInContainer.boundingBox());
-    return regionFilled ? HitTestProgress::Stop : HitTestProgress::Continue;
+    return addNodeToListBasedTestResultCommon(node, request, locationInContainer, rect);
 }
 
 void HitTestResult::append(const HitTestResult& other, const HitTestRequest& request)

Modified: trunk/Source/WebCore/rendering/HitTestResult.h (258467 => 258468)


--- trunk/Source/WebCore/rendering/HitTestResult.h	2020-03-14 16:10:25 UTC (rev 258467)
+++ trunk/Source/WebCore/rendering/HitTestResult.h	2020-03-14 19:01:48 UTC (rev 258468)
@@ -149,6 +149,8 @@
 private:
     NodeSet& mutableListBasedTestResult(); // See above.
 
+    template<typename RectType> HitTestProgress addNodeToListBasedTestResultCommon(Node*, const HitTestRequest&, const HitTestLocation&, const RectType&);
+
 #if ENABLE(VIDEO)
     HTMLMediaElement* mediaElement() const;
 #endif
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to