| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2001 Dirk Mueller (mueller@kde.org) | 4 * (C) 2001 Dirk Mueller (mueller@kde.org) |
| 5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All | 5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All |
| 6 * rights reserved. | 6 * rights reserved. |
| 7 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) | 7 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) |
| 8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. | 8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. |
| 9 * (http://www.torchmobile.com/) | 9 * (http://www.torchmobile.com/) |
| 10 * | 10 * |
| (...skipping 1827 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1838 | 1838 |
| 1839 const AtomicString& Node::interfaceName() const { | 1839 const AtomicString& Node::interfaceName() const { |
| 1840 return EventTargetNames::Node; | 1840 return EventTargetNames::Node; |
| 1841 } | 1841 } |
| 1842 | 1842 |
| 1843 ExecutionContext* Node::getExecutionContext() const { | 1843 ExecutionContext* Node::getExecutionContext() const { |
| 1844 return document().contextDocument(); | 1844 return document().contextDocument(); |
| 1845 } | 1845 } |
| 1846 | 1846 |
| 1847 void Node::willMoveToNewDocument(Document& oldDocument, Document& newDocument) { | 1847 void Node::willMoveToNewDocument(Document& oldDocument, Document& newDocument) { |
| 1848 if (!oldDocument.frameHost() || | 1848 if (!oldDocument.page() || oldDocument.page() == newDocument.page()) |
| 1849 oldDocument.frameHost() == newDocument.frameHost()) | |
| 1850 return; | 1849 return; |
| 1851 | 1850 |
| 1852 oldDocument.frameHost()->eventHandlerRegistry().didMoveOutOfPage(*this); | 1851 oldDocument.page()->eventHandlerRegistry().didMoveOutOfPage(*this); |
| 1853 } | 1852 } |
| 1854 | 1853 |
| 1855 void Node::didMoveToNewDocument(Document& oldDocument) { | 1854 void Node::didMoveToNewDocument(Document& oldDocument) { |
| 1856 TreeScopeAdopter::ensureDidMoveToNewDocumentWasCalled(oldDocument); | 1855 TreeScopeAdopter::ensureDidMoveToNewDocumentWasCalled(oldDocument); |
| 1857 | 1856 |
| 1858 if (const EventTargetData* eventTargetData = this->eventTargetData()) { | 1857 if (const EventTargetData* eventTargetData = this->eventTargetData()) { |
| 1859 const EventListenerMap& listenerMap = eventTargetData->eventListenerMap; | 1858 const EventListenerMap& listenerMap = eventTargetData->eventListenerMap; |
| 1860 if (!listenerMap.isEmpty()) { | 1859 if (!listenerMap.isEmpty()) { |
| 1861 for (const auto& type : listenerMap.eventTypes()) | 1860 for (const auto& type : listenerMap.eventTypes()) |
| 1862 document().addListenerTypeIfNeeded(type); | 1861 document().addListenerTypeIfNeeded(type); |
| 1863 } | 1862 } |
| 1864 } | 1863 } |
| 1865 | 1864 |
| 1866 oldDocument.markers().removeMarkers(this); | 1865 oldDocument.markers().removeMarkers(this); |
| 1867 if (document().frameHost() && | 1866 if (document().page() && document().page() != oldDocument.page()) { |
| 1868 document().frameHost() != oldDocument.frameHost()) { | 1867 document().page()->eventHandlerRegistry().didMoveIntoPage(*this); |
| 1869 document().frameHost()->eventHandlerRegistry().didMoveIntoPage(*this); | |
| 1870 } | 1868 } |
| 1871 | 1869 |
| 1872 if (const HeapVector<TraceWrapperMember<MutationObserverRegistration>>* | 1870 if (const HeapVector<TraceWrapperMember<MutationObserverRegistration>>* |
| 1873 registry = mutationObserverRegistry()) { | 1871 registry = mutationObserverRegistry()) { |
| 1874 for (const auto& registration : *registry) { | 1872 for (const auto& registration : *registry) { |
| 1875 document().addMutationObserverTypes(registration->mutationTypes()); | 1873 document().addMutationObserverTypes(registration->mutationTypes()); |
| 1876 } | 1874 } |
| 1877 } | 1875 } |
| 1878 | 1876 |
| 1879 if (transientMutationObserverRegistry()) { | 1877 if (transientMutationObserverRegistry()) { |
| 1880 for (MutationObserverRegistration* registration : | 1878 for (MutationObserverRegistration* registration : |
| 1881 *transientMutationObserverRegistry()) | 1879 *transientMutationObserverRegistry()) |
| 1882 document().addMutationObserverTypes(registration->mutationTypes()); | 1880 document().addMutationObserverTypes(registration->mutationTypes()); |
| 1883 } | 1881 } |
| 1884 } | 1882 } |
| 1885 | 1883 |
| 1886 void Node::addedEventListener(const AtomicString& eventType, | 1884 void Node::addedEventListener(const AtomicString& eventType, |
| 1887 RegisteredEventListener& registeredListener) { | 1885 RegisteredEventListener& registeredListener) { |
| 1888 EventTarget::addedEventListener(eventType, registeredListener); | 1886 EventTarget::addedEventListener(eventType, registeredListener); |
| 1889 document().addListenerTypeIfNeeded(eventType); | 1887 document().addListenerTypeIfNeeded(eventType); |
| 1890 if (FrameHost* frameHost = document().frameHost()) | 1888 if (Page* page = document().page()) |
| 1891 frameHost->eventHandlerRegistry().didAddEventHandler( | 1889 page->eventHandlerRegistry().didAddEventHandler( |
| 1892 *this, eventType, registeredListener.options()); | 1890 *this, eventType, registeredListener.options()); |
| 1893 } | 1891 } |
| 1894 | 1892 |
| 1895 void Node::removedEventListener( | 1893 void Node::removedEventListener( |
| 1896 const AtomicString& eventType, | 1894 const AtomicString& eventType, |
| 1897 const RegisteredEventListener& registeredListener) { | 1895 const RegisteredEventListener& registeredListener) { |
| 1898 EventTarget::removedEventListener(eventType, registeredListener); | 1896 EventTarget::removedEventListener(eventType, registeredListener); |
| 1899 // FIXME: Notify Document that the listener has vanished. We need to keep | 1897 // FIXME: Notify Document that the listener has vanished. We need to keep |
| 1900 // track of a number of listeners for each type, not just a bool - see | 1898 // track of a number of listeners for each type, not just a bool - see |
| 1901 // https://bugs.webkit.org/show_bug.cgi?id=33861 | 1899 // https://bugs.webkit.org/show_bug.cgi?id=33861 |
| 1902 if (FrameHost* frameHost = document().frameHost()) | 1900 if (Page* page = document().page()) |
| 1903 frameHost->eventHandlerRegistry().didRemoveEventHandler( | 1901 page->eventHandlerRegistry().didRemoveEventHandler( |
| 1904 *this, eventType, registeredListener.options()); | 1902 *this, eventType, registeredListener.options()); |
| 1905 } | 1903 } |
| 1906 | 1904 |
| 1907 void Node::removeAllEventListeners() { | 1905 void Node::removeAllEventListeners() { |
| 1908 if (hasEventListeners() && document().frameHost()) | 1906 if (hasEventListeners() && document().page()) |
| 1909 document().frameHost()->eventHandlerRegistry().didRemoveAllEventHandlers( | 1907 document().page()->eventHandlerRegistry().didRemoveAllEventHandlers(*this); |
| 1910 *this); | |
| 1911 EventTarget::removeAllEventListeners(); | 1908 EventTarget::removeAllEventListeners(); |
| 1912 } | 1909 } |
| 1913 | 1910 |
| 1914 void Node::removeAllEventListenersRecursively() { | 1911 void Node::removeAllEventListenersRecursively() { |
| 1915 ScriptForbiddenScope forbidScriptDuringRawIteration; | 1912 ScriptForbiddenScope forbidScriptDuringRawIteration; |
| 1916 for (Node& node : NodeTraversal::startsAt(*this)) { | 1913 for (Node& node : NodeTraversal::startsAt(*this)) { |
| 1917 node.removeAllEventListeners(); | 1914 node.removeAllEventListeners(); |
| 1918 for (ShadowRoot* root = node.youngestShadowRoot(); root; | 1915 for (ShadowRoot* root = node.youngestShadowRoot(); root; |
| 1919 root = root->olderShadowRoot()) | 1916 root = root->olderShadowRoot()) |
| 1920 root->removeAllEventListenersRecursively(); | 1917 root->removeAllEventListenersRecursively(); |
| (...skipping 642 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2563 if (node) { | 2560 if (node) { |
| 2564 std::stringstream stream; | 2561 std::stringstream stream; |
| 2565 node->printNodePathTo(stream); | 2562 node->printNodePathTo(stream); |
| 2566 LOG(INFO) << stream.str(); | 2563 LOG(INFO) << stream.str(); |
| 2567 } else { | 2564 } else { |
| 2568 LOG(INFO) << "Cannot showNodePath for <null>"; | 2565 LOG(INFO) << "Cannot showNodePath for <null>"; |
| 2569 } | 2566 } |
| 2570 } | 2567 } |
| 2571 | 2568 |
| 2572 #endif | 2569 #endif |
| OLD | NEW |