Skip to content
  • commit-queue@webkit.org's avatar
    2011-01-05 Yong Li <yoli@rim.com> · ea431e6a
    commit-queue@webkit.org authored
            Reviewed by Adam Barth.
    
            Suspend HTMLParserScheduler when page load is deferred to
            avoid potential JS re-entrancy. Otherwise, when JS execution is triggered
            from an external script or by events, and is blocked by a modal dialog,
            WebKit can parse more HTML source and also start another JS execution.
    
            https://bugs.webkit.org/show_bug.cgi?id=48077
    
            Test case: WebCore/manual-tests/bugzilla-48077.html.
    
            * dom/DocumentParser.cpp:
            (WebCore::DocumentParser::suspendScheduledTasks):
            (WebCore::DocumentParser::resumeScheduledTasks):
            * dom/DocumentParser.h:
            * html/parser/HTMLDocumentParser.cpp:
            (WebCore::HTMLDocumentParser::suspendScheduledTasks):
            (WebCore::HTMLDocumentParser::resumeScheduledTasks):
            * html/parser/HTMLParserScheduler.cpp:
            (WebCore::HTMLParserScheduler::HTMLParserScheduler):
            (WebCore::HTMLParserScheduler::suspend):
            (WebCore::HTMLParserScheduler::resume):
            * html/parser/HTMLParserScheduler.h:
            (WebCore::HTMLParserScheduler::isScheduledForResume):
            * page/PageGroupLoadDeferrer.cpp:
            (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
            (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@75066 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    ea431e6a