| 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 r
     ights reserved. | 6  * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 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) 2008, 2009, 2011, 2012 Google Inc. All rights reserved. | 8  * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved. | 
| 9  * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) | 9  * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) | 
| 10  * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved. | 10  * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved. | 
| (...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 194 { | 194 { | 
| 195     if (treeScope == m_document) | 195     if (treeScope == m_document) | 
| 196         return documentStyleSheetCollection(); | 196         return documentStyleSheetCollection(); | 
| 197 | 197 | 
| 198     StyleSheetCollectionMap::iterator it = m_styleSheetCollectionMap.find(&treeS
     cope); | 198     StyleSheetCollectionMap::iterator it = m_styleSheetCollectionMap.find(&treeS
     cope); | 
| 199     if (it == m_styleSheetCollectionMap.end()) | 199     if (it == m_styleSheetCollectionMap.end()) | 
| 200         return 0; | 200         return 0; | 
| 201     return it->value.get(); | 201     return it->value.get(); | 
| 202 } | 202 } | 
| 203 | 203 | 
| 204 const WillBeHeapVector<RefPtrWillBeMember<StyleSheet> >& StyleEngine::styleSheet
     sForStyleSheetList(TreeScope& treeScope) | 204 const WillBeHeapVector<RefPtrWillBeMember<StyleSheet>>& StyleEngine::styleSheets
     ForStyleSheetList(TreeScope& treeScope) | 
| 205 { | 205 { | 
| 206     if (treeScope == m_document) | 206     if (treeScope == m_document) | 
| 207         return documentStyleSheetCollection()->styleSheetsForStyleSheetList(); | 207         return documentStyleSheetCollection()->styleSheetsForStyleSheetList(); | 
| 208 | 208 | 
| 209     return ensureStyleSheetCollectionFor(treeScope)->styleSheetsForStyleSheetLis
     t(); | 209     return ensureStyleSheetCollectionFor(treeScope)->styleSheetsForStyleSheetLis
     t(); | 
| 210 } | 210 } | 
| 211 | 211 | 
| 212 const WillBeHeapVector<RefPtrWillBeMember<CSSStyleSheet> >& StyleEngine::activeA
     uthorStyleSheets() const | 212 const WillBeHeapVector<RefPtrWillBeMember<CSSStyleSheet>>& StyleEngine::activeAu
     thorStyleSheets() const | 
| 213 { | 213 { | 
| 214     return documentStyleSheetCollection()->activeAuthorStyleSheets(); | 214     return documentStyleSheetCollection()->activeAuthorStyleSheets(); | 
| 215 } | 215 } | 
| 216 | 216 | 
| 217 void StyleEngine::combineCSSFeatureFlags(const RuleFeatureSet& features) | 217 void StyleEngine::combineCSSFeatureFlags(const RuleFeatureSet& features) | 
| 218 { | 218 { | 
| 219     // Delay resetting the flags until after next style recalc since unapplying 
     the style may not work without these set (this is true at least with before/afte
     r). | 219     // Delay resetting the flags until after next style recalc since unapplying 
     the style may not work without these set (this is true at least with before/afte
     r). | 
| 220     m_usesSiblingRules = m_usesSiblingRules || features.usesSiblingRules(); | 220     m_usesSiblingRules = m_usesSiblingRules || features.usesSiblingRules(); | 
| 221     m_usesFirstLineRules = m_usesFirstLineRules || features.usesFirstLineRules()
     ; | 221     m_usesFirstLineRules = m_usesFirstLineRules || features.usesFirstLineRules()
     ; | 
| 222     m_usesWindowInactiveSelector = m_usesWindowInactiveSelector || features.uses
     WindowInactiveSelector(); | 222     m_usesWindowInactiveSelector = m_usesWindowInactiveSelector || features.uses
     WindowInactiveSelector(); | 
| 223     m_maxDirectAdjacentSelectors = max(m_maxDirectAdjacentSelectors, features.ma
     xDirectAdjacentSelectors()); | 223     m_maxDirectAdjacentSelectors = max(m_maxDirectAdjacentSelectors, features.ma
     xDirectAdjacentSelectors()); | 
| 224 } | 224 } | 
| 225 | 225 | 
| 226 void StyleEngine::resetCSSFeatureFlags(const RuleFeatureSet& features) | 226 void StyleEngine::resetCSSFeatureFlags(const RuleFeatureSet& features) | 
| 227 { | 227 { | 
| 228     m_usesSiblingRules = features.usesSiblingRules(); | 228     m_usesSiblingRules = features.usesSiblingRules(); | 
| 229     m_usesFirstLineRules = features.usesFirstLineRules(); | 229     m_usesFirstLineRules = features.usesFirstLineRules(); | 
| 230     m_usesWindowInactiveSelector = features.usesWindowInactiveSelector(); | 230     m_usesWindowInactiveSelector = features.usesWindowInactiveSelector(); | 
| 231     m_maxDirectAdjacentSelectors = features.maxDirectAdjacentSelectors(); | 231     m_maxDirectAdjacentSelectors = features.maxDirectAdjacentSelectors(); | 
| 232 } | 232 } | 
| 233 | 233 | 
| 234 const WillBeHeapVector<RefPtrWillBeMember<CSSStyleSheet> >& StyleEngine::injecte
     dAuthorStyleSheets() const | 234 const WillBeHeapVector<RefPtrWillBeMember<CSSStyleSheet>>& StyleEngine::injected
     AuthorStyleSheets() const | 
| 235 { | 235 { | 
| 236     updateInjectedStyleSheetCache(); | 236     updateInjectedStyleSheetCache(); | 
| 237     return m_injectedAuthorStyleSheets; | 237     return m_injectedAuthorStyleSheets; | 
| 238 } | 238 } | 
| 239 | 239 | 
| 240 void StyleEngine::updateInjectedStyleSheetCache() const | 240 void StyleEngine::updateInjectedStyleSheetCache() const | 
| 241 { | 241 { | 
| 242     if (m_injectedStyleSheetCacheValid) | 242     if (m_injectedStyleSheetCacheValid) | 
| 243         return; | 243         return; | 
| 244     m_injectedStyleSheetCacheValid = true; | 244     m_injectedStyleSheetCacheValid = true; | 
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 399 void StyleEngine::clearMediaQueryRuleSetStyleSheets() | 399 void StyleEngine::clearMediaQueryRuleSetStyleSheets() | 
| 400 { | 400 { | 
| 401     documentStyleSheetCollection()->clearMediaQueryRuleSetStyleSheets(); | 401     documentStyleSheetCollection()->clearMediaQueryRuleSetStyleSheets(); | 
| 402     clearMediaQueryRuleSetOnTreeScopeStyleSheets(m_activeTreeScopes.beginUnorder
     ed(), m_activeTreeScopes.endUnordered()); | 402     clearMediaQueryRuleSetOnTreeScopeStyleSheets(m_activeTreeScopes.beginUnorder
     ed(), m_activeTreeScopes.endUnordered()); | 
| 403     clearMediaQueryRuleSetOnTreeScopeStyleSheets(m_dirtyTreeScopes.begin(), m_di
     rtyTreeScopes.end()); | 403     clearMediaQueryRuleSetOnTreeScopeStyleSheets(m_dirtyTreeScopes.begin(), m_di
     rtyTreeScopes.end()); | 
| 404 } | 404 } | 
| 405 | 405 | 
| 406 void StyleEngine::updateStyleSheetsInImport(DocumentStyleSheetCollector& parentC
     ollector) | 406 void StyleEngine::updateStyleSheetsInImport(DocumentStyleSheetCollector& parentC
     ollector) | 
| 407 { | 407 { | 
| 408     ASSERT(!isMaster()); | 408     ASSERT(!isMaster()); | 
| 409     WillBeHeapVector<RefPtrWillBeMember<StyleSheet> > sheetsForList; | 409     WillBeHeapVector<RefPtrWillBeMember<StyleSheet>> sheetsForList; | 
| 410     ImportedDocumentStyleSheetCollector subcollector(parentCollector, sheetsForL
     ist); | 410     ImportedDocumentStyleSheetCollector subcollector(parentCollector, sheetsForL
     ist); | 
| 411     documentStyleSheetCollection()->collectStyleSheets(*this, subcollector); | 411     documentStyleSheetCollection()->collectStyleSheets(*this, subcollector); | 
| 412     documentStyleSheetCollection()->swapSheetsForSheetList(sheetsForList); | 412     documentStyleSheetCollection()->swapSheetsForSheetList(sheetsForList); | 
| 413 } | 413 } | 
| 414 | 414 | 
| 415 void StyleEngine::updateActiveStyleSheetsInShadow(StyleResolverUpdateMode update
     Mode, TreeScope* treeScope, UnorderedTreeScopeSet& treeScopesRemoved) | 415 void StyleEngine::updateActiveStyleSheetsInShadow(StyleResolverUpdateMode update
     Mode, TreeScope* treeScope, UnorderedTreeScopeSet& treeScopesRemoved) | 
| 416 { | 416 { | 
| 417     ASSERT(treeScope != m_document); | 417     ASSERT(treeScope != m_document); | 
| 418     ShadowTreeStyleSheetCollection* collection = static_cast<ShadowTreeStyleShee
     tCollection*>(styleSheetCollectionFor(*treeScope)); | 418     ShadowTreeStyleSheetCollection* collection = static_cast<ShadowTreeStyleShee
     tCollection*>(styleSheetCollectionFor(*treeScope)); | 
| 419     ASSERT(collection); | 419     ASSERT(collection); | 
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 452             m_activeTreeScopes.remove(*it); | 452             m_activeTreeScopes.remove(*it); | 
| 453     } | 453     } | 
| 454 | 454 | 
| 455     InspectorInstrumentation::activeStyleSheetsUpdated(m_document); | 455     InspectorInstrumentation::activeStyleSheetsUpdated(m_document); | 
| 456     m_usesRemUnits = documentStyleSheetCollection()->usesRemUnits(); | 456     m_usesRemUnits = documentStyleSheetCollection()->usesRemUnits(); | 
| 457 | 457 | 
| 458     m_dirtyTreeScopes.clear(); | 458     m_dirtyTreeScopes.clear(); | 
| 459     m_documentScopeDirty = false; | 459     m_documentScopeDirty = false; | 
| 460 } | 460 } | 
| 461 | 461 | 
| 462 const WillBeHeapVector<RefPtrWillBeMember<CSSStyleSheet> > StyleEngine::activeSt
     yleSheetsForInspector() const | 462 const WillBeHeapVector<RefPtrWillBeMember<CSSStyleSheet>> StyleEngine::activeSty
     leSheetsForInspector() const | 
| 463 { | 463 { | 
| 464     if (m_activeTreeScopes.isEmpty()) | 464     if (m_activeTreeScopes.isEmpty()) | 
| 465         return documentStyleSheetCollection()->activeAuthorStyleSheets(); | 465         return documentStyleSheetCollection()->activeAuthorStyleSheets(); | 
| 466 | 466 | 
| 467     WillBeHeapVector<RefPtrWillBeMember<CSSStyleSheet> > activeStyleSheets; | 467     WillBeHeapVector<RefPtrWillBeMember<CSSStyleSheet>> activeStyleSheets; | 
| 468 | 468 | 
| 469     activeStyleSheets.appendVector(documentStyleSheetCollection()->activeAuthorS
     tyleSheets()); | 469     activeStyleSheets.appendVector(documentStyleSheetCollection()->activeAuthorS
     tyleSheets()); | 
| 470     for (unsigned i = 0; i < m_activeTreeScopes.size(); ++i) { | 470     for (unsigned i = 0; i < m_activeTreeScopes.size(); ++i) { | 
| 471         TreeScope* treeScope = const_cast<TreeScope*>(m_activeTreeScopes[i]); | 471         TreeScope* treeScope = const_cast<TreeScope*>(m_activeTreeScopes[i]); | 
| 472         if (TreeScopeStyleSheetCollection* collection = m_styleSheetCollectionMa
     p.get(treeScope)) | 472         if (TreeScopeStyleSheetCollection* collection = m_styleSheetCollectionMa
     p.get(treeScope)) | 
| 473             activeStyleSheets.appendVector(collection->activeAuthorStyleSheets()
     ); | 473             activeStyleSheets.appendVector(collection->activeAuthorStyleSheets()
     ); | 
| 474     } | 474     } | 
| 475 | 475 | 
| 476     // FIXME: Inspector needs a vector which has all active stylesheets. | 476     // FIXME: Inspector needs a vector which has all active stylesheets. | 
| 477     // However, creating such a large vector might cause performance regression. | 477     // However, creating such a large vector might cause performance regression. | 
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 603     ASSERT(document().isActive()); | 603     ASSERT(document().isActive()); | 
| 604 | 604 | 
| 605     if (!m_fontSelector) | 605     if (!m_fontSelector) | 
| 606         return; | 606         return; | 
| 607 | 607 | 
| 608     m_fontSelector->updateGenericFontFamilySettings(*m_document); | 608     m_fontSelector->updateGenericFontFamilySettings(*m_document); | 
| 609     if (m_resolver) | 609     if (m_resolver) | 
| 610         m_resolver->invalidateMatchedPropertiesCache(); | 610         m_resolver->invalidateMatchedPropertiesCache(); | 
| 611 } | 611 } | 
| 612 | 612 | 
| 613 void StyleEngine::removeFontFaceRules(const WillBeHeapVector<RawPtrWillBeMember<
     const StyleRuleFontFace> >& fontFaceRules) | 613 void StyleEngine::removeFontFaceRules(const WillBeHeapVector<RawPtrWillBeMember<
     const StyleRuleFontFace>>& fontFaceRules) | 
| 614 { | 614 { | 
| 615     if (!m_fontSelector) | 615     if (!m_fontSelector) | 
| 616         return; | 616         return; | 
| 617 | 617 | 
| 618     FontFaceCache* cache = m_fontSelector->fontFaceCache(); | 618     FontFaceCache* cache = m_fontSelector->fontFaceCache(); | 
| 619     for (unsigned i = 0; i < fontFaceRules.size(); ++i) | 619     for (unsigned i = 0; i < fontFaceRules.size(); ++i) | 
| 620         cache->remove(fontFaceRules[i]); | 620         cache->remove(fontFaceRules[i]); | 
| 621     if (m_resolver) | 621     if (m_resolver) | 
| 622         m_resolver->invalidateMatchedPropertiesCache(); | 622         m_resolver->invalidateMatchedPropertiesCache(); | 
| 623 } | 623 } | 
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 656 | 656 | 
| 657 PassRefPtrWillBeRawPtr<CSSStyleSheet> StyleEngine::createSheet(Element* e, const
      String& text, TextPosition startPosition, bool createdByParser) | 657 PassRefPtrWillBeRawPtr<CSSStyleSheet> StyleEngine::createSheet(Element* e, const
      String& text, TextPosition startPosition, bool createdByParser) | 
| 658 { | 658 { | 
| 659     RefPtrWillBeRawPtr<CSSStyleSheet> styleSheet = nullptr; | 659     RefPtrWillBeRawPtr<CSSStyleSheet> styleSheet = nullptr; | 
| 660 | 660 | 
| 661     e->document().styleEngine().addPendingSheet(); | 661     e->document().styleEngine().addPendingSheet(); | 
| 662 | 662 | 
| 663     if (!e->document().inQuirksMode()) { | 663     if (!e->document().inQuirksMode()) { | 
| 664         AtomicString textContent(text); | 664         AtomicString textContent(text); | 
| 665 | 665 | 
| 666         WillBeHeapHashMap<AtomicString, RawPtrWillBeMember<StyleSheetContents> >
     ::AddResult result = m_textToSheetCache.add(textContent, nullptr); | 666         WillBeHeapHashMap<AtomicString, RawPtrWillBeMember<StyleSheetContents>>:
     :AddResult result = m_textToSheetCache.add(textContent, nullptr); | 
| 667         if (result.isNewEntry || !result.storedValue->value) { | 667         if (result.isNewEntry || !result.storedValue->value) { | 
| 668             styleSheet = StyleEngine::parseSheet(e, text, startPosition, created
     ByParser); | 668             styleSheet = StyleEngine::parseSheet(e, text, startPosition, created
     ByParser); | 
| 669             if (result.isNewEntry && isCacheableForStyleElement(*styleSheet->con
     tents())) { | 669             if (result.isNewEntry && isCacheableForStyleElement(*styleSheet->con
     tents())) { | 
| 670                 result.storedValue->value = styleSheet->contents(); | 670                 result.storedValue->value = styleSheet->contents(); | 
| 671                 m_sheetToTextCache.add(styleSheet->contents(), textContent); | 671                 m_sheetToTextCache.add(styleSheet->contents(), textContent); | 
| 672             } | 672             } | 
| 673         } else { | 673         } else { | 
| 674             StyleSheetContents* contents = result.storedValue->value; | 674             StyleSheetContents* contents = result.storedValue->value; | 
| 675             ASSERT(contents); | 675             ASSERT(contents); | 
| 676             ASSERT(isCacheableForStyleElement(*contents)); | 676             ASSERT(isCacheableForStyleElement(*contents)); | 
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 756     visitor->trace(m_dirtyTreeScopes); | 756     visitor->trace(m_dirtyTreeScopes); | 
| 757     visitor->trace(m_activeTreeScopes); | 757     visitor->trace(m_activeTreeScopes); | 
| 758     visitor->trace(m_fontSelector); | 758     visitor->trace(m_fontSelector); | 
| 759     visitor->trace(m_textToSheetCache); | 759     visitor->trace(m_textToSheetCache); | 
| 760     visitor->trace(m_sheetToTextCache); | 760     visitor->trace(m_sheetToTextCache); | 
| 761 #endif | 761 #endif | 
| 762     CSSFontSelectorClient::trace(visitor); | 762     CSSFontSelectorClient::trace(visitor); | 
| 763 } | 763 } | 
| 764 | 764 | 
| 765 } | 765 } | 
| OLD | NEW | 
|---|