Index: Source/core/paint/DeprecatedPaintLayer.cpp |
diff --git a/Source/core/paint/DeprecatedPaintLayer.cpp b/Source/core/paint/DeprecatedPaintLayer.cpp |
index 45e39ffb3fce507643768fc22137de97e40201b6..b7f267184245c8f9d0ecc4612ce6c6fd30f7c06e 100644 |
--- a/Source/core/paint/DeprecatedPaintLayer.cpp |
+++ b/Source/core/paint/DeprecatedPaintLayer.cpp |
@@ -1660,9 +1660,9 @@ static inline LayoutRect frameVisibleRect(LayoutObject* renderer) |
return LayoutRect(frameView->visibleContentRect()); |
} |
-bool DeprecatedPaintLayer::hitTest(const HitTestRequest& request, HitTestResult& result) |
+bool DeprecatedPaintLayer::hitTest(HitTestResult& result) |
{ |
- return hitTest(request, result.hitTestLocation(), result); |
+ return hitTest(result.hitTestRequest(), result.hitTestLocation(), result); |
} |
bool DeprecatedPaintLayer::hitTest(const HitTestRequest& request, const HitTestLocation& hitTestLocation, HitTestResult& result) |
@@ -1678,7 +1678,7 @@ bool DeprecatedPaintLayer::hitTest(const HitTestRequest& request, const HitTestL |
if (request.ignoreClipping()) |
hitTestArea.unite(LayoutRect(layoutObject()->view()->documentRect())); |
- DeprecatedPaintLayer* insideLayer = hitTestLayer(this, 0, request, result, hitTestArea, hitTestLocation, false); |
+ DeprecatedPaintLayer* insideLayer = hitTestLayer(this, 0, result, hitTestArea, hitTestLocation, false); |
if (!insideLayer) { |
// We didn't hit any layer. If we are the root layer and the mouse is -- or just was -- down, |
// return ourselves. We do this so mouse events continue getting delivered after a drag has |
@@ -1799,7 +1799,7 @@ static bool isHitCandidate(const DeprecatedPaintLayer* hitLayer, bool canDepthSo |
// |
// If zOffset is non-null (which indicates that the caller wants z offset information), |
// *zOffset on return is the z offset of the hit point relative to the containing flattening layer. |
-DeprecatedPaintLayer* DeprecatedPaintLayer::hitTestLayer(DeprecatedPaintLayer* rootLayer, DeprecatedPaintLayer* containerLayer, const HitTestRequest& request, HitTestResult& result, |
+DeprecatedPaintLayer* DeprecatedPaintLayer::hitTestLayer(DeprecatedPaintLayer* rootLayer, DeprecatedPaintLayer* containerLayer, HitTestResult& result, |
const LayoutRect& hitTestRect, const HitTestLocation& hitTestLocation, bool appliedTransform, |
const HitTestingTransformState* transformState, double* zOffset) |
{ |
@@ -1811,7 +1811,7 @@ DeprecatedPaintLayer* DeprecatedPaintLayer::hitTestLayer(DeprecatedPaintLayer* r |
// Apply a transform if we have one. |
if (transform() && !appliedTransform) { |
if (enclosingPaginationLayer()) |
- return hitTestTransformedLayerInFragments(rootLayer, containerLayer, request, result, hitTestRect, hitTestLocation, transformState, zOffset); |
+ return hitTestTransformedLayerInFragments(rootLayer, containerLayer, result, hitTestRect, hitTestLocation, transformState, zOffset); |
// Make sure the parent's clip rects have been calculated. |
if (parent()) { |
@@ -1821,7 +1821,7 @@ DeprecatedPaintLayer* DeprecatedPaintLayer::hitTestLayer(DeprecatedPaintLayer* r |
return 0; |
} |
- return hitTestLayerByApplyingTransform(rootLayer, containerLayer, request, result, hitTestRect, hitTestLocation, transformState, zOffset); |
+ return hitTestLayerByApplyingTransform(rootLayer, containerLayer, result, hitTestRect, hitTestLocation, transformState, zOffset); |
} |
// Ensure our lists and 3d status are up-to-date. |
@@ -1876,7 +1876,7 @@ DeprecatedPaintLayer* DeprecatedPaintLayer::hitTestLayer(DeprecatedPaintLayer* r |
DeprecatedPaintLayer* candidateLayer = 0; |
// Begin by walking our list of positive layers from highest z-index down to the lowest z-index. |
- DeprecatedPaintLayer* hitLayer = hitTestChildren(PositiveZOrderChildren, rootLayer, request, result, hitTestRect, hitTestLocation, |
+ DeprecatedPaintLayer* hitLayer = hitTestChildren(PositiveZOrderChildren, rootLayer, result, hitTestRect, hitTestLocation, |
localTransformState.get(), zOffsetForDescendantsPtr, zOffset, unflattenedTransformState.get(), depthSortDescendants); |
if (hitLayer) { |
if (!depthSortDescendants) |
@@ -1885,7 +1885,7 @@ DeprecatedPaintLayer* DeprecatedPaintLayer::hitTestLayer(DeprecatedPaintLayer* r |
} |
// Now check our overflow objects. |
- hitLayer = hitTestChildren(NormalFlowChildren, rootLayer, request, result, hitTestRect, hitTestLocation, |
+ hitLayer = hitTestChildren(NormalFlowChildren, rootLayer, result, hitTestRect, hitTestLocation, |
localTransformState.get(), zOffsetForDescendantsPtr, zOffset, unflattenedTransformState.get(), depthSortDescendants); |
if (hitLayer) { |
if (!depthSortDescendants) |
@@ -1909,25 +1909,25 @@ DeprecatedPaintLayer* DeprecatedPaintLayer::hitTestLayer(DeprecatedPaintLayer* r |
// every fragment in reverse order. |
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.hitTestLocation()); |
+ HitTestResult tempResult(result.hitTestRequest(), result.hitTestLocation()); |
bool insideFragmentForegroundRect = false; |
- if (hitTestContentsForFragments(layerFragments, request, tempResult, hitTestLocation, HitTestDescendants, insideFragmentForegroundRect) |
+ if (hitTestContentsForFragments(layerFragments, tempResult, hitTestLocation, HitTestDescendants, insideFragmentForegroundRect) |
&& isHitCandidate(this, false, zOffsetForContentsPtr, unflattenedTransformState.get())) { |
- if (request.listBased()) |
- result.append(tempResult, request); |
+ if (result.hitTestRequest().listBased()) |
+ result.append(tempResult); |
else |
result = tempResult; |
if (!depthSortDescendants) |
return this; |
// Foreground can depth-sort with descendant layers, so keep this as a candidate. |
candidateLayer = this; |
- } else if (insideFragmentForegroundRect && request.listBased()) { |
- result.append(tempResult, request); |
+ } else if (insideFragmentForegroundRect && result.hitTestRequest().listBased()) { |
+ result.append(tempResult); |
} |
} |
// Now check our negative z-index children. |
- hitLayer = hitTestChildren(NegativeZOrderChildren, rootLayer, request, result, hitTestRect, hitTestLocation, |
+ hitLayer = hitTestChildren(NegativeZOrderChildren, rootLayer, result, hitTestRect, hitTestLocation, |
localTransformState.get(), zOffsetForDescendantsPtr, zOffset, unflattenedTransformState.get(), depthSortDescendants); |
if (hitLayer) { |
if (!depthSortDescendants) |
@@ -1940,24 +1940,24 @@ DeprecatedPaintLayer* DeprecatedPaintLayer::hitTestLayer(DeprecatedPaintLayer* r |
return candidateLayer; |
if (isSelfPaintingLayer()) { |
- HitTestResult tempResult(result.hitTestLocation()); |
+ HitTestResult tempResult(result.hitTestRequest(), result.hitTestLocation()); |
bool insideFragmentBackgroundRect = false; |
- if (hitTestContentsForFragments(layerFragments, request, tempResult, hitTestLocation, HitTestSelf, insideFragmentBackgroundRect) |
+ if (hitTestContentsForFragments(layerFragments, tempResult, hitTestLocation, HitTestSelf, insideFragmentBackgroundRect) |
&& isHitCandidate(this, false, zOffsetForContentsPtr, unflattenedTransformState.get())) { |
if (result.isRectBasedTest()) |
- result.append(tempResult, request); |
+ result.append(tempResult); |
else |
result = tempResult; |
return this; |
} |
- if (insideFragmentBackgroundRect && request.listBased()) |
- result.append(tempResult, request); |
+ if (insideFragmentBackgroundRect && result.hitTestRequest().listBased()) |
+ result.append(tempResult); |
} |
return 0; |
} |
-bool DeprecatedPaintLayer::hitTestContentsForFragments(const DeprecatedPaintLayerFragments& layerFragments, const HitTestRequest& request, HitTestResult& result, |
+bool DeprecatedPaintLayer::hitTestContentsForFragments(const DeprecatedPaintLayerFragments& layerFragments, HitTestResult& result, |
const HitTestLocation& hitTestLocation, HitTestFilter hitTestFilter, bool& insideClipRect) const |
{ |
if (layerFragments.isEmpty()) |
@@ -1969,14 +1969,14 @@ bool DeprecatedPaintLayer::hitTestContentsForFragments(const DeprecatedPaintLaye |
|| (hitTestFilter == HitTestDescendants && !fragment.foregroundRect.intersects(hitTestLocation))) |
continue; |
insideClipRect = true; |
- if (hitTestContents(request, result, fragment.layerBounds, hitTestLocation, hitTestFilter)) |
+ if (hitTestContents(result, fragment.layerBounds, hitTestLocation, hitTestFilter)) |
return true; |
} |
return false; |
} |
-DeprecatedPaintLayer* DeprecatedPaintLayer::hitTestTransformedLayerInFragments(DeprecatedPaintLayer* rootLayer, DeprecatedPaintLayer* containerLayer, const HitTestRequest& request, HitTestResult& result, |
+DeprecatedPaintLayer* DeprecatedPaintLayer::hitTestTransformedLayerInFragments(DeprecatedPaintLayer* rootLayer, DeprecatedPaintLayer* containerLayer, HitTestResult& result, |
const LayoutRect& hitTestRect, const HitTestLocation& hitTestLocation, const HitTestingTransformState* transformState, double* zOffset) |
{ |
DeprecatedPaintLayerFragments enclosingPaginationFragments; |
@@ -2004,7 +2004,7 @@ DeprecatedPaintLayer* DeprecatedPaintLayer::hitTestTransformedLayerInFragments(D |
if (!hitTestLocation.intersects(clipRect)) |
continue; |
- DeprecatedPaintLayer* hitLayer = hitTestLayerByApplyingTransform(rootLayer, containerLayer, request, result, hitTestRect, hitTestLocation, |
+ DeprecatedPaintLayer* hitLayer = hitTestLayerByApplyingTransform(rootLayer, containerLayer, result, hitTestRect, hitTestLocation, |
transformState, zOffset, fragment.paginationOffset); |
if (hitLayer) |
return hitLayer; |
@@ -2013,7 +2013,7 @@ DeprecatedPaintLayer* DeprecatedPaintLayer::hitTestTransformedLayerInFragments(D |
return 0; |
} |
-DeprecatedPaintLayer* DeprecatedPaintLayer::hitTestLayerByApplyingTransform(DeprecatedPaintLayer* rootLayer, DeprecatedPaintLayer* containerLayer, const HitTestRequest& request, HitTestResult& result, |
+DeprecatedPaintLayer* DeprecatedPaintLayer::hitTestLayerByApplyingTransform(DeprecatedPaintLayer* rootLayer, DeprecatedPaintLayer* containerLayer, HitTestResult& result, |
const LayoutRect& hitTestRect, const HitTestLocation& hitTestLocation, const HitTestingTransformState* transformState, double* zOffset, |
const LayoutPoint& translationOffset) |
{ |
@@ -2040,17 +2040,17 @@ DeprecatedPaintLayer* DeprecatedPaintLayer::hitTestLayerByApplyingTransform(Depr |
newHitTestLocation = HitTestLocation(localPoint); |
// Now do a hit test with the root layer shifted to be us. |
- return hitTestLayer(this, containerLayer, request, result, localHitTestRect, newHitTestLocation, true, newTransformState.get(), zOffset); |
+ return hitTestLayer(this, containerLayer, result, localHitTestRect, newHitTestLocation, true, newTransformState.get(), zOffset); |
} |
-bool DeprecatedPaintLayer::hitTestContents(const HitTestRequest& request, HitTestResult& result, const LayoutRect& layerBounds, const HitTestLocation& hitTestLocation, HitTestFilter hitTestFilter) const |
+bool DeprecatedPaintLayer::hitTestContents(HitTestResult& result, const LayoutRect& layerBounds, const HitTestLocation& hitTestLocation, HitTestFilter hitTestFilter) const |
{ |
ASSERT(isSelfPaintingLayer() || hasSelfPaintingLayerDescendant()); |
- if (!layoutObject()->hitTest(request, result, hitTestLocation, toLayoutPoint(layerBounds.location() - layoutBoxLocation()), hitTestFilter)) { |
+ if (!layoutObject()->hitTest(result, hitTestLocation, toLayoutPoint(layerBounds.location() - layoutBoxLocation()), 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() || (request.listBased() && result.listBasedTestResult().size())); |
+ ASSERT(!result.innerNode() || (result.hitTestRequest().listBased() && result.listBasedTestResult().size())); |
return false; |
} |
@@ -2080,7 +2080,7 @@ bool DeprecatedPaintLayer::hitTestContents(const HitTestRequest& request, HitTes |
} |
DeprecatedPaintLayer* DeprecatedPaintLayer::hitTestChildren(ChildrenIteration childrentoVisit, DeprecatedPaintLayer* rootLayer, |
- const HitTestRequest& request, HitTestResult& result, |
+ HitTestResult& result, |
const LayoutRect& hitTestRect, const HitTestLocation& hitTestLocation, |
const HitTestingTransformState* transformState, |
double* zOffsetForDescendants, double* zOffset, |
@@ -2095,21 +2095,21 @@ DeprecatedPaintLayer* DeprecatedPaintLayer::hitTestChildren(ChildrenIteration ch |
while (DeprecatedPaintLayerStackingNode* child = iterator.next()) { |
DeprecatedPaintLayer* childLayer = child->layer(); |
DeprecatedPaintLayer* hitLayer = 0; |
- HitTestResult tempResult(result.hitTestLocation()); |
+ HitTestResult tempResult(result.hitTestRequest(), result.hitTestLocation()); |
if (childLayer->isPaginated()) |
- hitLayer = hitTestPaginatedChildLayer(childLayer, rootLayer, request, tempResult, hitTestRect, hitTestLocation, transformState, zOffsetForDescendants); |
+ hitLayer = hitTestPaginatedChildLayer(childLayer, rootLayer, tempResult, hitTestRect, hitTestLocation, transformState, zOffsetForDescendants); |
else |
- hitLayer = childLayer->hitTestLayer(rootLayer, this, request, tempResult, hitTestRect, hitTestLocation, false, transformState, zOffsetForDescendants); |
+ hitLayer = childLayer->hitTestLayer(rootLayer, this, tempResult, hitTestRect, hitTestLocation, false, transformState, zOffsetForDescendants); |
// If it is a list-based test, we can safely append the temporary result since it might had hit |
// nodes but not necesserily had hitLayer set. |
- ASSERT(!result.isRectBasedTest() || request.listBased()); |
- if (request.listBased()) |
- result.append(tempResult, request); |
+ ASSERT(!result.isRectBasedTest() || result.hitTestRequest().listBased()); |
+ if (result.hitTestRequest().listBased()) |
+ result.append(tempResult); |
if (isHitCandidate(hitLayer, depthSortDescendants, zOffset, unflattenedTransformState)) { |
resultLayer = hitLayer; |
- if (!request.listBased()) |
+ if (!result.hitTestRequest().listBased()) |
result = tempResult; |
if (!depthSortDescendants) |
break; |
@@ -2119,7 +2119,7 @@ DeprecatedPaintLayer* DeprecatedPaintLayer::hitTestChildren(ChildrenIteration ch |
return resultLayer; |
} |
-DeprecatedPaintLayer* DeprecatedPaintLayer::hitTestPaginatedChildLayer(DeprecatedPaintLayer* childLayer, DeprecatedPaintLayer* rootLayer, const HitTestRequest& request, HitTestResult& result, |
+DeprecatedPaintLayer* DeprecatedPaintLayer::hitTestPaginatedChildLayer(DeprecatedPaintLayer* childLayer, DeprecatedPaintLayer* rootLayer, HitTestResult& result, |
const LayoutRect& hitTestRect, const HitTestLocation& hitTestLocation, const HitTestingTransformState* transformState, double* zOffset) |
{ |
Vector<DeprecatedPaintLayer*> columnLayers; |
@@ -2132,11 +2132,11 @@ DeprecatedPaintLayer* DeprecatedPaintLayer::hitTestPaginatedChildLayer(Deprecate |
} |
ASSERT(columnLayers.size()); |
- return hitTestChildLayerColumns(childLayer, rootLayer, request, result, hitTestRect, hitTestLocation, transformState, zOffset, |
+ return hitTestChildLayerColumns(childLayer, rootLayer, result, hitTestRect, hitTestLocation, transformState, zOffset, |
columnLayers, columnLayers.size() - 1); |
} |
-DeprecatedPaintLayer* DeprecatedPaintLayer::hitTestChildLayerColumns(DeprecatedPaintLayer* childLayer, DeprecatedPaintLayer* rootLayer, const HitTestRequest& request, HitTestResult& result, |
+DeprecatedPaintLayer* DeprecatedPaintLayer::hitTestChildLayerColumns(DeprecatedPaintLayer* childLayer, DeprecatedPaintLayer* rootLayer, HitTestResult& result, |
const LayoutRect& hitTestRect, const HitTestLocation& hitTestLocation, const HitTestingTransformState* transformState, double* zOffset, |
const Vector<DeprecatedPaintLayer*>& columnLayers, size_t columnIndex) |
{ |
@@ -2206,7 +2206,7 @@ DeprecatedPaintLayer* DeprecatedPaintLayer::hitTestChildLayerColumns(DeprecatedP |
newTransform.translateRight(offset.width(), offset.height()); |
childLayer->m_transform = adoptPtr(new TransformationMatrix(newTransform)); |
- hitLayer = childLayer->hitTestLayer(rootLayer, columnLayers[0], request, result, localClipRect, hitTestLocation, false, transformState, zOffset); |
+ hitLayer = childLayer->hitTestLayer(rootLayer, columnLayers[0], result, localClipRect, hitTestLocation, false, transformState, zOffset); |
if (oldHasTransform) |
childLayer->m_transform = adoptPtr(new TransformationMatrix(oldTransform)); |
else |
@@ -2227,7 +2227,7 @@ DeprecatedPaintLayer* DeprecatedPaintLayer::hitTestChildLayerColumns(DeprecatedP |
newHitTestLocation = HitTestLocation(localPoint); |
newTransformState->flatten(); |
- hitLayer = hitTestChildLayerColumns(childLayer, columnLayers[columnIndex - 1], request, result, localHitTestRect, newHitTestLocation, |
+ hitLayer = hitTestChildLayerColumns(childLayer, columnLayers[columnIndex - 1], result, localHitTestRect, newHitTestLocation, |
newTransformState.get(), zOffset, columnLayers, columnIndex - 1); |
} |