OLD | NEW |
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 | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012 Apple Inc. All |
7 * rights reserved. | 7 * rights reserved. |
8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. | 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. |
9 * (http://www.torchmobile.com/) | 9 * (http://www.torchmobile.com/) |
10 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved. | 10 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved. |
(...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
374 } | 374 } |
375 | 375 |
376 void StyleEngine::didRemoveShadowRoot(ShadowRoot* shadowRoot) { | 376 void StyleEngine::didRemoveShadowRoot(ShadowRoot* shadowRoot) { |
377 m_styleSheetCollectionMap.remove(shadowRoot); | 377 m_styleSheetCollectionMap.remove(shadowRoot); |
378 m_activeTreeScopes.remove(shadowRoot); | 378 m_activeTreeScopes.remove(shadowRoot); |
379 m_dirtyTreeScopes.remove(shadowRoot); | 379 m_dirtyTreeScopes.remove(shadowRoot); |
380 } | 380 } |
381 | 381 |
382 void StyleEngine::shadowRootRemovedFromDocument(ShadowRoot* shadowRoot) { | 382 void StyleEngine::shadowRootRemovedFromDocument(ShadowRoot* shadowRoot) { |
383 if (StyleResolver* styleResolver = resolver()) { | 383 if (StyleResolver* styleResolver = resolver()) { |
384 styleResolver->resetAuthorStyle(*shadowRoot); | 384 styleResolver->resetRuleFeatures(); |
385 | 385 |
386 if (TreeScopeStyleSheetCollection* collection = | 386 if (TreeScopeStyleSheetCollection* collection = |
387 styleSheetCollectionFor(*shadowRoot)) | 387 styleSheetCollectionFor(*shadowRoot)) |
388 styleResolver->removePendingAuthorStyleSheets( | 388 styleResolver->removePendingAuthorStyleSheets( |
389 collection->activeAuthorStyleSheets()); | 389 collection->activeAuthorStyleSheets()); |
390 } | 390 } |
| 391 shadowRoot->clearScopedStyleResolver(); |
391 m_styleSheetCollectionMap.remove(shadowRoot); | 392 m_styleSheetCollectionMap.remove(shadowRoot); |
392 m_activeTreeScopes.remove(shadowRoot); | 393 m_activeTreeScopes.remove(shadowRoot); |
393 m_dirtyTreeScopes.remove(shadowRoot); | 394 m_dirtyTreeScopes.remove(shadowRoot); |
| 395 m_treeBoundaryCrossingScopes.remove(&shadowRoot->rootNode()); |
| 396 } |
| 397 |
| 398 void StyleEngine::addTreeBoundaryCrossingScope(const TreeScope& treeScope) { |
| 399 m_treeBoundaryCrossingScopes.add(&treeScope.rootNode()); |
| 400 } |
| 401 |
| 402 void StyleEngine::resetAuthorStyle(TreeScope& treeScope) { |
| 403 m_treeBoundaryCrossingScopes.remove(&treeScope.rootNode()); |
| 404 |
| 405 ScopedStyleResolver* scopedResolver = treeScope.scopedStyleResolver(); |
| 406 if (!scopedResolver) |
| 407 return; |
| 408 |
| 409 DCHECK(m_resolver); |
| 410 m_resolver->resetRuleFeatures(); |
| 411 if (treeScope.rootNode().isDocumentNode()) { |
| 412 scopedResolver->resetAuthorStyle(); |
| 413 return; |
| 414 } |
| 415 |
| 416 treeScope.clearScopedStyleResolver(); |
394 } | 417 } |
395 | 418 |
396 void StyleEngine::appendActiveAuthorStyleSheets() { | 419 void StyleEngine::appendActiveAuthorStyleSheets() { |
397 DCHECK(isMaster()); | 420 DCHECK(isMaster()); |
398 | 421 |
399 viewportRulesChanged(); | 422 viewportRulesChanged(); |
400 | 423 |
401 m_resolver->appendAuthorStyleSheets( | 424 m_resolver->appendAuthorStyleSheets( |
402 documentStyleSheetCollection().activeAuthorStyleSheets()); | 425 documentStyleSheetCollection().activeAuthorStyleSheets()); |
403 for (TreeScope* treeScope : m_activeTreeScopes) { | 426 for (TreeScope* treeScope : m_activeTreeScopes) { |
(...skipping 576 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
980 visitor->trace(m_document); | 1003 visitor->trace(m_document); |
981 visitor->trace(m_injectedAuthorStyleSheets); | 1004 visitor->trace(m_injectedAuthorStyleSheets); |
982 visitor->trace(m_inspectorStyleSheet); | 1005 visitor->trace(m_inspectorStyleSheet); |
983 visitor->trace(m_documentStyleSheetCollection); | 1006 visitor->trace(m_documentStyleSheetCollection); |
984 visitor->trace(m_styleSheetCollectionMap); | 1007 visitor->trace(m_styleSheetCollectionMap); |
985 visitor->trace(m_resolver); | 1008 visitor->trace(m_resolver); |
986 visitor->trace(m_viewportResolver); | 1009 visitor->trace(m_viewportResolver); |
987 visitor->trace(m_styleInvalidator); | 1010 visitor->trace(m_styleInvalidator); |
988 visitor->trace(m_dirtyTreeScopes); | 1011 visitor->trace(m_dirtyTreeScopes); |
989 visitor->trace(m_activeTreeScopes); | 1012 visitor->trace(m_activeTreeScopes); |
| 1013 visitor->trace(m_treeBoundaryCrossingScopes); |
990 visitor->trace(m_fontSelector); | 1014 visitor->trace(m_fontSelector); |
991 visitor->trace(m_textToSheetCache); | 1015 visitor->trace(m_textToSheetCache); |
992 visitor->trace(m_sheetToTextCache); | 1016 visitor->trace(m_sheetToTextCache); |
993 CSSFontSelectorClient::trace(visitor); | 1017 CSSFontSelectorClient::trace(visitor); |
994 } | 1018 } |
995 | 1019 |
996 DEFINE_TRACE_WRAPPERS(StyleEngine) { | 1020 DEFINE_TRACE_WRAPPERS(StyleEngine) { |
997 for (auto sheet : m_injectedAuthorStyleSheets) { | 1021 for (auto sheet : m_injectedAuthorStyleSheets) { |
998 visitor->traceWrappers(sheet); | 1022 visitor->traceWrappers(sheet); |
999 } | 1023 } |
1000 visitor->traceWrappers(m_documentStyleSheetCollection); | 1024 visitor->traceWrappers(m_documentStyleSheetCollection); |
1001 } | 1025 } |
1002 | 1026 |
1003 } // namespace blink | 1027 } // namespace blink |
OLD | NEW |