Skip to content
  • antti@apple.com's avatar
    REGRESSION(r129644): User StyleSheet not applying · e119aee7
    antti@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=102110
    
    Reviewed by Andreas Kling.
    
    Source/WebCore:
    
    Injected stylesheets added as UserStyleAuthorLevel fail to apply. r129644 implicitly assumed that
    such things don't exists but on Chromium addUserStyleSheet() confusingly uses them.
    
    The patch adds injected author stylesheets to DocumentStyleSheetCollection::activeStyleSheets().
    It also generally cleans up the code around injected and user stylesheets.
    
    Tests: userscripts/user-script-and-stylesheet.html
           userscripts/user-stylesheet-invalidate.html
    
    * css/StyleResolver.cpp:
    (WebCore::StyleResolver::StyleResolver):
    (WebCore::StyleResolver::collectRulesFromUserStyleSheets):
    (WebCore::collectCSSOMWrappers):
    * css/StyleResolver.h:
    (StyleResolver):
    * dom/Document.cpp:
    (WebCore::Document::setCompatibilityMode):
    * dom/DocumentStyleSheetCollection.cpp:
    (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
    (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
    (WebCore::DocumentStyleSheetCollection::injectedUserStyleSheets):
    (WebCore):
    (WebCore::DocumentStyleSheetCollection::injectedAuthorStyleSheets):
    (WebCore::DocumentStyleSheetCollection::updateInjectedStyleSheetCache):
    (WebCore::DocumentStyleSheetCollection::invalidateInjectedStyleSheetCache):
    (WebCore::DocumentStyleSheetCollection::addUserSheet):
    (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
    (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
    * dom/DocumentStyleSheetCollection.h:
    (WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):
    (DocumentStyleSheetCollection):
    * page/PageGroup.cpp:
    (WebCore::PageGroup::addUserStyleSheetToWorld):
    (WebCore::PageGroup::removeUserStyleSheetFromWorld):
    (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
    (WebCore::PageGroup::removeAllUserContent):
    (WebCore::PageGroup::invalidatedInjectedStyleSheetCacheInAllFrames):
    * page/PageGroup.h:
    (PageGroup):
    
    LayoutTests:
    
    * inspector/timeline/timeline-script-tag-1-expected.txt:
    
        Update the test result. The style invalidation log is slightly different.
    
    * userscripts/user-stylesheet-invalidate-expected.txt: Added.
    * userscripts/user-stylesheet-invalidate.html: Added.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@135082 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    e119aee7