Skip to content
  • eric@webkit.org's avatar
    Threaded parser hangs when encountering an unmatched </script> tag · 8c5c85fa
    eric@webkit.org authored
    https://bugs.webkit.org/show_bug.cgi?id=107170
    
    Reviewed by Adam Barth.
    
    The bug was that the BackgroundHTMLParser naively yields to the
    main thread every time it encounters a </script>
    (as we may have to run script on the main thread).  However, not every
    </script> results in script execution, so the main thread needs to know
    how to tell the BackgroundHTMLParser to continue in cases where no
    script execution is needed.
    
    This whole infrastructure will be replaced when we let the BackgroundHTMLParser
    continue speculatively tokenizing after yielding.
    
    * html/parser/BackgroundHTMLParser.cpp:
    (WebCore::TokenDelivery::TokenDelivery):
    (TokenDelivery):
    (WebCore::TokenDelivery::execute):
    (WebCore::BackgroundHTMLParser::sendTokensToMainThread):
    * html/parser/HTMLDocumentParser.cpp:
    (WebCore::HTMLDocumentParser::didReceiveTokensFromBackgroundParser):
    * html/parser/HTMLDocumentParser.h:
    (HTMLDocumentParser):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@140055 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    8c5c85fa