| 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 14 matching lines...) Expand all Loading... |
| 25 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 25 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
| 26 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 26 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
| 28 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 29 */ | 29 */ |
| 30 | 30 |
| 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" | |
| 36 #include "core/InputTypeNames.h" | 35 #include "core/InputTypeNames.h" |
| 37 #include "core/dom/Attr.h" | 36 #include "core/dom/Attr.h" |
| 38 #include "core/dom/CharacterData.h" | 37 #include "core/dom/CharacterData.h" |
| 39 #include "core/dom/ContainerNode.h" | 38 #include "core/dom/ContainerNode.h" |
| 40 #include "core/dom/DOMException.h" | 39 #include "core/dom/DOMException.h" |
| 41 #include "core/dom/DOMNodeIds.h" | 40 #include "core/dom/DOMNodeIds.h" |
| 42 #include "core/dom/Document.h" | 41 #include "core/dom/Document.h" |
| 43 #include "core/dom/DocumentFragment.h" | 42 #include "core/dom/DocumentFragment.h" |
| 44 #include "core/dom/DocumentType.h" | 43 #include "core/dom/DocumentType.h" |
| 45 #include "core/dom/Element.h" | 44 #include "core/dom/Element.h" |
| (...skipping 11 matching lines...) Expand all Loading... |
| 57 #include "core/fileapi/FileList.h" | 56 #include "core/fileapi/FileList.h" |
| 58 #include "core/frame/LocalFrame.h" | 57 #include "core/frame/LocalFrame.h" |
| 59 #include "core/html/HTMLFrameOwnerElement.h" | 58 #include "core/html/HTMLFrameOwnerElement.h" |
| 60 #include "core/html/HTMLInputElement.h" | 59 #include "core/html/HTMLInputElement.h" |
| 61 #include "core/html/HTMLLinkElement.h" | 60 #include "core/html/HTMLLinkElement.h" |
| 62 #include "core/html/HTMLTemplateElement.h" | 61 #include "core/html/HTMLTemplateElement.h" |
| 63 #include "core/html/imports/HTMLImportChild.h" | 62 #include "core/html/imports/HTMLImportChild.h" |
| 64 #include "core/html/imports/HTMLImportLoader.h" | 63 #include "core/html/imports/HTMLImportLoader.h" |
| 65 #include "core/inspector/DOMEditor.h" | 64 #include "core/inspector/DOMEditor.h" |
| 66 #include "core/inspector/DOMPatchSupport.h" | 65 #include "core/inspector/DOMPatchSupport.h" |
| 67 #include "core/inspector/EventListenerInfo.h" | |
| 68 #include "core/inspector/IdentifiersFactory.h" | 66 #include "core/inspector/IdentifiersFactory.h" |
| 69 #include "core/inspector/InjectedScriptHost.h" | 67 #include "core/inspector/InjectedScriptHost.h" |
| 70 #include "core/inspector/InjectedScriptManager.h" | 68 #include "core/inspector/InjectedScriptManager.h" |
| 71 #include "core/inspector/InspectorHighlight.h" | 69 #include "core/inspector/InspectorHighlight.h" |
| 72 #include "core/inspector/InspectorHistory.h" | 70 #include "core/inspector/InspectorHistory.h" |
| 73 #include "core/inspector/InspectorIdentifiers.h" | 71 #include "core/inspector/InspectorIdentifiers.h" |
| 74 #include "core/inspector/InspectorOverlay.h" | 72 #include "core/inspector/InspectorOverlay.h" |
| 75 #include "core/inspector/InspectorPageAgent.h" | 73 #include "core/inspector/InspectorPageAgent.h" |
| 76 #include "core/inspector/InspectorState.h" | 74 #include "core/inspector/InspectorState.h" |
| 77 #include "core/inspector/InstrumentingAgents.h" | 75 #include "core/inspector/InstrumentingAgents.h" |
| (...skipping 848 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 926 return; | 924 return; |
| 927 | 925 |
| 928 if (node->nodeType() != Node::TEXT_NODE) { | 926 if (node->nodeType() != Node::TEXT_NODE) { |
| 929 *errorString = "Can only set value of text nodes"; | 927 *errorString = "Can only set value of text nodes"; |
| 930 return; | 928 return; |
| 931 } | 929 } |
| 932 | 930 |
| 933 m_domEditor->replaceWholeText(toText(node), value, errorString); | 931 m_domEditor->replaceWholeText(toText(node), value, errorString); |
| 934 } | 932 } |
| 935 | 933 |
| 936 void InspectorDOMAgent::getEventListenersForNode(ErrorString* errorString, int n
odeId, const String* objectGroup, RefPtr<TypeBuilder::Array<TypeBuilder::DOM::Ev
entListener> >& listenersArray) | |
| 937 { | |
| 938 listenersArray = TypeBuilder::Array<TypeBuilder::DOM::EventListener>::create
(); | |
| 939 Node* node = assertNode(errorString, nodeId); | |
| 940 if (!node) | |
| 941 return; | |
| 942 Vector<EventListenerInfo> eventInformation; | |
| 943 EventListenerInfo::getEventListeners(node, eventInformation, true); | |
| 944 if (!eventInformation.size()) | |
| 945 return; | |
| 946 RegisteredEventListenerIterator iterator(eventInformation); | |
| 947 while (const RegisteredEventListener* listener = iterator.nextRegisteredEven
tListener()) { | |
| 948 const EventListenerInfo& info = iterator.currentEventListenerInfo(); | |
| 949 RefPtr<TypeBuilder::DOM::EventListener> listenerObject = buildObjectForE
ventListener(*listener, info.eventType, info.eventTarget->toNode(), objectGroup)
; | |
| 950 if (listenerObject) | |
| 951 listenersArray->addItem(listenerObject); | |
| 952 } | |
| 953 } | |
| 954 | |
| 955 static Node* nextNodeWithShadowDOMInMind(const Node& current, const Node* stayWi
thin, bool includeUserAgentShadowDOM) | 934 static Node* nextNodeWithShadowDOMInMind(const Node& current, const Node* stayWi
thin, bool includeUserAgentShadowDOM) |
| 956 { | 935 { |
| 957 // At first traverse the subtree. | 936 // At first traverse the subtree. |
| 958 if (current.isElementNode()) { | 937 if (current.isElementNode()) { |
| 959 const Element& element = toElement(current); | 938 const Element& element = toElement(current); |
| 960 ElementShadow* elementShadow = element.shadow(); | 939 ElementShadow* elementShadow = element.shadow(); |
| 961 if (elementShadow) { | 940 if (elementShadow) { |
| 962 ShadowRoot* shadowRoot = elementShadow->youngestShadowRoot(); | 941 ShadowRoot* shadowRoot = elementShadow->youngestShadowRoot(); |
| 963 if (shadowRoot) { | 942 if (shadowRoot) { |
| 964 if (shadowRoot->type() == ShadowRoot::OpenShadowRoot || includeU
serAgentShadowDOM) | 943 if (shadowRoot->type() == ShadowRoot::OpenShadowRoot || includeU
serAgentShadowDOM) |
| (...skipping 735 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1700 depth--; | 1679 depth--; |
| 1701 m_childrenRequested.add(bind(container, nodesMap)); | 1680 m_childrenRequested.add(bind(container, nodesMap)); |
| 1702 | 1681 |
| 1703 while (child) { | 1682 while (child) { |
| 1704 children->addItem(buildObjectForNode(child, depth, nodesMap)); | 1683 children->addItem(buildObjectForNode(child, depth, nodesMap)); |
| 1705 child = innerNextSibling(child); | 1684 child = innerNextSibling(child); |
| 1706 } | 1685 } |
| 1707 return children.release(); | 1686 return children.release(); |
| 1708 } | 1687 } |
| 1709 | 1688 |
| 1710 PassRefPtr<TypeBuilder::DOM::EventListener> InspectorDOMAgent::buildObjectForEve
ntListener(const RegisteredEventListener& registeredEventListener, const AtomicS
tring& eventType, Node* node, const String* objectGroupId) | |
| 1711 { | |
| 1712 RefPtr<EventListener> eventListener = registeredEventListener.listener; | |
| 1713 String scriptId; | |
| 1714 int lineNumber; | |
| 1715 int columnNumber; | |
| 1716 if (!eventListenerHandlerLocation(&node->document(), eventListener.get(), sc
riptId, lineNumber, columnNumber)) | |
| 1717 return nullptr; | |
| 1718 | |
| 1719 Document& document = node->document(); | |
| 1720 RefPtr<TypeBuilder::Debugger::Location> location = TypeBuilder::Debugger::Lo
cation::create() | |
| 1721 .setScriptId(scriptId) | |
| 1722 .setLineNumber(lineNumber); | |
| 1723 location->setColumnNumber(columnNumber); | |
| 1724 RefPtr<TypeBuilder::DOM::EventListener> value = TypeBuilder::DOM::EventListe
ner::create() | |
| 1725 .setType(eventType) | |
| 1726 .setUseCapture(registeredEventListener.useCapture) | |
| 1727 .setIsAttribute(eventListener->isAttribute()) | |
| 1728 .setNodeId(pushNodePathToFrontend(node)) | |
| 1729 .setLocation(location); | |
| 1730 if (objectGroupId) | |
| 1731 value->setHandler(eventHandlerObject(&document, eventListener.get(), m_i
njectedScriptManager, objectGroupId)); | |
| 1732 return value.release(); | |
| 1733 } | |
| 1734 | |
| 1735 PassRefPtr<TypeBuilder::Array<TypeBuilder::DOM::Node> > InspectorDOMAgent::build
ArrayForPseudoElements(Element* element, NodeToIdMap* nodesMap) | 1689 PassRefPtr<TypeBuilder::Array<TypeBuilder::DOM::Node> > InspectorDOMAgent::build
ArrayForPseudoElements(Element* element, NodeToIdMap* nodesMap) |
| 1736 { | 1690 { |
| 1737 if (!element->pseudoElement(BEFORE) && !element->pseudoElement(AFTER)) | 1691 if (!element->pseudoElement(BEFORE) && !element->pseudoElement(AFTER)) |
| 1738 return nullptr; | 1692 return nullptr; |
| 1739 | 1693 |
| 1740 RefPtr<TypeBuilder::Array<TypeBuilder::DOM::Node> > pseudoElements = TypeBui
lder::Array<TypeBuilder::DOM::Node>::create(); | 1694 RefPtr<TypeBuilder::Array<TypeBuilder::DOM::Node> > pseudoElements = TypeBui
lder::Array<TypeBuilder::DOM::Node>::create(); |
| 1741 if (element->pseudoElement(BEFORE)) | 1695 if (element->pseudoElement(BEFORE)) |
| 1742 pseudoElements->addItem(buildObjectForNode(element->pseudoElement(BEFORE
), 0, nodesMap)); | 1696 pseudoElements->addItem(buildObjectForNode(element->pseudoElement(BEFORE
), 0, nodesMap)); |
| 1743 if (element->pseudoElement(AFTER)) | 1697 if (element->pseudoElement(AFTER)) |
| 1744 pseudoElements->addItem(buildObjectForNode(element->pseudoElement(AFTER)
, 0, nodesMap)); | 1698 pseudoElements->addItem(buildObjectForNode(element->pseudoElement(AFTER)
, 0, nodesMap)); |
| (...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2236 visitor->trace(m_searchResults); | 2190 visitor->trace(m_searchResults); |
| 2237 #endif | 2191 #endif |
| 2238 visitor->trace(m_hoveredNodeForInspectMode); | 2192 visitor->trace(m_hoveredNodeForInspectMode); |
| 2239 visitor->trace(m_history); | 2193 visitor->trace(m_history); |
| 2240 visitor->trace(m_domEditor); | 2194 visitor->trace(m_domEditor); |
| 2241 visitor->trace(m_listener); | 2195 visitor->trace(m_listener); |
| 2242 InspectorBaseAgent::trace(visitor); | 2196 InspectorBaseAgent::trace(visitor); |
| 2243 } | 2197 } |
| 2244 | 2198 |
| 2245 } // namespace blink | 2199 } // namespace blink |
| OLD | NEW |