Skip to content
  • commit-queue@webkit.org's avatar
    PreloadScanner preloads external CSS with non-matching media attribute · da08655f
    commit-queue@webkit.org authored
    https://bugs.webkit.org/show_bug.cgi?id=106198
    
    Patch by Yoav Weiss <yoav@yoav.ws> on 2013-08-03
    Reviewed by Dean Jackson.
    
    Source/WebCore:
    
    Test: http/tests/loading/preload-css-test.html
    
    * html/parser/HTMLPreloadScanner.cpp:
    Remove m_linkMediaAttributeIsScreen
    Remove MediaQueryEvaluator calls
    Add m_mediaAttribute that gets the value of the "media" attribute
    Pass m_mediaAttribute to PreloadRequest
    (WebCore::TokenPreloadScanner::StartTagScanner::StartTagScanner):
    (WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest):
    (WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):
    (WebCore::TokenPreloadScanner::StartTagScanner::resourceType):
    (WebCore::TokenPreloadScanner::StartTagScanner::shouldPreload):
    * html/parser/HTMLResourcePreloader.cpp:
    Add MediaQueryEvaluator calls to see if "media" matches
    Perform preload only to resource with a matching media (if media exists)
    (WebCore::PreloadRequest::isSafeToSendToAnotherThread):
    (WebCore::mediaAttributeMatches):
    (WebCore::HTMLResourcePreloader::preload):
    * html/parser/HTMLResourcePreloader.h:
    Add a constructor with a mediaAttribute value
    Add m_mediaAttribute & its getter.
    (WebCore::PreloadRequest::create):
    (WebCore::PreloadRequest::media):
    (WebCore::PreloadRequest::PreloadRequest):
    
    LayoutTests:
    
    * http/tests/loading/preload-css-test-expected.txt: Added.
    * http/tests/loading/preload-css-test.html: Added.
    * http/tests/loading/resources/big_mq.css: Added.
    * http/tests/loading/resources/small_mq.css: Added.
    * http/tests/local/link-stylesheet-load-order-preload-expected.txt:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153689 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    da08655f