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

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

Issue 23049008: Replace style sharing cousin list search with LRU (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: ToT + Elliott's changes Created 7 years, 4 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 1662 matching lines...) Expand 10 before | Expand all | Expand 10 after
1673 unscheduleStyleRecalc(); 1673 unscheduleStyleRecalc();
1674 1674
1675 // FIXME: SVG <use> element can schedule a recalc in the middle of an al ready running one. 1675 // FIXME: SVG <use> element can schedule a recalc in the middle of an al ready running one.
1676 // See DocumentStyleSheetCollection::updateActiveStyleSheets. 1676 // See DocumentStyleSheetCollection::updateActiveStyleSheets.
1677 if (m_styleSheetCollection->needsUpdateActiveStylesheetsOnStyleRecalc()) 1677 if (m_styleSheetCollection->needsUpdateActiveStylesheetsOnStyleRecalc())
1678 setNeedsStyleRecalc(); 1678 setNeedsStyleRecalc();
1679 1679
1680 m_inStyleRecalc = false; 1680 m_inStyleRecalc = false;
1681 1681
1682 // Pseudo element removal and similar may only work with these flags sti ll set. Reset them after the style recalc. 1682 // Pseudo element removal and similar may only work with these flags sti ll set. Reset them after the style recalc.
1683 if (m_styleResolver) 1683 if (m_styleResolver) {
1684 m_styleSheetCollection->resetCSSFeatureFlags(m_styleResolver->ruleFe atureSet()); 1684 m_styleSheetCollection->resetCSSFeatureFlags(m_styleResolver->ruleFe atureSet());
1685 m_styleResolver->clearStyleSharingList();
esprehn 2013/08/22 17:33:02 I think it'd make more sense to clear it at the st
1686 }
1685 1687
1686 if (frameView) { 1688 if (frameView) {
1687 frameView->resumeScheduledEvents(); 1689 frameView->resumeScheduledEvents();
1688 frameView->endDeferredRepaints(); 1690 frameView->endDeferredRepaints();
1689 } 1691 }
1690 } 1692 }
1691 1693
1692 STYLE_STATS_PRINT(); 1694 STYLE_STATS_PRINT();
1693 STYLE_STATS_CLEAR(); 1695 STYLE_STATS_CLEAR();
1694 1696
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
1923 // indicate destruction mode, i.e. attached() but renderer == 0 1925 // indicate destruction mode, i.e. attached() but renderer == 0
1924 setRenderer(0); 1926 setRenderer(0);
1925 1927
1926 m_hoverNode = 0; 1928 m_hoverNode = 0;
1927 m_focusedElement = 0; 1929 m_focusedElement = 0;
1928 m_activeElement = 0; 1930 m_activeElement = 0;
1929 1931
1930 ContainerNode::detach(context); 1932 ContainerNode::detach(context);
1931 1933
1932 unscheduleStyleRecalc(); 1934 unscheduleStyleRecalc();
1935 if (m_styleResolver)
1936 m_styleResolver->clearStyleSharingList();
esprehn 2013/08/22 17:33:02 Why doesn't this function just call clearStyleReso
1933 1937
1934 if (render) 1938 if (render)
1935 render->destroy(); 1939 render->destroy();
1936 1940
1937 if (m_touchEventTargets && m_touchEventTargets->size() && parentDocument()) 1941 if (m_touchEventTargets && m_touchEventTargets->size() && parentDocument())
1938 parentDocument()->didRemoveEventTargetNode(this); 1942 parentDocument()->didRemoveEventTargetNode(this);
1939 1943
1940 // This is required, as our Frame might delete itself as soon as it detaches 1944 // This is required, as our Frame might delete itself as soon as it detaches
1941 // us. However, this violates Node::detach() semantics, as it's never 1945 // us. However, this violates Node::detach() semantics, as it's never
1942 // possible to re-attach. Eventually Document::detach() should be renamed, 1946 // possible to re-attach. Eventually Document::detach() should be renamed,
(...skipping 3261 matching lines...) Expand 10 before | Expand all | Expand 10 after
5204 { 5208 {
5205 return DocumentLifecycleNotifier::create(this); 5209 return DocumentLifecycleNotifier::create(this);
5206 } 5210 }
5207 5211
5208 DocumentLifecycleNotifier* Document::lifecycleNotifier() 5212 DocumentLifecycleNotifier* Document::lifecycleNotifier()
5209 { 5213 {
5210 return static_cast<DocumentLifecycleNotifier*>(ScriptExecutionContext::lifec ycleNotifier()); 5214 return static_cast<DocumentLifecycleNotifier*>(ScriptExecutionContext::lifec ycleNotifier());
5211 } 5215 }
5212 5216
5213 } // namespace WebCore 5217 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698