| Index: Source/core/dom/DocumentStyleSheetCollection.cpp
|
| diff --git a/Source/core/dom/DocumentStyleSheetCollection.cpp b/Source/core/dom/DocumentStyleSheetCollection.cpp
|
| index c252e12dc8667ad3dad9bc78849a0b5d440eedf3..0d713a8148c5b0933888631b19cc70eddfce7095 100644
|
| --- a/Source/core/dom/DocumentStyleSheetCollection.cpp
|
| +++ b/Source/core/dom/DocumentStyleSheetCollection.cpp
|
| @@ -123,22 +123,23 @@
|
|
|
| if (change.styleResolverUpdateType == Reconstruct) {
|
| engine->clearMasterResolver();
|
| - // FIMXE: The following depends on whether StyleRuleFontFace was modified or not.
|
| - // No need to always-clear font cache.
|
| - engine->clearFontCache();
|
| + engine->resetFontSelector();
|
| } else if (StyleResolver* styleResolver = engine->resolver()) {
|
| // FIXME: We might have already had styles in child treescope. In this case, we cannot use buildScopedStyleTreeInDocumentOrder.
|
| // Need to change "false" to some valid condition.
|
| styleResolver->setBuildScopedStyleTreeInDocumentOrder(false);
|
| if (change.styleResolverUpdateType != Additive) {
|
| - ASSERT(change.styleResolverUpdateType == Reset);
|
| + ASSERT(change.styleResolverUpdateType == Reset || change.styleResolverUpdateType == ResetStyleResolverAndFontSelector);
|
| resetAllRuleSetsInTreeScope(styleResolver);
|
| - engine->removeFontFaceRules(change.fontFaceRulesToRemove);
|
| + if (change.styleResolverUpdateType == ResetStyleResolverAndFontSelector)
|
| + engine->resetFontSelector();
|
| styleResolver->removePendingAuthorStyleSheets(m_activeAuthorStyleSheets);
|
| styleResolver->lazyAppendAuthorStyleSheets(0, collection.activeAuthorStyleSheets());
|
| } else {
|
| styleResolver->lazyAppendAuthorStyleSheets(m_activeAuthorStyleSheets.size(), collection.activeAuthorStyleSheets());
|
| }
|
| + } else if (change.styleResolverUpdateType == ResetStyleResolverAndFontSelector) {
|
| + engine->resetFontSelector();
|
| }
|
| m_scopingNodesForStyleScoped.didRemoveScopingNodes();
|
|
|
|
|