Index: third_party/WebKit/Source/core/css/ActiveStyleSheets.cpp |
diff --git a/third_party/WebKit/Source/core/css/ActiveStyleSheets.cpp b/third_party/WebKit/Source/core/css/ActiveStyleSheets.cpp |
index 271359d1c38166960c6ce78a2135b79d86e6b21a..5c5326338612c35413b2aff4bd8d5f28ca167fa0 100644 |
--- a/third_party/WebKit/Source/core/css/ActiveStyleSheets.cpp |
+++ b/third_party/WebKit/Source/core/css/ActiveStyleSheets.cpp |
@@ -103,94 +103,4 @@ ActiveSheetsChange compareActiveStyleSheets( |
return changedRuleSets.size() ? ActiveSheetsChanged : NoActiveSheetsChanged; |
} |
-namespace { |
- |
-enum RuleSetFlags { |
- FontFaceRules = 1 << 0, |
- KeyframesRules = 1 << 1, |
- FullRecalcRules = 1 << 2 |
-}; |
- |
-unsigned getRuleSetFlags(const HeapVector<Member<RuleSet>> ruleSets) { |
- unsigned flags = 0; |
- for (auto& ruleSet : ruleSets) { |
- ruleSet->compactRulesIfNeeded(); |
- if (!ruleSet->keyframesRules().isEmpty()) |
- flags |= KeyframesRules; |
- if (!ruleSet->fontFaceRules().isEmpty()) |
- flags |= FontFaceRules; |
- if (ruleSet->needsFullRecalcForRuleSetInvalidation()) |
- flags |= FullRecalcRules; |
- } |
- return flags; |
-} |
- |
-} // namespace |
- |
-void applyRuleSetChanges(StyleEngine& engine, |
- TreeScope& treeScope, |
- const ActiveStyleSheetVector& oldStyleSheets, |
- const ActiveStyleSheetVector& newStyleSheets) { |
- HeapVector<Member<RuleSet>> changedRuleSets; |
- |
- ActiveSheetsChange change = |
- compareActiveStyleSheets(oldStyleSheets, newStyleSheets, changedRuleSets); |
- if (change == NoActiveSheetsChanged) |
- return; |
- |
- // TODO(rune@opera.com): engine.setNeedsGlobalRuleSetUpdate(); |
- |
- unsigned changedRuleFlags = getRuleSetFlags(changedRuleSets); |
- bool fontsChanged = treeScope.rootNode().isDocumentNode() && |
- (changedRuleFlags & FontFaceRules); |
- unsigned appendStartIndex = 0; |
- |
- // We don't need to clear the font cache if new sheets are appended. |
- if (fontsChanged && change == ActiveSheetsChanged) |
- engine.clearFontCache(); |
- |
- // - If all sheets were removed, we remove the ScopedStyleResolver. |
- // - If new sheets were appended to existing ones, start appending after the |
- // common prefix. |
- // - For other diffs, reset author style and re-add all sheets for the |
- // TreeScope. |
- if (treeScope.scopedStyleResolver()) { |
- if (newStyleSheets.isEmpty()) |
- engine.resetAuthorStyle(treeScope); |
- else if (change == ActiveSheetsAppended) |
- appendStartIndex = oldStyleSheets.size(); |
- else |
- treeScope.scopedStyleResolver()->resetAuthorStyle(); |
- } |
- |
- if (!newStyleSheets.isEmpty()) { |
- treeScope.ensureScopedStyleResolver().appendActiveStyleSheets( |
- appendStartIndex, newStyleSheets); |
- } |
- |
- if (treeScope.document().hasPendingForcedStyleRecalc()) |
- return; |
- |
- if (!treeScope.document().body() || |
- treeScope.document().hasNodesWithPlaceholderStyle()) { |
- treeScope.document().setNeedsStyleRecalc( |
- SubtreeStyleChange, StyleChangeReasonForTracing::create( |
- StyleChangeReason::CleanupPlaceholderStyles)); |
- return; |
- } |
- |
- if (changedRuleFlags & KeyframesRules) |
- ScopedStyleResolver::keyframesRulesAdded(treeScope); |
- |
- if (fontsChanged || (changedRuleFlags & FullRecalcRules)) { |
- ScopedStyleResolver::invalidationRootForTreeScope(treeScope) |
- .setNeedsStyleRecalc(SubtreeStyleChange, |
- StyleChangeReasonForTracing::create( |
- StyleChangeReason::ActiveStylesheetsUpdate)); |
- return; |
- } |
- |
- engine.scheduleInvalidationsForRuleSets(treeScope, changedRuleSets); |
-} |
- |
} // namespace blink |