OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2009 Apple Inc. All rights reserved. | 2 * Copyright (C) 2009 Apple Inc. All rights reserved. |
3 * Copyright (C) 2011 Google Inc. All rights reserved. | 3 * Copyright (C) 2011 Google Inc. All rights reserved. |
4 * Copyright (C) 2009 Joseph Pecoraro | 4 * Copyright (C) 2009 Joseph Pecoraro |
5 * | 5 * |
6 * Redistribution and use in source and binary forms, with or without | 6 * Redistribution and use in source and binary forms, with or without |
7 * modification, are permitted provided that the following conditions | 7 * modification, are permitted provided that the following conditions |
8 * are met: | 8 * are met: |
9 * | 9 * |
10 * 1. Redistributions of source code must retain the above copyright | 10 * 1. Redistributions of source code must retain the above copyright |
(...skipping 20 matching lines...) Expand all Loading... |
31 #include "config.h" | 31 #include "config.h" |
32 #include "core/inspector/InspectorDOMAgent.h" | 32 #include "core/inspector/InspectorDOMAgent.h" |
33 | 33 |
34 #include "bindings/core/v8/ExceptionState.h" | 34 #include "bindings/core/v8/ExceptionState.h" |
35 #include "bindings/core/v8/ScriptEventListener.h" | 35 #include "bindings/core/v8/ScriptEventListener.h" |
36 #include "core/InputTypeNames.h" | 36 #include "core/InputTypeNames.h" |
37 #include "core/dom/Attr.h" | 37 #include "core/dom/Attr.h" |
38 #include "core/dom/CharacterData.h" | 38 #include "core/dom/CharacterData.h" |
39 #include "core/dom/ContainerNode.h" | 39 #include "core/dom/ContainerNode.h" |
40 #include "core/dom/DOMException.h" | 40 #include "core/dom/DOMException.h" |
| 41 #include "core/dom/DOMNodeIds.h" |
41 #include "core/dom/Document.h" | 42 #include "core/dom/Document.h" |
42 #include "core/dom/DocumentFragment.h" | 43 #include "core/dom/DocumentFragment.h" |
43 #include "core/dom/DocumentType.h" | 44 #include "core/dom/DocumentType.h" |
44 #include "core/dom/Element.h" | 45 #include "core/dom/Element.h" |
45 #include "core/dom/Node.h" | 46 #include "core/dom/Node.h" |
46 #include "core/dom/PseudoElement.h" | 47 #include "core/dom/PseudoElement.h" |
47 #include "core/dom/StaticNodeList.h" | 48 #include "core/dom/StaticNodeList.h" |
48 #include "core/dom/Text.h" | 49 #include "core/dom/Text.h" |
49 #include "core/dom/shadow/ElementShadow.h" | 50 #include "core/dom/shadow/ElementShadow.h" |
50 #include "core/dom/shadow/InsertionPoint.h" | 51 #include "core/dom/shadow/InsertionPoint.h" |
(...skipping 10 matching lines...) Expand all Loading... |
61 #include "core/html/HTMLTemplateElement.h" | 62 #include "core/html/HTMLTemplateElement.h" |
62 #include "core/html/imports/HTMLImportChild.h" | 63 #include "core/html/imports/HTMLImportChild.h" |
63 #include "core/html/imports/HTMLImportLoader.h" | 64 #include "core/html/imports/HTMLImportLoader.h" |
64 #include "core/inspector/DOMEditor.h" | 65 #include "core/inspector/DOMEditor.h" |
65 #include "core/inspector/DOMPatchSupport.h" | 66 #include "core/inspector/DOMPatchSupport.h" |
66 #include "core/inspector/IdentifiersFactory.h" | 67 #include "core/inspector/IdentifiersFactory.h" |
67 #include "core/inspector/InjectedScriptHost.h" | 68 #include "core/inspector/InjectedScriptHost.h" |
68 #include "core/inspector/InjectedScriptManager.h" | 69 #include "core/inspector/InjectedScriptManager.h" |
69 #include "core/inspector/InspectorHighlight.h" | 70 #include "core/inspector/InspectorHighlight.h" |
70 #include "core/inspector/InspectorHistory.h" | 71 #include "core/inspector/InspectorHistory.h" |
71 #include "core/inspector/InspectorNodeIds.h" | |
72 #include "core/inspector/InspectorOverlay.h" | 72 #include "core/inspector/InspectorOverlay.h" |
73 #include "core/inspector/InspectorPageAgent.h" | 73 #include "core/inspector/InspectorPageAgent.h" |
74 #include "core/inspector/InspectorState.h" | 74 #include "core/inspector/InspectorState.h" |
75 #include "core/inspector/InstrumentingAgents.h" | 75 #include "core/inspector/InstrumentingAgents.h" |
76 #include "core/layout/HitTestResult.h" | 76 #include "core/layout/HitTestResult.h" |
77 #include "core/layout/LayoutView.h" | 77 #include "core/layout/LayoutView.h" |
78 #include "core/loader/DocumentLoader.h" | 78 #include "core/loader/DocumentLoader.h" |
79 #include "core/page/FrameTree.h" | 79 #include "core/page/FrameTree.h" |
80 #include "core/page/Page.h" | 80 #include "core/page/Page.h" |
81 #include "core/xml/DocumentXPathEvaluator.h" | 81 #include "core/xml/DocumentXPathEvaluator.h" |
(...skipping 1144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1226 { | 1226 { |
1227 if (!inspectedNode) | 1227 if (!inspectedNode) |
1228 return; | 1228 return; |
1229 | 1229 |
1230 Node* node = inspectedNode; | 1230 Node* node = inspectedNode; |
1231 while (node && !node->isElementNode() && !node->isDocumentNode() && !node->i
sDocumentFragment()) | 1231 while (node && !node->isElementNode() && !node->isDocumentNode() && !node->i
sDocumentFragment()) |
1232 node = node->parentOrShadowHostNode(); | 1232 node = node->parentOrShadowHostNode(); |
1233 if (!node) | 1233 if (!node) |
1234 return; | 1234 return; |
1235 | 1235 |
1236 int backendNodeId = InspectorNodeIds::idForNode(node); | 1236 int backendNodeId = DOMNodeIds::idForNode(node); |
1237 if (!frontend() || !enabled()) { | 1237 if (!frontend() || !enabled()) { |
1238 m_backendNodeIdToInspect = backendNodeId; | 1238 m_backendNodeIdToInspect = backendNodeId; |
1239 return; | 1239 return; |
1240 } | 1240 } |
1241 | 1241 |
1242 frontend()->inspectNodeRequested(backendNodeId); | 1242 frontend()->inspectNodeRequested(backendNodeId); |
1243 } | 1243 } |
1244 | 1244 |
1245 bool InspectorDOMAgent::handleMouseMove(LocalFrame* frame, const PlatformMouseEv
ent& event) | 1245 bool InspectorDOMAgent::handleMouseMove(LocalFrame* frame, const PlatformMouseEv
ent& event) |
1246 { | 1246 { |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1353 highlightConfig->contentOutline = parseColor(outlineColor); | 1353 highlightConfig->contentOutline = parseColor(outlineColor); |
1354 m_overlay->highlightQuad(quad, *highlightConfig); | 1354 m_overlay->highlightQuad(quad, *highlightConfig); |
1355 } | 1355 } |
1356 | 1356 |
1357 void InspectorDOMAgent::highlightNode(ErrorString* errorString, const RefPtr<JSO
NObject>& highlightInspectorObject, const int* nodeId, const int* backendNodeId,
const String* objectId) | 1357 void InspectorDOMAgent::highlightNode(ErrorString* errorString, const RefPtr<JSO
NObject>& highlightInspectorObject, const int* nodeId, const int* backendNodeId,
const String* objectId) |
1358 { | 1358 { |
1359 Node* node = nullptr; | 1359 Node* node = nullptr; |
1360 if (nodeId) { | 1360 if (nodeId) { |
1361 node = assertNode(errorString, *nodeId); | 1361 node = assertNode(errorString, *nodeId); |
1362 } else if (backendNodeId) { | 1362 } else if (backendNodeId) { |
1363 node = InspectorNodeIds::nodeForId(*backendNodeId); | 1363 node = DOMNodeIds::nodeForId(*backendNodeId); |
1364 } else if (objectId) { | 1364 } else if (objectId) { |
1365 InjectedScript injectedScript = m_injectedScriptManager->injectedScriptF
orObjectId(*objectId); | 1365 InjectedScript injectedScript = m_injectedScriptManager->injectedScriptF
orObjectId(*objectId); |
1366 node = injectedScript.nodeForObjectId(*objectId); | 1366 node = injectedScript.nodeForObjectId(*objectId); |
1367 if (!node) | 1367 if (!node) |
1368 *errorString = "Node for given objectId not found"; | 1368 *errorString = "Node for given objectId not found"; |
1369 } else | 1369 } else |
1370 *errorString = "Either nodeId or objectId must be specified"; | 1370 *errorString = "Either nodeId or objectId must be specified"; |
1371 | 1371 |
1372 if (!node) | 1372 if (!node) |
1373 return; | 1373 return; |
(...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1812 { | 1812 { |
1813 RefPtr<TypeBuilder::Array<TypeBuilder::DOM::BackendNode>> distributedNodes =
TypeBuilder::Array<TypeBuilder::DOM::BackendNode>::create(); | 1813 RefPtr<TypeBuilder::Array<TypeBuilder::DOM::BackendNode>> distributedNodes =
TypeBuilder::Array<TypeBuilder::DOM::BackendNode>::create(); |
1814 for (size_t i = 0; i < insertionPoint->size(); ++i) { | 1814 for (size_t i = 0; i < insertionPoint->size(); ++i) { |
1815 Node* distributedNode = insertionPoint->at(i); | 1815 Node* distributedNode = insertionPoint->at(i); |
1816 if (isWhitespace(distributedNode)) | 1816 if (isWhitespace(distributedNode)) |
1817 continue; | 1817 continue; |
1818 | 1818 |
1819 RefPtr<TypeBuilder::DOM::BackendNode> backendNode = TypeBuilder::DOM::Ba
ckendNode::create() | 1819 RefPtr<TypeBuilder::DOM::BackendNode> backendNode = TypeBuilder::DOM::Ba
ckendNode::create() |
1820 .setNodeType(distributedNode->nodeType()) | 1820 .setNodeType(distributedNode->nodeType()) |
1821 .setNodeName(distributedNode->nodeName()) | 1821 .setNodeName(distributedNode->nodeName()) |
1822 .setBackendNodeId(InspectorNodeIds::idForNode(distributedNode)); | 1822 .setBackendNodeId(DOMNodeIds::idForNode(distributedNode)); |
1823 distributedNodes->addItem(backendNode.release()); | 1823 distributedNodes->addItem(backendNode.release()); |
1824 } | 1824 } |
1825 return distributedNodes.release(); | 1825 return distributedNodes.release(); |
1826 } | 1826 } |
1827 | 1827 |
1828 Node* InspectorDOMAgent::innerFirstChild(Node* node) | 1828 Node* InspectorDOMAgent::innerFirstChild(Node* node) |
1829 { | 1829 { |
1830 node = node->firstChild(); | 1830 node = node->firstChild(); |
1831 while (isWhitespace(node)) | 1831 while (isWhitespace(node)) |
1832 node = node->nextSibling(); | 1832 node = node->nextSibling(); |
(...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2200 { | 2200 { |
2201 result = TypeBuilder::Array<int>::create(); | 2201 result = TypeBuilder::Array<int>::create(); |
2202 for (const auto& backendNode : *backendNodeIds) { | 2202 for (const auto& backendNode : *backendNodeIds) { |
2203 int backendNodeId; | 2203 int backendNodeId; |
2204 | 2204 |
2205 if (!(backendNode)->asNumber(&backendNodeId)) { | 2205 if (!(backendNode)->asNumber(&backendNodeId)) { |
2206 *errorString = "Invalid argument type"; | 2206 *errorString = "Invalid argument type"; |
2207 return; | 2207 return; |
2208 } | 2208 } |
2209 | 2209 |
2210 Node* node = InspectorNodeIds::nodeForId(backendNodeId); | 2210 Node* node = DOMNodeIds::nodeForId(backendNodeId); |
2211 if (node && node->document().frame()->instrumentingAgents() == m_pageAge
nt->inspectedFrame()->instrumentingAgents()) | 2211 if (node && node->document().frame()->instrumentingAgents() == m_pageAge
nt->inspectedFrame()->instrumentingAgents()) |
2212 result->addItem(pushNodePathToFrontend(node)); | 2212 result->addItem(pushNodePathToFrontend(node)); |
2213 else | 2213 else |
2214 result->addItem(0); | 2214 result->addItem(0); |
2215 } | 2215 } |
2216 } | 2216 } |
2217 | 2217 |
2218 class InspectableNode final : public InjectedScriptHost::InspectableObject { | 2218 class InspectableNode final : public InjectedScriptHost::InspectableObject { |
2219 public: | 2219 public: |
2220 explicit InspectableNode(Node* node) : m_node(node) { } | 2220 explicit InspectableNode(Node* node) : m_node(node) { } |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2299 visitor->trace(m_searchResults); | 2299 visitor->trace(m_searchResults); |
2300 #endif | 2300 #endif |
2301 visitor->trace(m_hoveredNodeForInspectMode); | 2301 visitor->trace(m_hoveredNodeForInspectMode); |
2302 visitor->trace(m_history); | 2302 visitor->trace(m_history); |
2303 visitor->trace(m_domEditor); | 2303 visitor->trace(m_domEditor); |
2304 visitor->trace(m_listener); | 2304 visitor->trace(m_listener); |
2305 InspectorBaseAgent::trace(visitor); | 2305 InspectorBaseAgent::trace(visitor); |
2306 } | 2306 } |
2307 | 2307 |
2308 } // namespace blink | 2308 } // namespace blink |
OLD | NEW |