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

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

Issue 16896019: Replace RenderArena with PartitionAlloc. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 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 | Annotate | Revision Log
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 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 #include "core/platform/Logging.h" 166 #include "core/platform/Logging.h"
167 #include "core/platform/PlatformKeyboardEvent.h" 167 #include "core/platform/PlatformKeyboardEvent.h"
168 #include "core/platform/Timer.h" 168 #include "core/platform/Timer.h"
169 #include "core/platform/chromium/TraceEvent.h" 169 #include "core/platform/chromium/TraceEvent.h"
170 #include "core/platform/network/HTTPParsers.h" 170 #include "core/platform/network/HTTPParsers.h"
171 #include "core/platform/text/PlatformLocale.h" 171 #include "core/platform/text/PlatformLocale.h"
172 #include "core/platform/text/SegmentedString.h" 172 #include "core/platform/text/SegmentedString.h"
173 #include "core/rendering/FlowThreadController.h" 173 #include "core/rendering/FlowThreadController.h"
174 #include "core/rendering/HitTestRequest.h" 174 #include "core/rendering/HitTestRequest.h"
175 #include "core/rendering/HitTestResult.h" 175 #include "core/rendering/HitTestResult.h"
176 #include "core/rendering/RenderArena.h"
177 #include "core/rendering/RenderLayerCompositor.h" 176 #include "core/rendering/RenderLayerCompositor.h"
178 #include "core/rendering/RenderNamedFlowThread.h" 177 #include "core/rendering/RenderNamedFlowThread.h"
179 #include "core/rendering/RenderTextControl.h" 178 #include "core/rendering/RenderTextControl.h"
180 #include "core/rendering/RenderView.h" 179 #include "core/rendering/RenderView.h"
181 #include "core/rendering/RenderWidget.h" 180 #include "core/rendering/RenderWidget.h"
182 #include "core/rendering/TextAutosizer.h" 181 #include "core/rendering/TextAutosizer.h"
183 #include "core/svg/SVGDocumentExtensions.h" 182 #include "core/svg/SVGDocumentExtensions.h"
184 #include "core/svg/SVGSVGElement.h" 183 #include "core/svg/SVGSVGElement.h"
185 #include "core/svg/SVGStyleElement.h" 184 #include "core/svg/SVGStyleElement.h"
186 #include "core/workers/SharedWorkerRepository.h" 185 #include "core/workers/SharedWorkerRepository.h"
(...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after
563 562
564 // Currently we believe that Document can never outlive the parser. 563 // Currently we believe that Document can never outlive the parser.
565 // Although the Document may be replaced synchronously, DocumentParsers 564 // Although the Document may be replaced synchronously, DocumentParsers
566 // generally keep at least one reference to an Element which would in turn 565 // generally keep at least one reference to an Element which would in turn
567 // has a reference to the Document. If you hit this ASSERT, then that 566 // has a reference to the Document. If you hit this ASSERT, then that
568 // assumption is wrong. DocumentParser::detach() should ensure that even 567 // assumption is wrong. DocumentParser::detach() should ensure that even
569 // if the DocumentParser outlives the Document it won't cause badness. 568 // if the DocumentParser outlives the Document it won't cause badness.
570 ASSERT(!m_parser || m_parser->refCount() == 1); 569 ASSERT(!m_parser || m_parser->refCount() == 1);
571 detachParser(); 570 detachParser();
572 571
573 m_renderArena.clear();
574
575 if (this == topDocument()) 572 if (this == topDocument())
576 clearAXObjectCache(); 573 clearAXObjectCache();
577 574
578 m_decoder = 0; 575 m_decoder = 0;
579 576
580 if (m_styleSheetList) 577 if (m_styleSheetList)
581 m_styleSheetList->detachFromDocument(); 578 m_styleSheetList->detachFromDocument();
582 579
583 m_styleSheetCollection.clear(); 580 m_styleSheetCollection.clear();
584 581
(...skipping 1115 matching lines...) Expand 10 before | Expand all | Expand 10 after
1700 { 1697 {
1701 PostAttachCallbackDisabler disabler(this); 1698 PostAttachCallbackDisabler disabler(this);
1702 WidgetHierarchyUpdatesSuspensionScope suspendWidgetHierarchyUpdates; 1699 WidgetHierarchyUpdatesSuspensionScope suspendWidgetHierarchyUpdates;
1703 1700
1704 RefPtr<FrameView> frameView = view(); 1701 RefPtr<FrameView> frameView = view();
1705 if (frameView) { 1702 if (frameView) {
1706 frameView->pauseScheduledEvents(); 1703 frameView->pauseScheduledEvents();
1707 frameView->beginDeferredRepaints(); 1704 frameView->beginDeferredRepaints();
1708 } 1705 }
1709 1706
1710 ASSERT(!renderer() || renderArena()); 1707 if (!renderer())
1711 if (!renderer() || !renderArena())
1712 goto bailOut; 1708 goto bailOut;
1713 1709
1714 if (m_pendingStyleRecalcShouldForce) 1710 if (m_pendingStyleRecalcShouldForce)
1715 change = Force; 1711 change = Force;
1716 1712
1717 // Recalculating the root style (on the document) is not needed in the c ommon case. 1713 // Recalculating the root style (on the document) is not needed in the c ommon case.
1718 if ((change == Force) || (shouldDisplaySeamlesslyWithParent() && (change >= Inherit))) { 1714 if ((change == Force) || (shouldDisplaySeamlesslyWithParent() && (change >= Inherit))) {
1719 // style selector may set this again during recalc 1715 // style selector may set this again during recalc
1720 m_hasNodesWithPlaceholderStyle = false; 1716 m_hasNodesWithPlaceholderStyle = false;
1721 1717
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
1921 void Document::clearStyleResolver() 1917 void Document::clearStyleResolver()
1922 { 1918 {
1923 m_styleResolver.clear(); 1919 m_styleResolver.clear();
1924 } 1920 }
1925 1921
1926 void Document::attach(const AttachContext& context) 1922 void Document::attach(const AttachContext& context)
1927 { 1923 {
1928 ASSERT(!attached()); 1924 ASSERT(!attached());
1929 ASSERT(!m_axObjectCache || this != topDocument()); 1925 ASSERT(!m_axObjectCache || this != topDocument());
1930 1926
1931 if (!m_renderArena)
1932 m_renderArena = RenderArena::create();
1933
1934 // Create the rendering tree 1927 // Create the rendering tree
1935 setRenderer(new (m_renderArena.get()) RenderView(this)); 1928 setRenderer(new RenderView(this));
1936 renderView()->setIsInWindow(true); 1929 renderView()->setIsInWindow(true);
1937 1930
1938 recalcStyle(Force); 1931 recalcStyle(Force);
1939 1932
1940 ContainerNode::attach(context); 1933 ContainerNode::attach(context);
1941 } 1934 }
1942 1935
1943 void Document::detach(const AttachContext& context) 1936 void Document::detach(const AttachContext& context)
1944 { 1937 {
1945 ASSERT(attached()); 1938 ASSERT(attached());
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
1990 1983
1991 if (m_touchEventTargets && m_touchEventTargets->size() && parentDocument()) 1984 if (m_touchEventTargets && m_touchEventTargets->size() && parentDocument())
1992 parentDocument()->didRemoveEventTargetNode(this); 1985 parentDocument()->didRemoveEventTargetNode(this);
1993 1986
1994 // This is required, as our Frame might delete itself as soon as it detaches 1987 // This is required, as our Frame might delete itself as soon as it detaches
1995 // us. However, this violates Node::detach() semantics, as it's never 1988 // us. However, this violates Node::detach() semantics, as it's never
1996 // possible to re-attach. Eventually Document::detach() should be renamed, 1989 // possible to re-attach. Eventually Document::detach() should be renamed,
1997 // or this setting of the frame to 0 could be made explicit in each of the 1990 // or this setting of the frame to 0 could be made explicit in each of the
1998 // callers of Document::detach(). 1991 // callers of Document::detach().
1999 m_frame = 0; 1992 m_frame = 0;
2000 m_renderArena.clear();
2001 1993
2002 if (m_mediaQueryMatcher) 1994 if (m_mediaQueryMatcher)
2003 m_mediaQueryMatcher->documentDestroyed(); 1995 m_mediaQueryMatcher->documentDestroyed();
2004 1996
2005 if (m_lifecycleNotifier) 1997 if (m_lifecycleNotifier)
2006 m_lifecycleNotifier->notifyDocumentWasDetached(); 1998 m_lifecycleNotifier->notifyDocumentWasDetached();
2007 } 1999 }
2008 2000
2009 void Document::prepareForDestruction() 2001 void Document::prepareForDestruction()
2010 { 2002 {
(...skipping 3113 matching lines...) Expand 10 before | Expand all | Expand 10 after
5124 info.addMember(m_listsInvalidatedAtDocument, "listsInvalidatedAtDocument"); 5116 info.addMember(m_listsInvalidatedAtDocument, "listsInvalidatedAtDocument");
5125 info.addMember(m_styleResolverThrowawayTimer, "styleResolverThrowawayTimer") ; 5117 info.addMember(m_styleResolverThrowawayTimer, "styleResolverThrowawayTimer") ;
5126 info.addMember(m_parser, "parser"); 5118 info.addMember(m_parser, "parser");
5127 info.addMember(m_contextFeatures, "contextFeatures"); 5119 info.addMember(m_contextFeatures, "contextFeatures");
5128 info.addMember(m_focusedNode, "focusedNode"); 5120 info.addMember(m_focusedNode, "focusedNode");
5129 info.addMember(m_hoverNode, "hoverNode"); 5121 info.addMember(m_hoverNode, "hoverNode");
5130 info.addMember(m_documentElement, "documentElement"); 5122 info.addMember(m_documentElement, "documentElement");
5131 info.addMember(m_visitedLinkState, "visitedLinkState"); 5123 info.addMember(m_visitedLinkState, "visitedLinkState");
5132 info.addMember(m_styleRecalcTimer, "styleRecalcTimer"); 5124 info.addMember(m_styleRecalcTimer, "styleRecalcTimer");
5133 info.addMember(m_titleElement, "titleElement"); 5125 info.addMember(m_titleElement, "titleElement");
5134 info.ignoreMember(m_renderArena);
5135 info.addMember(m_axObjectCache, "axObjectCache"); 5126 info.addMember(m_axObjectCache, "axObjectCache");
5136 info.addMember(m_markers, "markers"); 5127 info.addMember(m_markers, "markers");
5137 info.addMember(m_cssTarget, "cssTarget"); 5128 info.addMember(m_cssTarget, "cssTarget");
5138 info.addMember(m_updateFocusAppearanceTimer, "updateFocusAppearanceTimer"); 5129 info.addMember(m_updateFocusAppearanceTimer, "updateFocusAppearanceTimer");
5139 info.addMember(m_pendingStateObject, "pendingStateObject"); 5130 info.addMember(m_pendingStateObject, "pendingStateObject");
5140 info.addMember(m_scriptRunner, "scriptRunner"); 5131 info.addMember(m_scriptRunner, "scriptRunner");
5141 info.addMember(m_transformSource, "transformSource"); 5132 info.addMember(m_transformSource, "transformSource");
5142 info.addMember(m_transformSourceDocument, "transformSourceDocument"); 5133 info.addMember(m_transformSourceDocument, "transformSourceDocument");
5143 info.addMember(m_decoder, "decoder"); 5134 info.addMember(m_decoder, "decoder");
5144 info.addMember(m_xpathEvaluator, "xpathEvaluator"); 5135 info.addMember(m_xpathEvaluator, "xpathEvaluator");
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
5227 } 5218 }
5228 5219
5229 void Document::addLifecycleObserver(DocumentLifecycleObserver* observer) 5220 void Document::addLifecycleObserver(DocumentLifecycleObserver* observer)
5230 { 5221 {
5231 if (!m_lifecycleNotifier) 5222 if (!m_lifecycleNotifier)
5232 m_lifecycleNotifier = DocumentLifecycleNotifier::create(); 5223 m_lifecycleNotifier = DocumentLifecycleNotifier::create();
5233 m_lifecycleNotifier->addObserver(observer); 5224 m_lifecycleNotifier->addObserver(observer);
5234 } 5225 }
5235 5226
5236 } // namespace WebCore 5227 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698