| 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 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 307 m_idToNode.set(id, node); | 307 m_idToNode.set(id, node); |
| 308 m_idToNodesMap.set(id, nodesMap); | 308 m_idToNodesMap.set(id, nodesMap); |
| 309 return id; | 309 return id; |
| 310 } | 310 } |
| 311 | 311 |
| 312 void InspectorDOMAgent::unbind(Node* node, NodeToIdMap* nodesMap) { | 312 void InspectorDOMAgent::unbind(Node* node, NodeToIdMap* nodesMap) { |
| 313 int id = nodesMap->get(node); | 313 int id = nodesMap->get(node); |
| 314 if (!id) | 314 if (!id) |
| 315 return; | 315 return; |
| 316 | 316 |
| 317 m_idToNode.remove(id); | 317 m_idToNode.erase(id); |
| 318 m_idToNodesMap.remove(id); | 318 m_idToNodesMap.erase(id); |
| 319 | 319 |
| 320 if (node->isFrameOwnerElement()) { | 320 if (node->isFrameOwnerElement()) { |
| 321 Document* contentDocument = | 321 Document* contentDocument = |
| 322 toHTMLFrameOwnerElement(node)->contentDocument(); | 322 toHTMLFrameOwnerElement(node)->contentDocument(); |
| 323 if (m_domListener) | 323 if (m_domListener) |
| 324 m_domListener->didRemoveDocument(contentDocument); | 324 m_domListener->didRemoveDocument(contentDocument); |
| 325 if (contentDocument) | 325 if (contentDocument) |
| 326 unbind(contentDocument, nodesMap); | 326 unbind(contentDocument, nodesMap); |
| 327 } | 327 } |
| 328 | 328 |
| 329 for (ShadowRoot* root = node->youngestShadowRoot(); root; | 329 for (ShadowRoot* root = node->youngestShadowRoot(); root; |
| 330 root = root->olderShadowRoot()) | 330 root = root->olderShadowRoot()) |
| 331 unbind(root, nodesMap); | 331 unbind(root, nodesMap); |
| 332 | 332 |
| 333 if (node->isElementNode()) { | 333 if (node->isElementNode()) { |
| 334 Element* element = toElement(node); | 334 Element* element = toElement(node); |
| 335 if (element->pseudoElement(PseudoIdBefore)) | 335 if (element->pseudoElement(PseudoIdBefore)) |
| 336 unbind(element->pseudoElement(PseudoIdBefore), nodesMap); | 336 unbind(element->pseudoElement(PseudoIdBefore), nodesMap); |
| 337 if (element->pseudoElement(PseudoIdAfter)) | 337 if (element->pseudoElement(PseudoIdAfter)) |
| 338 unbind(element->pseudoElement(PseudoIdAfter), nodesMap); | 338 unbind(element->pseudoElement(PseudoIdAfter), nodesMap); |
| 339 | 339 |
| 340 if (isHTMLLinkElement(*element)) { | 340 if (isHTMLLinkElement(*element)) { |
| 341 HTMLLinkElement& linkElement = toHTMLLinkElement(*element); | 341 HTMLLinkElement& linkElement = toHTMLLinkElement(*element); |
| 342 if (linkElement.isImport() && linkElement.import()) | 342 if (linkElement.isImport() && linkElement.import()) |
| 343 unbind(linkElement.import(), nodesMap); | 343 unbind(linkElement.import(), nodesMap); |
| 344 } | 344 } |
| 345 } | 345 } |
| 346 | 346 |
| 347 nodesMap->remove(node); | 347 nodesMap->erase(node); |
| 348 if (m_domListener) | 348 if (m_domListener) |
| 349 m_domListener->didRemoveDOMNode(node); | 349 m_domListener->didRemoveDOMNode(node); |
| 350 | 350 |
| 351 bool childrenRequested = m_childrenRequested.contains(id); | 351 bool childrenRequested = m_childrenRequested.contains(id); |
| 352 if (childrenRequested) { | 352 if (childrenRequested) { |
| 353 // Unbind subtree known to client recursively. | 353 // Unbind subtree known to client recursively. |
| 354 m_childrenRequested.remove(id); | 354 m_childrenRequested.remove(id); |
| 355 Node* child = innerFirstChild(node); | 355 Node* child = innerFirstChild(node); |
| 356 while (child) { | 356 while (child) { |
| 357 unbind(child, nodesMap); | 357 unbind(child, nodesMap); |
| 358 child = innerNextSibling(child); | 358 child = innerNextSibling(child); |
| 359 } | 359 } |
| 360 } | 360 } |
| 361 if (nodesMap == m_documentNodeToIdMap.get()) | 361 if (nodesMap == m_documentNodeToIdMap.get()) |
| 362 m_cachedChildCount.remove(id); | 362 m_cachedChildCount.erase(id); |
| 363 } | 363 } |
| 364 | 364 |
| 365 Response InspectorDOMAgent::assertNode(int nodeId, Node*& node) { | 365 Response InspectorDOMAgent::assertNode(int nodeId, Node*& node) { |
| 366 node = nodeForId(nodeId); | 366 node = nodeForId(nodeId); |
| 367 if (!node) | 367 if (!node) |
| 368 return Response::Error("Could not find node with given id"); | 368 return Response::Error("Could not find node with given id"); |
| 369 return Response::OK(); | 369 return Response::OK(); |
| 370 } | 370 } |
| 371 | 371 |
| 372 Response InspectorDOMAgent::assertElement(int nodeId, Element*& element) { | 372 Response InspectorDOMAgent::assertElement(int nodeId, Element*& element) { |
| (...skipping 716 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1089 if (fromIndex < 0 || toIndex > size || fromIndex >= toIndex) | 1089 if (fromIndex < 0 || toIndex > size || fromIndex >= toIndex) |
| 1090 return Response::Error("Invalid search result range"); | 1090 return Response::Error("Invalid search result range"); |
| 1091 | 1091 |
| 1092 *nodeIds = protocol::Array<int>::create(); | 1092 *nodeIds = protocol::Array<int>::create(); |
| 1093 for (int i = fromIndex; i < toIndex; ++i) | 1093 for (int i = fromIndex; i < toIndex; ++i) |
| 1094 (*nodeIds)->addItem(pushNodePathToFrontend((it->value)[i].get())); | 1094 (*nodeIds)->addItem(pushNodePathToFrontend((it->value)[i].get())); |
| 1095 return Response::OK(); | 1095 return Response::OK(); |
| 1096 } | 1096 } |
| 1097 | 1097 |
| 1098 Response InspectorDOMAgent::discardSearchResults(const String& searchId) { | 1098 Response InspectorDOMAgent::discardSearchResults(const String& searchId) { |
| 1099 m_searchResults.remove(searchId); | 1099 m_searchResults.erase(searchId); |
| 1100 return Response::OK(); | 1100 return Response::OK(); |
| 1101 } | 1101 } |
| 1102 | 1102 |
| 1103 void InspectorDOMAgent::inspect(Node* inspectedNode) { | 1103 void InspectorDOMAgent::inspect(Node* inspectedNode) { |
| 1104 if (!inspectedNode) | 1104 if (!inspectedNode) |
| 1105 return; | 1105 return; |
| 1106 | 1106 |
| 1107 Node* node = inspectedNode; | 1107 Node* node = inspectedNode; |
| 1108 while (node && !node->isElementNode() && !node->isDocumentNode() && | 1108 while (node && !node->isElementNode() && !node->isDocumentNode() && |
| 1109 !node->isDocumentFragment()) | 1109 !node->isDocumentFragment()) |
| (...skipping 1166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2276 visitor->trace(m_idToNodesMap); | 2276 visitor->trace(m_idToNodesMap); |
| 2277 visitor->trace(m_document); | 2277 visitor->trace(m_document); |
| 2278 visitor->trace(m_revalidateTask); | 2278 visitor->trace(m_revalidateTask); |
| 2279 visitor->trace(m_searchResults); | 2279 visitor->trace(m_searchResults); |
| 2280 visitor->trace(m_history); | 2280 visitor->trace(m_history); |
| 2281 visitor->trace(m_domEditor); | 2281 visitor->trace(m_domEditor); |
| 2282 InspectorBaseAgent::trace(visitor); | 2282 InspectorBaseAgent::trace(visitor); |
| 2283 } | 2283 } |
| 2284 | 2284 |
| 2285 } // namespace blink | 2285 } // namespace blink |
| OLD | NEW |