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 |