Chromium Code Reviews| Index: Source/devtools/front_end/ui/DOMExtension.js |
| diff --git a/Source/devtools/front_end/ui/DOMExtension.js b/Source/devtools/front_end/ui/DOMExtension.js |
| index d862f94212839c823b06dc74b64cd0f377d55f74..d05f132f402001c59d2f98a10845919c369177d5 100644 |
| --- a/Source/devtools/front_end/ui/DOMExtension.js |
| +++ b/Source/devtools/front_end/ui/DOMExtension.js |
| @@ -791,12 +791,21 @@ Node.prototype.setTextContentTruncatedIfNeeded = function(text, placeholder) |
| /** |
| * @return {?Node} |
| */ |
| -Event.prototype.elementFromPoint = function() |
| +Event.prototype.deepElementFromPoint = function() |
| { |
| + // 1. climb to the component root. |
|
apavlov
2014/10/17 15:40:59
climb -> Climb
|
| var node = this.target; |
| while (node && node.nodeType !== Node.DOCUMENT_FRAGMENT_NODE && node.nodeType !== Node.DOCUMENT_NODE) |
| node = node.parentNode; |
| - return node ? node.elementFromPoint(this.pageX, this.pageY) : null; |
| + |
| + if (!node) |
| + return null; |
| + |
| + // 2. Find deepest node by coordinates. |
| + node = node.elementFromPoint(this.pageX, this.pageY); |
| + while (node && node.shadowRoot) |
| + node = node.shadowRoot.elementFromPoint(this.pageX, this.pageY); |
| + return node; |
| } |
| /** |