| Index: Source/core/rendering/HitTestResult.cpp
|
| diff --git a/Source/core/rendering/HitTestResult.cpp b/Source/core/rendering/HitTestResult.cpp
|
| index 9c4604f12e76c559f28e037a5d5a86293441e616..b7254e9552ff4068050132fa6afd5a28c3ef65d3 100644
|
| --- a/Source/core/rendering/HitTestResult.cpp
|
| +++ b/Source/core/rendering/HitTestResult.cpp
|
| @@ -464,15 +464,19 @@ HitTestResult::NodeSet& HitTestResult::mutableRectBasedTestResult()
|
|
|
| void HitTestResult::resolveRectBasedTest(Node* resolvedInnerNode, const LayoutPoint& resolvedPointInMainFrame)
|
| {
|
| - // FIXME: For maximum fidelity with point-based hit tests we should probably make use
|
| - // of RenderObject::updateHitTestResult here. See http://crbug.com/398914.
|
| ASSERT(isRectBasedTest());
|
| ASSERT(m_hitTestLocation.containsPoint(resolvedPointInMainFrame));
|
| - setInnerNode(resolvedInnerNode);
|
| - setInnerNonSharedNode(resolvedInnerNode);
|
| m_hitTestLocation = HitTestLocation(resolvedPointInMainFrame);
|
| m_pointInInnerNodeFrame = resolvedPointInMainFrame;
|
| + m_innerNode = nullptr;
|
| + m_innerNonSharedNode = nullptr;
|
| + m_innerPossiblyPseudoNode = nullptr;
|
| m_rectBasedTestResult = nullptr;
|
| +
|
| + // Update the HitTestResult as if the supplied node had been hit in normal point-based hit-test.
|
| + // Note that we don't know the local point after a rect-based hit-test, but we never use
|
| + // it so shouldn't bother with the cost of computing it.
|
| + resolvedInnerNode->renderer()->updateHitTestResult(*this, LayoutPoint());
|
| ASSERT(!isRectBasedTest());
|
| }
|
|
|
|
|