| 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 257 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 268 | 268 |
| 269 m_frontend = 0; | 269 m_frontend = 0; |
| 270 m_instrumentingAgents->setInspectorDOMAgent(0); | 270 m_instrumentingAgents->setInspectorDOMAgent(0); |
| 271 m_state->setBoolean(DOMAgentState::documentRequested, false); | 271 m_state->setBoolean(DOMAgentState::documentRequested, false); |
| 272 reset(); | 272 reset(); |
| 273 } | 273 } |
| 274 | 274 |
| 275 void InspectorDOMAgent::restore() | 275 void InspectorDOMAgent::restore() |
| 276 { | 276 { |
| 277 // Reset document to avoid early return from setDocument. | 277 // Reset document to avoid early return from setDocument. |
| 278 m_document = 0; | 278 m_document = nullptr; |
| 279 setDocument(m_pageAgent->mainFrame()->document()); | 279 setDocument(m_pageAgent->mainFrame()->document()); |
| 280 } | 280 } |
| 281 | 281 |
| 282 Vector<Document*> InspectorDOMAgent::documents() | 282 Vector<Document*> InspectorDOMAgent::documents() |
| 283 { | 283 { |
| 284 Vector<Document*> result; | 284 Vector<Document*> result; |
| 285 for (Frame* frame = m_document->frame(); frame; frame = frame->tree().traver
seNext()) { | 285 for (Frame* frame = m_document->frame(); frame; frame = frame->tree().traver
seNext()) { |
| 286 Document* document = frame->document(); | 286 Document* document = frame->document(); |
| 287 if (!document) | 287 if (!document) |
| 288 continue; | 288 continue; |
| 289 result.append(document); | 289 result.append(document); |
| 290 } | 290 } |
| 291 return result; | 291 return result; |
| 292 } | 292 } |
| 293 | 293 |
| 294 void InspectorDOMAgent::reset() | 294 void InspectorDOMAgent::reset() |
| 295 { | 295 { |
| 296 discardFrontendBindings(); | 296 discardFrontendBindings(); |
| 297 discardBackendBindings(); | 297 discardBackendBindings(); |
| 298 m_document = 0; | 298 m_document = nullptr; |
| 299 } | 299 } |
| 300 | 300 |
| 301 void InspectorDOMAgent::setDOMListener(DOMListener* listener) | 301 void InspectorDOMAgent::setDOMListener(DOMListener* listener) |
| 302 { | 302 { |
| 303 m_domListener = listener; | 303 m_domListener = listener; |
| 304 } | 304 } |
| 305 | 305 |
| 306 void InspectorDOMAgent::setDocument(Document* doc) | 306 void InspectorDOMAgent::setDocument(Document* doc) |
| 307 { | 307 { |
| 308 if (doc == m_document.get()) | 308 if (doc == m_document.get()) |
| (...skipping 693 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1002 default: | 1002 default: |
| 1003 break; | 1003 break; |
| 1004 } | 1004 } |
| 1005 } | 1005 } |
| 1006 | 1006 |
| 1007 // XPath evaluation | 1007 // XPath evaluation |
| 1008 for (Vector<Document*>::iterator it = docs.begin(); it != docs.end(); ++
it) { | 1008 for (Vector<Document*>::iterator it = docs.begin(); it != docs.end(); ++
it) { |
| 1009 Document* document = *it; | 1009 Document* document = *it; |
| 1010 ASSERT(document); | 1010 ASSERT(document); |
| 1011 TrackExceptionState exceptionState; | 1011 TrackExceptionState exceptionState; |
| 1012 RefPtrWillBeRawPtr<XPathResult> result = DocumentXPathEvaluator::eva
luate(*document, whitespaceTrimmedQuery, document, 0, XPathResult::ORDERED_NODE_
SNAPSHOT_TYPE, 0, exceptionState); | 1012 RefPtrWillBeRawPtr<XPathResult> result = DocumentXPathEvaluator::eva
luate(*document, whitespaceTrimmedQuery, document, nullptr, XPathResult::ORDERED
_NODE_SNAPSHOT_TYPE, 0, exceptionState); |
| 1013 if (exceptionState.hadException() || !result) | 1013 if (exceptionState.hadException() || !result) |
| 1014 continue; | 1014 continue; |
| 1015 | 1015 |
| 1016 unsigned long size = result->snapshotLength(exceptionState); | 1016 unsigned long size = result->snapshotLength(exceptionState); |
| 1017 for (unsigned long i = 0; !exceptionState.hadException() && i < size
; ++i) { | 1017 for (unsigned long i = 0; !exceptionState.hadException() && i < size
; ++i) { |
| 1018 Node* node = result->snapshotItem(i, exceptionState); | 1018 Node* node = result->snapshotItem(i, exceptionState); |
| 1019 if (exceptionState.hadException()) | 1019 if (exceptionState.hadException()) |
| 1020 break; | 1020 break; |
| 1021 | 1021 |
| 1022 if (node->nodeType() == Node::ATTRIBUTE_NODE) | 1022 if (node->nodeType() == Node::ATTRIBUTE_NODE) |
| (...skipping 588 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1611 return children.release(); | 1611 return children.release(); |
| 1612 } | 1612 } |
| 1613 | 1613 |
| 1614 PassRefPtr<TypeBuilder::DOM::EventListener> InspectorDOMAgent::buildObjectForEve
ntListener(const RegisteredEventListener& registeredEventListener, const AtomicS
tring& eventType, Node* node, const String* objectGroupId) | 1614 PassRefPtr<TypeBuilder::DOM::EventListener> InspectorDOMAgent::buildObjectForEve
ntListener(const RegisteredEventListener& registeredEventListener, const AtomicS
tring& eventType, Node* node, const String* objectGroupId) |
| 1615 { | 1615 { |
| 1616 RefPtr<EventListener> eventListener = registeredEventListener.listener; | 1616 RefPtr<EventListener> eventListener = registeredEventListener.listener; |
| 1617 String sourceName; | 1617 String sourceName; |
| 1618 String scriptId; | 1618 String scriptId; |
| 1619 int lineNumber; | 1619 int lineNumber; |
| 1620 if (!eventListenerHandlerLocation(&node->document(), eventListener.get(), so
urceName, scriptId, lineNumber)) | 1620 if (!eventListenerHandlerLocation(&node->document(), eventListener.get(), so
urceName, scriptId, lineNumber)) |
| 1621 return 0; | 1621 return nullptr; |
| 1622 | 1622 |
| 1623 Document& document = node->document(); | 1623 Document& document = node->document(); |
| 1624 RefPtr<TypeBuilder::Debugger::Location> location = TypeBuilder::Debugger::Lo
cation::create() | 1624 RefPtr<TypeBuilder::Debugger::Location> location = TypeBuilder::Debugger::Lo
cation::create() |
| 1625 .setScriptId(scriptId) | 1625 .setScriptId(scriptId) |
| 1626 .setLineNumber(lineNumber); | 1626 .setLineNumber(lineNumber); |
| 1627 RefPtr<TypeBuilder::DOM::EventListener> value = TypeBuilder::DOM::EventListe
ner::create() | 1627 RefPtr<TypeBuilder::DOM::EventListener> value = TypeBuilder::DOM::EventListe
ner::create() |
| 1628 .setType(eventType) | 1628 .setType(eventType) |
| 1629 .setUseCapture(registeredEventListener.useCapture) | 1629 .setUseCapture(registeredEventListener.useCapture) |
| 1630 .setIsAttribute(eventListener->isAttribute()) | 1630 .setIsAttribute(eventListener->isAttribute()) |
| 1631 .setNodeId(pushNodePathToFrontend(node)) | 1631 .setNodeId(pushNodePathToFrontend(node)) |
| (...skipping 16 matching lines...) Expand all Loading... |
| 1648 } | 1648 } |
| 1649 } | 1649 } |
| 1650 if (!sourceName.isEmpty()) | 1650 if (!sourceName.isEmpty()) |
| 1651 value->setSourceName(sourceName); | 1651 value->setSourceName(sourceName); |
| 1652 return value.release(); | 1652 return value.release(); |
| 1653 } | 1653 } |
| 1654 | 1654 |
| 1655 PassRefPtr<TypeBuilder::Array<TypeBuilder::DOM::Node> > InspectorDOMAgent::build
ArrayForPseudoElements(Element* element, NodeToIdMap* nodesMap) | 1655 PassRefPtr<TypeBuilder::Array<TypeBuilder::DOM::Node> > InspectorDOMAgent::build
ArrayForPseudoElements(Element* element, NodeToIdMap* nodesMap) |
| 1656 { | 1656 { |
| 1657 if (!element->pseudoElement(BEFORE) && !element->pseudoElement(AFTER)) | 1657 if (!element->pseudoElement(BEFORE) && !element->pseudoElement(AFTER)) |
| 1658 return 0; | 1658 return nullptr; |
| 1659 | 1659 |
| 1660 RefPtr<TypeBuilder::Array<TypeBuilder::DOM::Node> > pseudoElements = TypeBui
lder::Array<TypeBuilder::DOM::Node>::create(); | 1660 RefPtr<TypeBuilder::Array<TypeBuilder::DOM::Node> > pseudoElements = TypeBui
lder::Array<TypeBuilder::DOM::Node>::create(); |
| 1661 if (element->pseudoElement(BEFORE)) | 1661 if (element->pseudoElement(BEFORE)) |
| 1662 pseudoElements->addItem(buildObjectForNode(element->pseudoElement(BEFORE
), 0, nodesMap)); | 1662 pseudoElements->addItem(buildObjectForNode(element->pseudoElement(BEFORE
), 0, nodesMap)); |
| 1663 if (element->pseudoElement(AFTER)) | 1663 if (element->pseudoElement(AFTER)) |
| 1664 pseudoElements->addItem(buildObjectForNode(element->pseudoElement(AFTER)
, 0, nodesMap)); | 1664 pseudoElements->addItem(buildObjectForNode(element->pseudoElement(AFTER)
, 0, nodesMap)); |
| 1665 return pseudoElements.release(); | 1665 return pseudoElements.release(); |
| 1666 } | 1666 } |
| 1667 | 1667 |
| 1668 Node* InspectorDOMAgent::innerFirstChild(Node* node) | 1668 Node* InspectorDOMAgent::innerFirstChild(Node* node) |
| (...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2030 renderer = renderer->container(); | 2030 renderer = renderer->container(); |
| 2031 Node* resultNode = renderer ? renderer->generatingNode() : node->ownerDocume
nt(); | 2031 Node* resultNode = renderer ? renderer->generatingNode() : node->ownerDocume
nt(); |
| 2032 *relayoutBoundaryNodeId = pushNodePathToFrontend(resultNode); | 2032 *relayoutBoundaryNodeId = pushNodePathToFrontend(resultNode); |
| 2033 } | 2033 } |
| 2034 | 2034 |
| 2035 PassRefPtr<TypeBuilder::Runtime::RemoteObject> InspectorDOMAgent::resolveNode(No
de* node, const String& objectGroup) | 2035 PassRefPtr<TypeBuilder::Runtime::RemoteObject> InspectorDOMAgent::resolveNode(No
de* node, const String& objectGroup) |
| 2036 { | 2036 { |
| 2037 Document* document = node->isDocumentNode() ? &node->document() : node->owne
rDocument(); | 2037 Document* document = node->isDocumentNode() ? &node->document() : node->owne
rDocument(); |
| 2038 Frame* frame = document ? document->frame() : 0; | 2038 Frame* frame = document ? document->frame() : 0; |
| 2039 if (!frame) | 2039 if (!frame) |
| 2040 return 0; | 2040 return nullptr; |
| 2041 | 2041 |
| 2042 InjectedScript injectedScript = m_injectedScriptManager->injectedScriptFor(m
ainWorldScriptState(frame)); | 2042 InjectedScript injectedScript = m_injectedScriptManager->injectedScriptFor(m
ainWorldScriptState(frame)); |
| 2043 if (injectedScript.hasNoValue()) | 2043 if (injectedScript.hasNoValue()) |
| 2044 return 0; | 2044 return nullptr; |
| 2045 | 2045 |
| 2046 return injectedScript.wrapNode(node, objectGroup); | 2046 return injectedScript.wrapNode(node, objectGroup); |
| 2047 } | 2047 } |
| 2048 | 2048 |
| 2049 bool InspectorDOMAgent::pushDocumentUponHandlelessOperation(ErrorString* errorSt
ring) | 2049 bool InspectorDOMAgent::pushDocumentUponHandlelessOperation(ErrorString* errorSt
ring) |
| 2050 { | 2050 { |
| 2051 if (!m_documentNodeToIdMap.contains(m_document)) { | 2051 if (!m_documentNodeToIdMap.contains(m_document)) { |
| 2052 RefPtr<TypeBuilder::DOM::Node> root; | 2052 RefPtr<TypeBuilder::DOM::Node> root; |
| 2053 getDocument(errorString, root); | 2053 getDocument(errorString, root); |
| 2054 return errorString->isEmpty(); | 2054 return errorString->isEmpty(); |
| 2055 } | 2055 } |
| 2056 return true; | 2056 return true; |
| 2057 } | 2057 } |
| 2058 | 2058 |
| 2059 } // namespace WebCore | 2059 } // namespace WebCore |
| 2060 | 2060 |
| OLD | NEW |