| Index: Source/core/inspector/InspectorDOMAgent.cpp
|
| diff --git a/Source/core/inspector/InspectorDOMAgent.cpp b/Source/core/inspector/InspectorDOMAgent.cpp
|
| index 5bd52e88fae5a2573c2f22ad2ac9e1b29ddccb14..619e8cbeb45a79f8d10c0424f8b2f83fc9619ae3 100644
|
| --- a/Source/core/inspector/InspectorDOMAgent.cpp
|
| +++ b/Source/core/inspector/InspectorDOMAgent.cpp
|
| @@ -155,7 +155,6 @@ static Node* hoveredNodeForPoint(Frame* frame, const IntPoint& point, bool ignor
|
| HitTestRequest request(hitType);
|
| HitTestResult result(frame->view()->windowToContents(point));
|
| frame->contentRenderer()->hitTest(request, result);
|
| - result.setToShadowHostIfInUserAgentShadowRoot();
|
| Node* node = result.innerNode();
|
| while (node && node->nodeType() == Node::TEXT_NODE)
|
| node = node->parentNode();
|
| @@ -1373,14 +1372,7 @@ PassRefPtr<TypeBuilder::DOM::Node> InspectorDOMAgent::buildObjectForNode(Node* n
|
| .setLocalName(localName)
|
| .setNodeValue(nodeValue);
|
|
|
| - if (node->isContainerNode()) {
|
| - int nodeCount = innerChildNodeCount(node);
|
| - value->setChildNodeCount(nodeCount);
|
| - RefPtr<TypeBuilder::Array<TypeBuilder::DOM::Node> > children = buildArrayForContainerChildren(node, depth, nodesMap);
|
| - if (children->length() > 0)
|
| - value->setChildren(children.release());
|
| - }
|
| -
|
| + bool forcePushChildren = false;
|
| if (node->isElementNode()) {
|
| Element* element = toElement(node);
|
| value->setAttributes(buildArrayForElementAttributes(element));
|
| @@ -1400,10 +1392,13 @@ PassRefPtr<TypeBuilder::DOM::Node> InspectorDOMAgent::buildObjectForNode(Node* n
|
| for (ShadowRoot* root = shadow->youngestShadowRoot(); root; root = root->olderShadowRoot())
|
| shadowRoots->addItem(buildObjectForNode(root, 0, nodesMap));
|
| value->setShadowRoots(shadowRoots);
|
| + forcePushChildren = true;
|
| }
|
|
|
| - if (element->hasTagName(templateTag))
|
| + if (element->hasTagName(templateTag)) {
|
| value->setTemplateContent(buildObjectForNode(static_cast<HTMLTemplateElement*>(element)->content(), 0, nodesMap));
|
| + forcePushChildren = true;
|
| + }
|
| } else if (node->isDocumentNode()) {
|
| Document* document = toDocument(node);
|
| value->setDocumentURL(documentURLString(document));
|
| @@ -1419,6 +1414,17 @@ PassRefPtr<TypeBuilder::DOM::Node> InspectorDOMAgent::buildObjectForNode(Node* n
|
| value->setName(attribute->name());
|
| value->setValue(attribute->value());
|
| }
|
| +
|
| + if (node->isContainerNode()) {
|
| + int nodeCount = innerChildNodeCount(node);
|
| + value->setChildNodeCount(nodeCount);
|
| + if (forcePushChildren && !depth)
|
| + depth = 1;
|
| + RefPtr<TypeBuilder::Array<TypeBuilder::DOM::Node> > children = buildArrayForContainerChildren(node, depth, nodesMap);
|
| + if (children->length() > 0 || depth) // Push children along with shadow in any case.
|
| + value->setChildren(children.release());
|
| + }
|
| +
|
| return value.release();
|
| }
|
|
|
|
|