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

Unified Diff: Source/core/rendering/RenderLayer.cpp

Issue 869813003: Implement elementsFromPoint (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Fix typeo Created 5 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: Source/core/rendering/RenderLayer.cpp
diff --git a/Source/core/rendering/RenderLayer.cpp b/Source/core/rendering/RenderLayer.cpp
index 94112877fa204de1f52ac4d9106c7a3aa6c1c58e..d9f19bf3d96c3f207698423369f045d5d3800665 100644
--- a/Source/core/rendering/RenderLayer.cpp
+++ b/Source/core/rendering/RenderLayer.cpp
@@ -1882,6 +1882,8 @@ RenderLayer* RenderLayer::hitTestLayer(RenderLayer* rootLayer, RenderLayer* cont
return this;
}
+ ASSERT(!result.isRectBasedTest() || request.listBased());
Rick Byers 2015/02/04 10:34:03 Asserts like this can probably move into HitTestRe
pdr. 2015/02/17 04:10:14 Done.
pdr. 2015/02/17 04:10:14 Done.
+
// Next we want to see if the mouse pos is inside the child RenderObjects of the layer. Check
// every fragment in reverse order.
if (isSelfPaintingLayer()) {
@@ -1890,7 +1892,7 @@ RenderLayer* RenderLayer::hitTestLayer(RenderLayer* rootLayer, RenderLayer* cont
bool insideFragmentForegroundRect = false;
if (hitTestContentsForFragments(layerFragments, request, tempResult, hitTestLocation, HitTestDescendants, insideFragmentForegroundRect)
&& isHitCandidate(this, false, zOffsetForContentsPtr, unflattenedTransformState.get())) {
- if (result.isRectBasedTest())
+ if (request.listBased())
result.append(tempResult);
else
result = tempResult;
@@ -1898,7 +1900,7 @@ RenderLayer* RenderLayer::hitTestLayer(RenderLayer* rootLayer, RenderLayer* cont
return this;
// Foreground can depth-sort with descendant layers, so keep this as a candidate.
candidateLayer = this;
- } else if (insideFragmentForegroundRect && result.isRectBasedTest())
+ } else if (insideFragmentForegroundRect && request.listBased())
result.append(tempResult);
}
@@ -1920,13 +1922,13 @@ RenderLayer* RenderLayer::hitTestLayer(RenderLayer* rootLayer, RenderLayer* cont
bool insideFragmentBackgroundRect = false;
if (hitTestContentsForFragments(layerFragments, request, tempResult, hitTestLocation, HitTestSelf, insideFragmentBackgroundRect)
&& isHitCandidate(this, false, zOffsetForContentsPtr, unflattenedTransformState.get())) {
- if (result.isRectBasedTest())
+ if (request.listBased())
result.append(tempResult);
else
result = tempResult;
return this;
}
- if (insideFragmentBackgroundRect && result.isRectBasedTest())
+ if (insideFragmentBackgroundRect && request.listBased())
result.append(tempResult);
}
@@ -2026,7 +2028,7 @@ bool RenderLayer::hitTestContents(const HitTestRequest& request, HitTestResult&
if (!renderer()->hitTest(request, result, hitTestLocation, toLayoutPoint(layerBounds.location() - renderBoxLocation()), hitTestFilter)) {
// It's wrong to set innerNode, but then claim that you didn't hit anything, unless it is
// a rect-based test.
- ASSERT(!result.innerNode() || (result.isRectBasedTest() && result.rectBasedTestResult().size()));
+ ASSERT(!result.innerNode() || (request.listBased() && result.listBasedTestResult().size()));
return false;
}
@@ -2067,14 +2069,15 @@ RenderLayer* RenderLayer::hitTestChildren(ChildrenIteration childrentoVisit, Ren
else
hitLayer = childLayer->hitTestLayer(rootLayer, this, request, tempResult, hitTestRect, hitTestLocation, false, transformState, zOffsetForDescendants);
- // If it a rect-based test, we can safely append the temporary result since it might had hit
+ // If it a list-based test, we can safely append the temporary result since it might had hit
Rick Byers 2015/02/04 10:34:03 nit: s/it/it is/
pdr. 2015/02/17 04:10:14 Done.
// nodes but not necesserily had hitLayer set.
- if (result.isRectBasedTest())
+ ASSERT(!result.isRectBasedTest() || request.listBased());
+ if (request.listBased())
result.append(tempResult);
if (isHitCandidate(hitLayer, depthSortDescendants, zOffset, unflattenedTransformState)) {
resultLayer = hitLayer;
- if (!result.isRectBasedTest())
+ if (!request.listBased())
result = tempResult;
if (!depthSortDescendants)
break;

Powered by Google App Engine
This is Rietveld 408576698