| 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
|
|
|