Chromium Code Reviews| Index: Source/core/layout/HitTestResult.cpp |
| diff --git a/Source/core/layout/HitTestResult.cpp b/Source/core/layout/HitTestResult.cpp |
| index 67ff7574695ae358d378b24caf21c635c7a567a9..05b5c6d3e573e5ec1961168fe9519f99fce7645d 100644 |
| --- a/Source/core/layout/HitTestResult.cpp |
| +++ b/Source/core/layout/HitTestResult.cpp |
| @@ -159,6 +159,15 @@ void HitTestResult::setInnerNode(Node* n) |
| if (n && n->isPseudoElement()) |
| n = toPseudoElement(n)->findAssociatedNode(); |
| m_innerNode = n; |
| + |
|
pdr.
2015/04/24 21:48:23
Instead of duplicating this logic here, what if we
|
| + Element* shadowHost = n->shadowHost(); |
| + if (!shadowHost || !isHTMLImageElement(shadowHost)) |
| + return; |
| + HTMLMapElement* map = toHTMLImageElement(shadowHost)->treeScope().getImageMap(toHTMLImageElement(shadowHost)->fastGetAttribute(usemapAttr)); |
| + if (!map) |
| + return; |
| + if (HTMLAreaElement* area = map->areaForPoint(localPoint(), toLayoutBox(layoutObject())->contentBoxRect().size())) |
| + m_innerNode = area; |
| } |
| void HitTestResult::setURLElement(Element* n) |