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

Side by Side Diff: Source/core/dom/Document.cpp

Issue 301233010: Oilpan: use transition types for remaining RefPtr<Document>s in dom/. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Have Document weakly track its attached Ranges Created 6 years, 6 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
« no previous file with comments | « Source/core/dom/Document.h ('k') | Source/core/dom/DocumentMarkerControllerTest.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) 5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org)
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012 Apple Inc. All r ights reserved. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012 Apple Inc. All r ights reserved.
7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/) 7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/)
8 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved. 8 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved.
9 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) 9 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
10 * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved. 10 * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved.
(...skipping 513 matching lines...) Expand 10 before | Expand all | Expand 10 after
524 524
525 // Since CSSFontSelector requires Document::m_fetcher and StyleEngine owns 525 // Since CSSFontSelector requires Document::m_fetcher and StyleEngine owns
526 // CSSFontSelector, need to initialize m_styleEngine after initializing 526 // CSSFontSelector, need to initialize m_styleEngine after initializing
527 // m_fetcher. 527 // m_fetcher.
528 m_styleEngine = StyleEngine::create(*this); 528 m_styleEngine = StyleEngine::create(*this);
529 } 529 }
530 530
531 Document::~Document() 531 Document::~Document()
532 { 532 {
533 ASSERT(!renderView()); 533 ASSERT(!renderView());
534 ASSERT(m_ranges.isEmpty());
535 ASSERT(!parentTreeScope()); 534 ASSERT(!parentTreeScope());
536 #if !ENABLE(OILPAN) 535 #if !ENABLE(OILPAN)
536 ASSERT(m_ranges.isEmpty());
537 ASSERT(!hasGuardRefCount()); 537 ASSERT(!hasGuardRefCount());
538 // With Oilpan, either the document outlives the visibility observers 538 // With Oilpan, either the document outlives the visibility observers
539 // or the visibility observers and the document die in the same GC round. 539 // or the visibility observers and the document die in the same GC round.
540 // When they die in the same GC round, the list of visibility observers 540 // When they die in the same GC round, the list of visibility observers
541 // will not be empty on Document destruction. 541 // will not be empty on Document destruction.
542 ASSERT(m_visibilityObservers.isEmpty()); 542 ASSERT(m_visibilityObservers.isEmpty());
543 543
544 if (m_templateDocument) 544 if (m_templateDocument)
545 m_templateDocument->m_templateDocumentHost = nullptr; // balanced in ens ureTemplateDocument(). 545 m_templateDocument->m_templateDocumentHost = nullptr; // balanced in ens ureTemplateDocument().
546 546
(...skipping 2091 matching lines...) Expand 10 before | Expand all | Expand 10 after
2638 } 2638 }
2639 2639
2640 bool Document::dispatchBeforeUnloadEvent(Chrome& chrome, bool& didAllowNavigatio n) 2640 bool Document::dispatchBeforeUnloadEvent(Chrome& chrome, bool& didAllowNavigatio n)
2641 { 2641 {
2642 if (!m_domWindow) 2642 if (!m_domWindow)
2643 return true; 2643 return true;
2644 2644
2645 if (!body()) 2645 if (!body())
2646 return true; 2646 return true;
2647 2647
2648 RefPtr<Document> protect(this); 2648 RefPtrWillBeRawPtr<Document> protect(this);
2649 2649
2650 RefPtrWillBeRawPtr<BeforeUnloadEvent> beforeUnloadEvent = BeforeUnloadEvent: :create(); 2650 RefPtrWillBeRawPtr<BeforeUnloadEvent> beforeUnloadEvent = BeforeUnloadEvent: :create();
2651 m_loadEventProgress = BeforeUnloadEventInProgress; 2651 m_loadEventProgress = BeforeUnloadEventInProgress;
2652 m_domWindow->dispatchEvent(beforeUnloadEvent.get(), this); 2652 m_domWindow->dispatchEvent(beforeUnloadEvent.get(), this);
2653 m_loadEventProgress = BeforeUnloadEventCompleted; 2653 m_loadEventProgress = BeforeUnloadEventCompleted;
2654 if (!beforeUnloadEvent->defaultPrevented()) 2654 if (!beforeUnloadEvent->defaultPrevented())
2655 defaultEventHandler(beforeUnloadEvent.get()); 2655 defaultEventHandler(beforeUnloadEvent.get());
2656 if (beforeUnloadEvent->returnValue().isNull()) 2656 if (beforeUnloadEvent->returnValue().isNull())
2657 return true; 2657 return true;
2658 2658
2659 if (didAllowNavigation) { 2659 if (didAllowNavigation) {
2660 addConsoleMessage(JSMessageSource, ErrorMessageLevel, "Blocked attempt t o show multiple 'beforeunload' confirmation panels for a single navigation."); 2660 addConsoleMessage(JSMessageSource, ErrorMessageLevel, "Blocked attempt t o show multiple 'beforeunload' confirmation panels for a single navigation.");
2661 return true; 2661 return true;
2662 } 2662 }
2663 2663
2664 String text = beforeUnloadEvent->returnValue(); 2664 String text = beforeUnloadEvent->returnValue();
2665 if (chrome.runBeforeUnloadConfirmPanel(text, m_frame)) { 2665 if (chrome.runBeforeUnloadConfirmPanel(text, m_frame)) {
2666 didAllowNavigation = true; 2666 didAllowNavigation = true;
2667 return true; 2667 return true;
2668 } 2668 }
2669 return false; 2669 return false;
2670 } 2670 }
2671 2671
2672 void Document::dispatchUnloadEvents() 2672 void Document::dispatchUnloadEvents()
2673 { 2673 {
2674 RefPtr<Document> protect(this); 2674 RefPtrWillBeRawPtr<Document> protect(this);
2675 if (m_parser) 2675 if (m_parser)
2676 m_parser->stopParsing(); 2676 m_parser->stopParsing();
2677 2677
2678 if (m_loadEventProgress >= LoadEventTried && m_loadEventProgress <= UnloadEv entInProgress) { 2678 if (m_loadEventProgress >= LoadEventTried && m_loadEventProgress <= UnloadEv entInProgress) {
2679 Element* currentFocusedElement = focusedElement(); 2679 Element* currentFocusedElement = focusedElement();
2680 if (isHTMLInputElement(currentFocusedElement)) 2680 if (isHTMLInputElement(currentFocusedElement))
2681 toHTMLInputElement(*currentFocusedElement).endEditing(); 2681 toHTMLInputElement(*currentFocusedElement).endEditing();
2682 if (m_loadEventProgress < PageHideInProgress) { 2682 if (m_loadEventProgress < PageHideInProgress) {
2683 m_loadEventProgress = PageHideInProgress; 2683 m_loadEventProgress = PageHideInProgress;
2684 if (DOMWindow* window = domWindow()) 2684 if (DOMWindow* window = domWindow())
(...skipping 1086 matching lines...) Expand 10 before | Expand all | Expand 10 after
3771 if ((*it)->root() == node) { 3771 if ((*it)->root() == node) {
3772 detachNodeIterator(*it); 3772 detachNodeIterator(*it);
3773 newDocument.attachNodeIterator(*it); 3773 newDocument.attachNodeIterator(*it);
3774 } 3774 }
3775 } 3775 }
3776 } 3776 }
3777 3777
3778 void Document::updateRangesAfterChildrenChanged(ContainerNode* container) 3778 void Document::updateRangesAfterChildrenChanged(ContainerNode* container)
3779 { 3779 {
3780 if (!m_ranges.isEmpty()) { 3780 if (!m_ranges.isEmpty()) {
3781 HashSet<Range*>::const_iterator end = m_ranges.end(); 3781 AttachedRangeSet::const_iterator end = m_ranges.end();
3782 for (HashSet<Range*>::const_iterator it = m_ranges.begin(); it != end; + +it) 3782 for (AttachedRangeSet::const_iterator it = m_ranges.begin(); it != end; ++it)
3783 (*it)->nodeChildrenChanged(container); 3783 (*it)->nodeChildrenChanged(container);
3784 } 3784 }
3785 } 3785 }
3786 3786
3787 void Document::nodeChildrenWillBeRemoved(ContainerNode& container) 3787 void Document::nodeChildrenWillBeRemoved(ContainerNode& container)
3788 { 3788 {
3789 NoEventDispatchAssertion assertNoEventDispatch; 3789 NoEventDispatchAssertion assertNoEventDispatch;
3790 if (!m_ranges.isEmpty()) { 3790 if (!m_ranges.isEmpty()) {
3791 HashSet<Range*>::const_iterator end = m_ranges.end(); 3791 AttachedRangeSet::const_iterator end = m_ranges.end();
3792 for (HashSet<Range*>::const_iterator it = m_ranges.begin(); it != end; + +it) 3792 for (AttachedRangeSet::const_iterator it = m_ranges.begin(); it != end; ++it)
3793 (*it)->nodeChildrenWillBeRemoved(container); 3793 (*it)->nodeChildrenWillBeRemoved(container);
3794 } 3794 }
3795 3795
3796 WillBeHeapHashSet<RawPtrWillBeWeakMember<NodeIterator> >::const_iterator nod eIteratorsEnd = m_nodeIterators.end(); 3796 WillBeHeapHashSet<RawPtrWillBeWeakMember<NodeIterator> >::const_iterator nod eIteratorsEnd = m_nodeIterators.end();
3797 for (WillBeHeapHashSet<RawPtrWillBeWeakMember<NodeIterator> >::const_iterato r it = m_nodeIterators.begin(); it != nodeIteratorsEnd; ++it) { 3797 for (WillBeHeapHashSet<RawPtrWillBeWeakMember<NodeIterator> >::const_iterato r it = m_nodeIterators.begin(); it != nodeIteratorsEnd; ++it) {
3798 for (Node* n = container.firstChild(); n; n = n->nextSibling()) 3798 for (Node* n = container.firstChild(); n; n = n->nextSibling())
3799 (*it)->nodeWillBeRemoved(*n); 3799 (*it)->nodeWillBeRemoved(*n);
3800 } 3800 }
3801 3801
3802 if (LocalFrame* frame = this->frame()) { 3802 if (LocalFrame* frame = this->frame()) {
3803 for (Node* n = container.firstChild(); n; n = n->nextSibling()) { 3803 for (Node* n = container.firstChild(); n; n = n->nextSibling()) {
3804 frame->eventHandler().nodeWillBeRemoved(*n); 3804 frame->eventHandler().nodeWillBeRemoved(*n);
3805 frame->selection().nodeWillBeRemoved(*n); 3805 frame->selection().nodeWillBeRemoved(*n);
3806 frame->page()->dragCaretController().nodeWillBeRemoved(*n); 3806 frame->page()->dragCaretController().nodeWillBeRemoved(*n);
3807 } 3807 }
3808 } 3808 }
3809 } 3809 }
3810 3810
3811 void Document::nodeWillBeRemoved(Node& n) 3811 void Document::nodeWillBeRemoved(Node& n)
3812 { 3812 {
3813 WillBeHeapHashSet<RawPtrWillBeWeakMember<NodeIterator> >::const_iterator nod eIteratorsEnd = m_nodeIterators.end(); 3813 WillBeHeapHashSet<RawPtrWillBeWeakMember<NodeIterator> >::const_iterator nod eIteratorsEnd = m_nodeIterators.end();
3814 for (WillBeHeapHashSet<RawPtrWillBeWeakMember<NodeIterator> >::const_iterato r it = m_nodeIterators.begin(); it != nodeIteratorsEnd; ++it) 3814 for (WillBeHeapHashSet<RawPtrWillBeWeakMember<NodeIterator> >::const_iterato r it = m_nodeIterators.begin(); it != nodeIteratorsEnd; ++it)
3815 (*it)->nodeWillBeRemoved(n); 3815 (*it)->nodeWillBeRemoved(n);
3816 3816
3817 if (!m_ranges.isEmpty()) { 3817 if (!m_ranges.isEmpty()) {
3818 HashSet<Range*>::const_iterator rangesEnd = m_ranges.end(); 3818 AttachedRangeSet::const_iterator rangesEnd = m_ranges.end();
3819 for (HashSet<Range*>::const_iterator it = m_ranges.begin(); it != ranges End; ++it) 3819 for (AttachedRangeSet::const_iterator it = m_ranges.begin(); it != range sEnd; ++it)
3820 (*it)->nodeWillBeRemoved(n); 3820 (*it)->nodeWillBeRemoved(n);
3821 } 3821 }
3822 3822
3823 if (LocalFrame* frame = this->frame()) { 3823 if (LocalFrame* frame = this->frame()) {
3824 frame->eventHandler().nodeWillBeRemoved(n); 3824 frame->eventHandler().nodeWillBeRemoved(n);
3825 frame->selection().nodeWillBeRemoved(n); 3825 frame->selection().nodeWillBeRemoved(n);
3826 frame->page()->dragCaretController().nodeWillBeRemoved(n); 3826 frame->page()->dragCaretController().nodeWillBeRemoved(n);
3827 } 3827 }
3828 } 3828 }
3829 3829
3830 void Document::didInsertText(Node* text, unsigned offset, unsigned length) 3830 void Document::didInsertText(Node* text, unsigned offset, unsigned length)
3831 { 3831 {
3832 if (!m_ranges.isEmpty()) { 3832 if (!m_ranges.isEmpty()) {
3833 HashSet<Range*>::const_iterator end = m_ranges.end(); 3833 AttachedRangeSet::const_iterator end = m_ranges.end();
3834 for (HashSet<Range*>::const_iterator it = m_ranges.begin(); it != end; + +it) 3834 for (AttachedRangeSet::const_iterator it = m_ranges.begin(); it != end; ++it)
3835 (*it)->didInsertText(text, offset, length); 3835 (*it)->didInsertText(text, offset, length);
3836 } 3836 }
3837 3837
3838 // Update the markers for spelling and grammar checking. 3838 // Update the markers for spelling and grammar checking.
3839 m_markers->shiftMarkers(text, offset, length); 3839 m_markers->shiftMarkers(text, offset, length);
3840 } 3840 }
3841 3841
3842 void Document::didRemoveText(Node* text, unsigned offset, unsigned length) 3842 void Document::didRemoveText(Node* text, unsigned offset, unsigned length)
3843 { 3843 {
3844 if (!m_ranges.isEmpty()) { 3844 if (!m_ranges.isEmpty()) {
3845 HashSet<Range*>::const_iterator end = m_ranges.end(); 3845 AttachedRangeSet::const_iterator end = m_ranges.end();
3846 for (HashSet<Range*>::const_iterator it = m_ranges.begin(); it != end; + +it) 3846 for (AttachedRangeSet::const_iterator it = m_ranges.begin(); it != end; ++it)
3847 (*it)->didRemoveText(text, offset, length); 3847 (*it)->didRemoveText(text, offset, length);
3848 } 3848 }
3849 3849
3850 // Update the markers for spelling and grammar checking. 3850 // Update the markers for spelling and grammar checking.
3851 m_markers->removeMarkers(text, offset, length); 3851 m_markers->removeMarkers(text, offset, length);
3852 m_markers->shiftMarkers(text, offset + length, 0 - length); 3852 m_markers->shiftMarkers(text, offset + length, 0 - length);
3853 } 3853 }
3854 3854
3855 void Document::didMergeTextNodes(Text& oldNode, unsigned offset) 3855 void Document::didMergeTextNodes(Text& oldNode, unsigned offset)
3856 { 3856 {
3857 if (!m_ranges.isEmpty()) { 3857 if (!m_ranges.isEmpty()) {
3858 NodeWithIndex oldNodeWithIndex(oldNode); 3858 NodeWithIndex oldNodeWithIndex(oldNode);
3859 HashSet<Range*>::const_iterator end = m_ranges.end(); 3859 AttachedRangeSet::const_iterator end = m_ranges.end();
3860 for (HashSet<Range*>::const_iterator it = m_ranges.begin(); it != end; + +it) 3860 for (AttachedRangeSet::const_iterator it = m_ranges.begin(); it != end; ++it)
3861 (*it)->didMergeTextNodes(oldNodeWithIndex, offset); 3861 (*it)->didMergeTextNodes(oldNodeWithIndex, offset);
3862 } 3862 }
3863 3863
3864 if (m_frame) 3864 if (m_frame)
3865 m_frame->selection().didMergeTextNodes(oldNode, offset); 3865 m_frame->selection().didMergeTextNodes(oldNode, offset);
3866 3866
3867 // FIXME: This should update markers for spelling and grammar checking. 3867 // FIXME: This should update markers for spelling and grammar checking.
3868 } 3868 }
3869 3869
3870 void Document::didSplitTextNode(Text& oldNode) 3870 void Document::didSplitTextNode(Text& oldNode)
3871 { 3871 {
3872 if (!m_ranges.isEmpty()) { 3872 if (!m_ranges.isEmpty()) {
3873 HashSet<Range*>::const_iterator end = m_ranges.end(); 3873 AttachedRangeSet::const_iterator end = m_ranges.end();
3874 for (HashSet<Range*>::const_iterator it = m_ranges.begin(); it != end; + +it) 3874 for (AttachedRangeSet::const_iterator it = m_ranges.begin(); it != end; ++it)
3875 (*it)->didSplitTextNode(oldNode); 3875 (*it)->didSplitTextNode(oldNode);
3876 } 3876 }
3877 3877
3878 if (m_frame) 3878 if (m_frame)
3879 m_frame->selection().didSplitTextNode(oldNode); 3879 m_frame->selection().didSplitTextNode(oldNode);
3880 3880
3881 // FIXME: This should update markers for spelling and grammar checking. 3881 // FIXME: This should update markers for spelling and grammar checking.
3882 } 3882 }
3883 3883
3884 void Document::setWindowAttributeEventListener(const AtomicString& eventType, Pa ssRefPtr<EventListener> listener) 3884 void Document::setWindowAttributeEventListener(const AtomicString& eventType, Pa ssRefPtr<EventListener> listener)
(...skipping 762 matching lines...) Expand 10 before | Expand all | Expand 10 after
4647 // Reset the text autosizing multipliers on main frame when DOM is loade d. 4647 // Reset the text autosizing multipliers on main frame when DOM is loade d.
4648 // This is to allow for a fresh text autosizing pass when the page layou t 4648 // This is to allow for a fresh text autosizing pass when the page layou t
4649 // changes significantly in the end. 4649 // changes significantly in the end.
4650 if (TextAutosizer* textAutosizer = this->textAutosizer()) 4650 if (TextAutosizer* textAutosizer = this->textAutosizer())
4651 textAutosizer->recalculateMultipliers(); 4651 textAutosizer->recalculateMultipliers();
4652 } 4652 }
4653 4653
4654 // The loader's finishedParsing() method may invoke script that causes this object to 4654 // The loader's finishedParsing() method may invoke script that causes this object to
4655 // be dereferenced (when this document is in an iframe and the onload causes the iframe's src to change). 4655 // be dereferenced (when this document is in an iframe and the onload causes the iframe's src to change).
4656 // Keep it alive until we are done. 4656 // Keep it alive until we are done.
4657 RefPtr<Document> protect(this); 4657 RefPtrWillBeRawPtr<Document> protect(this);
4658 4658
4659 if (RefPtr<LocalFrame> f = frame()) { 4659 if (RefPtr<LocalFrame> f = frame()) {
4660 // Don't update the render tree if we haven't requested the main resourc e yet to avoid 4660 // Don't update the render tree if we haven't requested the main resourc e yet to avoid
4661 // adding extra latency. Note that the first render tree update can be e xpensive since it 4661 // adding extra latency. Note that the first render tree update can be e xpensive since it
4662 // triggers the parsing of the default stylesheets which are compiled-in . 4662 // triggers the parsing of the default stylesheets which are compiled-in .
4663 const bool mainResourceWasAlreadyRequested = 4663 const bool mainResourceWasAlreadyRequested =
4664 m_frame->loader().stateMachine()->committedFirstRealDocumentLoad(); 4664 m_frame->loader().stateMachine()->committedFirstRealDocumentLoad();
4665 4665
4666 // FrameLoader::finishedParsing() might end up calling Document::implici tClose() if all 4666 // FrameLoader::finishedParsing() might end up calling Document::implici tClose() if all
4667 // resource loads are complete. HTMLObjectElements can start loading the ir resources from 4667 // resource loads are complete. HTMLObjectElements can start loading the ir resources from
(...skipping 1129 matching lines...) Expand 10 before | Expand all | Expand 10 after
5797 visitor->trace(m_transformSourceDocument); 5797 visitor->trace(m_transformSourceDocument);
5798 visitor->trace(m_listsInvalidatedAtDocument); 5798 visitor->trace(m_listsInvalidatedAtDocument);
5799 #if ENABLE(OILPAN) 5799 #if ENABLE(OILPAN)
5800 for (int i = 0; i < numNodeListInvalidationTypes; ++i) 5800 for (int i = 0; i < numNodeListInvalidationTypes; ++i)
5801 visitor->trace(m_nodeLists[i]); 5801 visitor->trace(m_nodeLists[i]);
5802 #endif 5802 #endif
5803 visitor->trace(m_cssCanvasElements); 5803 visitor->trace(m_cssCanvasElements);
5804 visitor->trace(m_topLayerElements); 5804 visitor->trace(m_topLayerElements);
5805 visitor->trace(m_elemSheet); 5805 visitor->trace(m_elemSheet);
5806 visitor->trace(m_nodeIterators); 5806 visitor->trace(m_nodeIterators);
5807 visitor->trace(m_ranges);
5807 visitor->trace(m_styleEngine); 5808 visitor->trace(m_styleEngine);
5808 visitor->trace(m_formController); 5809 visitor->trace(m_formController);
5809 visitor->trace(m_domWindow); 5810 visitor->trace(m_domWindow);
5810 visitor->trace(m_fetcher); 5811 visitor->trace(m_fetcher);
5811 visitor->trace(m_parser); 5812 visitor->trace(m_parser);
5812 visitor->trace(m_contextFeatures); 5813 visitor->trace(m_contextFeatures);
5813 visitor->trace(m_styleSheetList); 5814 visitor->trace(m_styleSheetList);
5814 visitor->trace(m_mediaQueryMatcher); 5815 visitor->trace(m_mediaQueryMatcher);
5815 visitor->trace(m_registrationContext); 5816 visitor->trace(m_registrationContext);
5816 visitor->trace(m_associatedFormControls); 5817 visitor->trace(m_associatedFormControls);
5817 visitor->trace(m_templateDocument); 5818 visitor->trace(m_templateDocument);
5818 visitor->trace(m_templateDocumentHost); 5819 visitor->trace(m_templateDocumentHost);
5819 visitor->trace(m_visibilityObservers); 5820 visitor->trace(m_visibilityObservers);
5820 visitor->trace(m_userActionElements); 5821 visitor->trace(m_userActionElements);
5821 visitor->trace(m_svgExtensions); 5822 visitor->trace(m_svgExtensions);
5822 visitor->trace(m_timeline); 5823 visitor->trace(m_timeline);
5823 visitor->trace(m_compositorPendingAnimations); 5824 visitor->trace(m_compositorPendingAnimations);
5824 visitor->trace(m_contextDocument); 5825 visitor->trace(m_contextDocument);
5825 visitor->registerWeakMembers<Document, &Document::clearWeakMembers>(this); 5826 visitor->registerWeakMembers<Document, &Document::clearWeakMembers>(this);
5826 DocumentSupplementable::trace(visitor); 5827 DocumentSupplementable::trace(visitor);
5827 TreeScope::trace(visitor); 5828 TreeScope::trace(visitor);
5828 ContainerNode::trace(visitor); 5829 ContainerNode::trace(visitor);
5829 ExecutionContext::trace(visitor); 5830 ExecutionContext::trace(visitor);
5830 } 5831 }
5831 5832
5832 } // namespace WebCore 5833 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/dom/Document.h ('k') | Source/core/dom/DocumentMarkerControllerTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698