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

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

Issue 298863010: Oilpan: have PendingScripts trace their script elements. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Make HTMLScriptRunner a ResourceClient 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
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 518 matching lines...) Expand 10 before | Expand all | Expand 10 after
529 #if !ENABLE(OILPAN) 529 #if !ENABLE(OILPAN)
530 ASSERT(!hasGuardRefCount()); 530 ASSERT(!hasGuardRefCount());
531 // With Oilpan, either the document outlives the visibility observers 531 // With Oilpan, either the document outlives the visibility observers
532 // or the visibility observers and the document die in the same GC round. 532 // or the visibility observers and the document die in the same GC round.
533 // When they die in the same GC round, the list of visibility observers 533 // When they die in the same GC round, the list of visibility observers
534 // will not be empty on Document destruction. 534 // will not be empty on Document destruction.
535 ASSERT(m_visibilityObservers.isEmpty()); 535 ASSERT(m_visibilityObservers.isEmpty());
536 536
537 if (m_templateDocument) 537 if (m_templateDocument)
538 m_templateDocument->m_templateDocumentHost = nullptr; // balanced in ens ureTemplateDocument(). 538 m_templateDocument->m_templateDocumentHost = nullptr; // balanced in ens ureTemplateDocument().
539 #endif
540 539
541 m_scriptRunner.clear(); 540 m_scriptRunner.clear();
542 541
543 // FIXME: Oilpan: Not removing event listeners here also means that we do 542 // FIXME: Oilpan: Not removing event listeners here also means that we do
544 // not notify the inspector instrumentation that the event listeners are 543 // not notify the inspector instrumentation that the event listeners are
545 // gone. The Document and all the nodes in the document are gone, so maybe 544 // gone. The Document and all the nodes in the document are gone, so maybe
546 // that is OK? 545 // that is OK?
547 #if !ENABLE(OILPAN)
548 removeAllEventListenersRecursively(); 546 removeAllEventListenersRecursively();
549 547
550 // Currently we believe that Document can never outlive the parser. 548 // Currently we believe that Document can never outlive the parser.
551 // Although the Document may be replaced synchronously, DocumentParsers 549 // Although the Document may be replaced synchronously, DocumentParsers
552 // generally keep at least one reference to an Element which would in turn 550 // generally keep at least one reference to an Element which would in turn
553 // has a reference to the Document. If you hit this ASSERT, then that 551 // has a reference to the Document. If you hit this ASSERT, then that
554 // assumption is wrong. DocumentParser::detach() should ensure that even 552 // assumption is wrong. DocumentParser::detach() should ensure that even
555 // if the DocumentParser outlives the Document it won't cause badness. 553 // if the DocumentParser outlives the Document it won't cause badness.
556 ASSERT(!m_parser || m_parser->refCount() == 1); 554 ASSERT(!m_parser || m_parser->refCount() == 1);
557 detachParser(); 555 detachParser();
(...skipping 5204 matching lines...) Expand 10 before | Expand all | Expand 10 after
5762 visitor->trace(m_docType); 5760 visitor->trace(m_docType);
5763 visitor->trace(m_implementation); 5761 visitor->trace(m_implementation);
5764 visitor->trace(m_autofocusElement); 5762 visitor->trace(m_autofocusElement);
5765 visitor->trace(m_focusedElement); 5763 visitor->trace(m_focusedElement);
5766 visitor->trace(m_hoverNode); 5764 visitor->trace(m_hoverNode);
5767 visitor->trace(m_activeHoverElement); 5765 visitor->trace(m_activeHoverElement);
5768 visitor->trace(m_documentElement); 5766 visitor->trace(m_documentElement);
5769 visitor->trace(m_titleElement); 5767 visitor->trace(m_titleElement);
5770 visitor->trace(m_markers); 5768 visitor->trace(m_markers);
5771 visitor->trace(m_currentScriptStack); 5769 visitor->trace(m_currentScriptStack);
5770 visitor->trace(m_scriptRunner);
5772 visitor->trace(m_transformSourceDocument); 5771 visitor->trace(m_transformSourceDocument);
5773 visitor->trace(m_listsInvalidatedAtDocument); 5772 visitor->trace(m_listsInvalidatedAtDocument);
5774 #if ENABLE(OILPAN) 5773 #if ENABLE(OILPAN)
5775 for (int i = 0; i < numNodeListInvalidationTypes; ++i) 5774 for (int i = 0; i < numNodeListInvalidationTypes; ++i)
5776 visitor->trace(m_nodeLists[i]); 5775 visitor->trace(m_nodeLists[i]);
5777 #endif 5776 #endif
5778 visitor->trace(m_cssCanvasElements); 5777 visitor->trace(m_cssCanvasElements);
5779 visitor->trace(m_topLayerElements); 5778 visitor->trace(m_topLayerElements);
5780 visitor->trace(m_elemSheet); 5779 visitor->trace(m_elemSheet);
5781 visitor->trace(m_nodeIterators); 5780 visitor->trace(m_nodeIterators);
(...skipping 14 matching lines...) Expand all
5796 visitor->trace(m_timeline); 5795 visitor->trace(m_timeline);
5797 visitor->trace(m_compositorPendingAnimations); 5796 visitor->trace(m_compositorPendingAnimations);
5798 visitor->registerWeakMembers<Document, &Document::clearWeakMembers>(this); 5797 visitor->registerWeakMembers<Document, &Document::clearWeakMembers>(this);
5799 DocumentSupplementable::trace(visitor); 5798 DocumentSupplementable::trace(visitor);
5800 TreeScope::trace(visitor); 5799 TreeScope::trace(visitor);
5801 ContainerNode::trace(visitor); 5800 ContainerNode::trace(visitor);
5802 ExecutionContext::trace(visitor); 5801 ExecutionContext::trace(visitor);
5803 } 5802 }
5804 5803
5805 } // namespace WebCore 5804 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698