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 |