-
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