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