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

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

Issue 66483002: fontSelector should be reset when removing stylesheets which has @font-face rule. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 1 month 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, 2010, 2012 Apple Inc. All r ights reserved. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 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) 2010 Nokia Corporation and/or its subsidiary(-ies) 8 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
9 * Copyright (C) 2013 Google Inc. All rights reserved. 9 * Copyright (C) 2013 Google Inc. All rights reserved.
10 * 10 *
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 } 94 }
95 } 95 }
96 96
97 bool ShadowTreeStyleSheetCollection::updateActiveStyleSheets(StyleEngine* collec tions, StyleResolverUpdateMode updateMode) 97 bool ShadowTreeStyleSheetCollection::updateActiveStyleSheets(StyleEngine* collec tions, StyleResolverUpdateMode updateMode)
98 { 98 {
99 Vector<RefPtr<StyleSheet> > styleSheets; 99 Vector<RefPtr<StyleSheet> > styleSheets;
100 Vector<RefPtr<CSSStyleSheet> > activeCSSStyleSheets; 100 Vector<RefPtr<CSSStyleSheet> > activeCSSStyleSheets;
101 collectStyleSheets(collections, styleSheets, activeCSSStyleSheets); 101 collectStyleSheets(collections, styleSheets, activeCSSStyleSheets);
102 102
103 bool requiresFullStyleRecalc = true; 103 bool requiresFullStyleRecalc = true;
104 bool requiresResetFontSelector = false;
104 105
105 StyleResolverUpdateType styleResolverUpdateType; 106 StyleResolverUpdateType styleResolverUpdateType;
106 analyzeStyleSheetChange(updateMode, activeAuthorStyleSheets(), activeCSSStyl eSheets, styleResolverUpdateType, requiresFullStyleRecalc); 107 analyzeStyleSheetChange(updateMode, activeAuthorStyleSheets(), activeCSSStyl eSheets, styleResolverUpdateType, requiresFullStyleRecalc, requiresResetFontSele ctor);
107 108
108 if (StyleResolver* styleResolver = document()->styleResolverIfExists()) { 109 if (StyleResolver* styleResolver = document()->styleResolverIfExists()) {
109 // FIXME: We might have already had styles in child treescope. In this c ase, we cannot use buildScopedStyleTreeInDocumentOrder. 110 // FIXME: We might have already had styles in child treescope. In this c ase, we cannot use buildScopedStyleTreeInDocumentOrder.
110 // Need to change "false" to some valid condition. 111 // Need to change "false" to some valid condition.
111 styleResolver->setBuildScopedStyleTreeInDocumentOrder(false); 112 styleResolver->setBuildScopedStyleTreeInDocumentOrder(false);
112 if (styleResolverUpdateType == Reset || styleResolverUpdateType == Recon struct) { 113 if (styleResolverUpdateType == Reset || styleResolverUpdateType == Recon struct) {
113 // We should not destroy StyleResolver when we find any stylesheet u pdate in a shadow tree. 114 // We should not destroy StyleResolver when we find any stylesheet u pdate in a shadow tree.
114 // In this case, we will reset rulesets created from style elements in the shadow tree. 115 // In this case, we will reset rulesets created from style elements in the shadow tree.
115 resetAllRuleSetsInTreeScope(styleResolver); 116 resetAllRuleSetsInTreeScope(styleResolver);
116 styleResolver->appendAuthorStyleSheets(0, activeCSSStyleSheets); 117 styleResolver->appendAuthorStyleSheets(0, activeCSSStyleSheets);
117 } else { 118 } else {
118 ASSERT(styleResolverUpdateType == Additive); 119 ASSERT(styleResolverUpdateType == Additive);
119 styleResolver->appendAuthorStyleSheets(m_activeAuthorStyleSheets.siz e(), activeCSSStyleSheets); 120 styleResolver->appendAuthorStyleSheets(m_activeAuthorStyleSheets.siz e(), activeCSSStyleSheets);
120 } 121 }
121 } 122 }
122 if (requiresFullStyleRecalc) 123 if (requiresFullStyleRecalc)
123 toShadowRoot(m_treeScope.rootNode())->host()->setNeedsStyleRecalc(); 124 toShadowRoot(m_treeScope.rootNode())->host()->setNeedsStyleRecalc();
124 125
125 m_scopingNodesForStyleScoped.didRemoveScopingNodes(); 126 m_scopingNodesForStyleScoped.didRemoveScopingNodes();
126 m_activeAuthorStyleSheets.swap(activeCSSStyleSheets); 127 m_activeAuthorStyleSheets.swap(activeCSSStyleSheets);
127 m_styleSheetsForStyleSheetList.swap(styleSheets); 128 m_styleSheetsForStyleSheetList.swap(styleSheets);
128 updateUsesRemUnits(); 129 updateUsesRemUnits();
129 130
130 return requiresFullStyleRecalc; 131 return requiresFullStyleRecalc;
131 } 132 }
132 133
133 } 134 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698