| Index: third_party/WebKit/Source/core/dom/ShadowTreeStyleSheetCollection.cpp
|
| diff --git a/third_party/WebKit/Source/core/dom/ShadowTreeStyleSheetCollection.cpp b/third_party/WebKit/Source/core/dom/ShadowTreeStyleSheetCollection.cpp
|
| index 29dad5ffed2e06abdc62cbe4e4216c7898605a2f..7f735dd5d9bb6c537f8375d32dcbf24e20def2b5 100644
|
| --- a/third_party/WebKit/Source/core/dom/ShadowTreeStyleSheetCollection.cpp
|
| +++ b/third_party/WebKit/Source/core/dom/ShadowTreeStyleSheetCollection.cpp
|
| @@ -47,7 +47,6 @@ ShadowTreeStyleSheetCollection::ShadowTreeStyleSheetCollection(
|
| : TreeScopeStyleSheetCollection(shadowRoot) {}
|
|
|
| void ShadowTreeStyleSheetCollection::collectStyleSheets(
|
| - StyleEngine& engine,
|
| StyleSheetCollection& collection) {
|
| for (Node* n : m_styleSheetCandidateNodes) {
|
| StyleSheetCandidate candidate(*n);
|
| @@ -58,46 +57,19 @@ void ShadowTreeStyleSheetCollection::collectStyleSheets(
|
| continue;
|
|
|
| collection.appendSheetForList(sheet);
|
| - if (candidate.canBeActivated(nullAtom))
|
| - collection.appendActiveStyleSheet(toCSSStyleSheet(sheet));
|
| + if (candidate.canBeActivated(nullAtom)) {
|
| + CSSStyleSheet* cssSheet = toCSSStyleSheet(sheet);
|
| + collection.appendActiveStyleSheet(std::make_pair(
|
| + cssSheet, document().styleEngine().ruleSetForSheet(*cssSheet)));
|
| + }
|
| }
|
| }
|
|
|
| -void ShadowTreeStyleSheetCollection::updateActiveStyleSheets(
|
| - StyleEngine& engine,
|
| - StyleResolverUpdateMode updateMode) {
|
| +void ShadowTreeStyleSheetCollection::updateActiveStyleSheets() {
|
| // StyleSheetCollection is GarbageCollected<>, allocate it on the heap.
|
| StyleSheetCollection* collection = StyleSheetCollection::create();
|
| - collectStyleSheets(engine, *collection);
|
| -
|
| - StyleSheetChange change;
|
| - analyzeStyleSheetChange(updateMode, collection->activeAuthorStyleSheets(),
|
| - change);
|
| -
|
| - if (StyleResolver* styleResolver = engine.resolver()) {
|
| - if (change.styleResolverUpdateType != Additive) {
|
| - // We should not destroy StyleResolver when we find any stylesheet update
|
| - // in a shadow tree. In this case, we will reset rulesets created from
|
| - // style elements in the shadow tree.
|
| - engine.resetAuthorStyle(treeScope());
|
| - styleResolver->removePendingAuthorStyleSheets(m_activeAuthorStyleSheets);
|
| - styleResolver->lazyAppendAuthorStyleSheets(
|
| - 0, collection->activeAuthorStyleSheets());
|
| - } else {
|
| - styleResolver->lazyAppendAuthorStyleSheets(
|
| - m_activeAuthorStyleSheets.size(),
|
| - collection->activeAuthorStyleSheets());
|
| - }
|
| - }
|
| - if (change.requiresFullStyleRecalc)
|
| - toShadowRoot(treeScope().rootNode())
|
| - .host()
|
| - .setNeedsStyleRecalc(SubtreeStyleChange,
|
| - StyleChangeReasonForTracing::create(
|
| - StyleChangeReason::ActiveStylesheetsUpdate));
|
| -
|
| - collection->swap(*this);
|
| - collection->dispose();
|
| + collectStyleSheets(*collection);
|
| + applyActiveStyleSheetChanges(*collection);
|
| }
|
|
|
| } // namespace blink
|
|
|