Bug 119172 - HTMLParserScheduler gets into an inconsistent state when suspended for reasons other than WillDeferLoading
Summary: HTMLParserScheduler gets into an inconsistent state when suspended for reason...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: DOM (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Alexey Proskuryakov
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-07-26 18:04 PDT by Alexey Proskuryakov
Modified: 2013-07-27 17:03 PDT (History)
3 users (show)

See Also:


Attachments
proposed patch (6.71 KB, patch)
2013-07-26 18:21 PDT, Alexey Proskuryakov
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Alexey Proskuryakov 2013-07-26 18:04:32 PDT
When loading is not deferred, the following scenario is possible:
- document gets suspended, suspending HTMLParserScheduler;
- HTMLParserScheduler suspends its timer;
- we get new data from the network;
- parse it;
- HTMLParserScheduler yields again, starting a timer again.

We'll end up with an active timer and m_isSuspendedWithActiveTimer flag.

Additionally, parsing and loading are actually supposed to continue when suspended for certain reasons. Even when DOM timers and animations are not necessary, we can try to finish loading a page.
Comment 1 Alexey Proskuryakov 2013-07-26 18:21:21 PDT
Created attachment 207572 [details]
proposed patch
Comment 2 WebKit Commit Bot 2013-07-27 17:03:55 PDT
Comment on attachment 207572 [details]
proposed patch

Clearing flags on attachment: 207572

Committed r153407: <http://trac.webkit.org/changeset/153407>
Comment 3 WebKit Commit Bot 2013-07-27 17:03:58 PDT
All reviewed patches have been landed.  Closing bug.