Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(566)

Side by Side Diff: third_party/WebKit/Source/core/dom/Node.cpp

Issue 2741633002: Remove FrameHost::eventHandlerRegistry() (Closed)
Patch Set: Rebase Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/dom/Document.cpp ('k') | third_party/WebKit/Source/core/frame/FrameHost.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698