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 |