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

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

Issue 2553343002: Avoid WTF::Vector::at() and operator[] in core/dom. (Closed)
Patch Set: Created 4 years 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 1796 matching lines...) Expand 10 before | Expand all | Expand 10 after
1807 ExecutionContext* Node::getExecutionContext() const { 1807 ExecutionContext* Node::getExecutionContext() const {
1808 return document().contextDocument(); 1808 return document().contextDocument();
1809 } 1809 }
1810 1810
1811 void Node::didMoveToNewDocument(Document& oldDocument) { 1811 void Node::didMoveToNewDocument(Document& oldDocument) {
1812 TreeScopeAdopter::ensureDidMoveToNewDocumentWasCalled(oldDocument); 1812 TreeScopeAdopter::ensureDidMoveToNewDocumentWasCalled(oldDocument);
1813 1813
1814 if (const EventTargetData* eventTargetData = this->eventTargetData()) { 1814 if (const EventTargetData* eventTargetData = this->eventTargetData()) {
1815 const EventListenerMap& listenerMap = eventTargetData->eventListenerMap; 1815 const EventListenerMap& listenerMap = eventTargetData->eventListenerMap;
1816 if (!listenerMap.isEmpty()) { 1816 if (!listenerMap.isEmpty()) {
1817 Vector<AtomicString> types = listenerMap.eventTypes(); 1817 for (const auto& type : listenerMap.eventTypes())
1818 for (unsigned i = 0; i < types.size(); ++i) 1818 document().addListenerTypeIfNeeded(type);
1819 document().addListenerTypeIfNeeded(types[i]);
1820 } 1819 }
1821 } 1820 }
1822 1821
1823 oldDocument.markers().removeMarkers(this); 1822 oldDocument.markers().removeMarkers(this);
1824 if (oldDocument.frameHost() && !document().frameHost()) 1823 if (oldDocument.frameHost() && !document().frameHost())
1825 oldDocument.frameHost()->eventHandlerRegistry().didMoveOutOfFrameHost( 1824 oldDocument.frameHost()->eventHandlerRegistry().didMoveOutOfFrameHost(
1826 *this); 1825 *this);
1827 else if (document().frameHost() && !oldDocument.frameHost()) 1826 else if (document().frameHost() && !oldDocument.frameHost())
1828 document().frameHost()->eventHandlerRegistry().didMoveIntoFrameHost(*this); 1827 document().frameHost()->eventHandlerRegistry().didMoveIntoFrameHost(*this);
1829 else if (oldDocument.frameHost() != document().frameHost()) 1828 else if (oldDocument.frameHost() != document().frameHost())
1830 EventHandlerRegistry::didMoveBetweenFrameHosts( 1829 EventHandlerRegistry::didMoveBetweenFrameHosts(
1831 *this, oldDocument.frameHost(), document().frameHost()); 1830 *this, oldDocument.frameHost(), document().frameHost());
1832 1831
1833 if (const HeapVector<TraceWrapperMember<MutationObserverRegistration>>* 1832 if (const HeapVector<TraceWrapperMember<MutationObserverRegistration>>*
1834 registry = mutationObserverRegistry()) { 1833 registry = mutationObserverRegistry()) {
1835 for (size_t i = 0; i < registry->size(); ++i) { 1834 for (const auto& registration : *registry) {
1836 document().addMutationObserverTypes(registry->at(i)->mutationTypes()); 1835 document().addMutationObserverTypes(registration->mutationTypes());
1837 } 1836 }
1838 } 1837 }
1839 1838
1840 if (transientMutationObserverRegistry()) { 1839 if (transientMutationObserverRegistry()) {
1841 for (MutationObserverRegistration* registration : 1840 for (MutationObserverRegistration* registration :
1842 *transientMutationObserverRegistry()) 1841 *transientMutationObserverRegistry())
1843 document().addMutationObserverTypes(registration->mutationTypes()); 1842 document().addMutationObserverTypes(registration->mutationTypes());
1844 } 1843 }
1845 } 1844 }
1846 1845
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
1968 observers, node->transientMutationObserverRegistry(), *this, type, 1967 observers, node->transientMutationObserverRegistry(), *this, type,
1969 attributeName); 1968 attributeName);
1970 } 1969 }
1971 } 1970 }
1972 1971
1973 void Node::registerMutationObserver( 1972 void Node::registerMutationObserver(
1974 MutationObserver& observer, 1973 MutationObserver& observer,
1975 MutationObserverOptions options, 1974 MutationObserverOptions options,
1976 const HashSet<AtomicString>& attributeFilter) { 1975 const HashSet<AtomicString>& attributeFilter) {
1977 MutationObserverRegistration* registration = nullptr; 1976 MutationObserverRegistration* registration = nullptr;
1978 const HeapVector<TraceWrapperMember<MutationObserverRegistration>>& registry = 1977 for (const auto& item :
1979 ensureRareData().ensureMutationObserverData().registry(); 1978 ensureRareData().ensureMutationObserverData().registry()) {
1980 for (size_t i = 0; i < registry.size(); ++i) { 1979 if (&item->observer() == &observer) {
1981 if (&registry[i]->observer() == &observer) { 1980 registration = item.get();
1982 registration = registry[i].get();
1983 registration->resetObservation(options, attributeFilter); 1981 registration->resetObservation(options, attributeFilter);
1984 } 1982 }
1985 } 1983 }
1986 1984
1987 if (!registration) { 1985 if (!registration) {
1988 registration = MutationObserverRegistration::create(observer, this, options, 1986 registration = MutationObserverRegistration::create(observer, this, options,
1989 attributeFilter); 1987 attributeFilter);
1990 ensureRareData().ensureMutationObserverData().addRegistration(registration); 1988 ensureRareData().ensureMutationObserverData().addRegistration(registration);
1991 } 1989 }
1992 1990
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
2028 } 2026 }
2029 2027
2030 void Node::notifyMutationObserversNodeWillDetach() { 2028 void Node::notifyMutationObserversNodeWillDetach() {
2031 if (!document().hasMutationObservers()) 2029 if (!document().hasMutationObservers())
2032 return; 2030 return;
2033 2031
2034 ScriptForbiddenScope forbidScriptDuringRawIteration; 2032 ScriptForbiddenScope forbidScriptDuringRawIteration;
2035 for (Node* node = parentNode(); node; node = node->parentNode()) { 2033 for (Node* node = parentNode(); node; node = node->parentNode()) {
2036 if (const HeapVector<TraceWrapperMember<MutationObserverRegistration>>* 2034 if (const HeapVector<TraceWrapperMember<MutationObserverRegistration>>*
2037 registry = node->mutationObserverRegistry()) { 2035 registry = node->mutationObserverRegistry()) {
2038 const size_t size = registry->size(); 2036 for (const auto& registration : *registry)
2039 for (size_t i = 0; i < size; ++i) 2037 registration->observedSubtreeNodeWillDetach(*this);
2040 registry->at(i)->observedSubtreeNodeWillDetach(*this);
2041 } 2038 }
2042 2039
2043 if (const HeapHashSet<TraceWrapperMember<MutationObserverRegistration>>* 2040 if (const HeapHashSet<TraceWrapperMember<MutationObserverRegistration>>*
2044 transientRegistry = node->transientMutationObserverRegistry()) { 2041 transientRegistry = node->transientMutationObserverRegistry()) {
2045 for (auto& registration : *transientRegistry) 2042 for (auto& registration : *transientRegistry)
2046 registration->observedSubtreeNodeWillDetach(*this); 2043 registration->observedSubtreeNodeWillDetach(*this);
2047 } 2044 }
2048 } 2045 }
2049 } 2046 }
2050 2047
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
2286 2283
2287 void Node::decrementConnectedSubframeCount() { 2284 void Node::decrementConnectedSubframeCount() {
2288 rareData()->decrementConnectedSubframeCount(); 2285 rareData()->decrementConnectedSubframeCount();
2289 } 2286 }
2290 2287
2291 StaticNodeList* Node::getDestinationInsertionPoints() { 2288 StaticNodeList* Node::getDestinationInsertionPoints() {
2292 updateDistribution(); 2289 updateDistribution();
2293 HeapVector<Member<InsertionPoint>, 8> insertionPoints; 2290 HeapVector<Member<InsertionPoint>, 8> insertionPoints;
2294 collectDestinationInsertionPoints(*this, insertionPoints); 2291 collectDestinationInsertionPoints(*this, insertionPoints);
2295 HeapVector<Member<Node>> filteredInsertionPoints; 2292 HeapVector<Member<Node>> filteredInsertionPoints;
2296 for (size_t i = 0; i < insertionPoints.size(); ++i) { 2293 for (const auto& insertionPoint : insertionPoints) {
2297 InsertionPoint* insertionPoint = insertionPoints[i];
2298 DCHECK(insertionPoint->containingShadowRoot()); 2294 DCHECK(insertionPoint->containingShadowRoot());
2299 if (!insertionPoint->containingShadowRoot()->isOpenOrV0()) 2295 if (!insertionPoint->containingShadowRoot()->isOpenOrV0())
2300 break; 2296 break;
2301 filteredInsertionPoints.append(insertionPoint); 2297 filteredInsertionPoints.append(insertionPoint);
2302 } 2298 }
2303 return StaticNodeList::adopt(filteredInsertionPoints); 2299 return StaticNodeList::adopt(filteredInsertionPoints);
2304 } 2300 }
2305 2301
2306 HTMLSlotElement* Node::assignedSlot() const { 2302 HTMLSlotElement* Node::assignedSlot() const {
2307 DCHECK(!isPseudoElement()); 2303 DCHECK(!isPseudoElement());
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
2545 if (node) { 2541 if (node) {
2546 std::stringstream stream; 2542 std::stringstream stream;
2547 node->printNodePathTo(stream); 2543 node->printNodePathTo(stream);
2548 LOG(INFO) << stream.str(); 2544 LOG(INFO) << stream.str();
2549 } else { 2545 } else {
2550 LOG(INFO) << "Cannot showNodePath for <null>"; 2546 LOG(INFO) << "Cannot showNodePath for <null>";
2551 } 2547 }
2552 } 2548 }
2553 2549
2554 #endif 2550 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698