Skip to content
  • antti@apple.com's avatar
    WebCore: Scripts should not be executed before preceding stylesheets are loaded · 00f0f600
    antti@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=8852
    
    Reviewed by Dave Hyatt.
    
    Block inline script execution on pending stylesheet loads. This matches
    other browsers and HTML5.
    
    Tests: fast/tokenizer/inline-script-stylesheet-write.html
           fast/tokenizer/inline-script-stylesheet.html
    
    * dom/PendingScript.cpp:
    (WebCore::PendingScript::releaseElementAndClear):
    * dom/PendingScript.h:
    (WebCore::PendingScript::PendingScript):
    (WebCore::PendingScript::operator=):
    (WebCore::PendingScript::startingPosition):
    (WebCore::PendingScript::setStartingPosition):
    * html/HTMLLinkElement.cpp:
    (WebCore::HTMLLinkElement::process):
            
    This fixes an unrelated bug with beforeload events that was exposed by the other
    changes (fast/dom/beforeload/remove-link-in-beforeload-listener.html).
            
    * html/parser/HTMLScriptRunner.cpp:
    (WebCore::HTMLScriptRunner::sourceFromPendingScript):
    (WebCore::HTMLScriptRunner::runScript):
    
    LayoutTests: Scripts should not be executed before preceding stylesheets are loaded
    https://bugs.webkit.org/show_bug.cgi?id=8852
            
    Reviewed by Dave Hyatt.
    
    New tests plus a few test with slightly changed output due to different load serialization behavior.
    
    * fast/tokenizer/inline-script-stylesheet-expected.txt: Added.
    * fast/tokenizer/inline-script-stylesheet-write-expected.txt: Added.
    * fast/tokenizer/inline-script-stylesheet-write.html: Added.
    * fast/tokenizer/inline-script-stylesheet.html: Added.
    * http/tests/security/mixedContent/insecure-css-in-main-frame-expected.txt:
    * platform/mac/fast/repaint/renderer-destruction-by-invalidateSelection-crash-expected.txt:
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@74995 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    00f0f600