Index: Source/core/paint/DeprecatedPaintLayer.cpp |
diff --git a/Source/core/paint/DeprecatedPaintLayer.cpp b/Source/core/paint/DeprecatedPaintLayer.cpp |
index 81f29ebe4fcb059286468123362ea893c1637fc0..2b6ca80af97fc882a51a81a5b927ac6938ca2c31 100644 |
--- a/Source/core/paint/DeprecatedPaintLayer.cpp |
+++ b/Source/core/paint/DeprecatedPaintLayer.cpp |
@@ -1646,21 +1646,20 @@ static inline LayoutRect frameVisibleRect(LayoutObject* layoutObject) |
bool DeprecatedPaintLayer::hitTest(HitTestResult& result) |
{ |
- return hitTest(result.hitTestRequest(), result.hitTestLocation(), result); |
-} |
- |
-bool DeprecatedPaintLayer::hitTest(const HitTestRequest& request, const HitTestLocation& hitTestLocation, HitTestResult& result) |
-{ |
ASSERT(isSelfPaintingLayer() || hasSelfPaintingLayerDescendant()); |
// LayoutView should make sure to update layout before entering hit testing |
ASSERT(!layoutObject()->frame()->view()->layoutPending()); |
ASSERT(!layoutObject()->document().layoutView()->needsLayout()); |
+ const HitTestRequest& request = result.hitTestRequest(); |
+ const HitTestLocation& hitTestLocation = result.hitTestLocation(); |
+ |
// Start with frameVisibleRect to ensure we include the scrollbars. |
LayoutRect hitTestArea = frameVisibleRect(layoutObject()); |
if (request.ignoreClipping()) |
hitTestArea.unite(LayoutRect(layoutObject()->view()->documentRect())); |
+ result.setValidityRect(boundingRect(hitTestLocation.point())); |
DeprecatedPaintLayer* insideLayer = hitTestLayer(this, 0, result, hitTestArea, hitTestLocation, false); |
if (!insideLayer) { |
@@ -1896,6 +1895,7 @@ DeprecatedPaintLayer* DeprecatedPaintLayer::hitTestLayer(DeprecatedPaintLayer* r |
if (isSelfPaintingLayer()) { |
// Hit test with a temporary HitTestResult, because we only want to commit to 'result' if we know we're frontmost. |
HitTestResult tempResult(result.hitTestRequest(), result.hitTestLocation()); |
+ tempResult.setValidityRect(result.validityRect()); |
bool insideFragmentForegroundRect = false; |
if (hitTestContentsForFragments(layerFragments, tempResult, hitTestLocation, HitTestDescendants, insideFragmentForegroundRect) |
&& isHitCandidate(this, false, zOffsetForContentsPtr, unflattenedTransformState.get())) { |
@@ -1927,6 +1927,7 @@ DeprecatedPaintLayer* DeprecatedPaintLayer::hitTestLayer(DeprecatedPaintLayer* r |
if (isSelfPaintingLayer()) { |
HitTestResult tempResult(result.hitTestRequest(), result.hitTestLocation()); |
+ tempResult.setValidityRect(result.validityRect()); |
bool insideFragmentBackgroundRect = false; |
if (hitTestContentsForFragments(layerFragments, tempResult, hitTestLocation, HitTestSelf, insideFragmentBackgroundRect) |
&& isHitCandidate(this, false, zOffsetForContentsPtr, unflattenedTransformState.get())) { |
@@ -2081,6 +2082,7 @@ DeprecatedPaintLayer* DeprecatedPaintLayer::hitTestChildren(ChildrenIteration ch |
DeprecatedPaintLayer* childLayer = child->layer(); |
DeprecatedPaintLayer* hitLayer = 0; |
HitTestResult tempResult(result.hitTestRequest(), result.hitTestLocation()); |
+ tempResult.setValidityRect(result.validityRect()); |
if (childLayer->isPaginated()) |
hitLayer = hitTestPaginatedChildLayer(childLayer, rootLayer, tempResult, hitTestRect, hitTestLocation, transformState, zOffsetForDescendants); |
else |