Please sign in to comment.
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Change FrameLoadDelegate to support any number of delegates with dela…
…yed work to process This makes our behavior match Mac more closely, and allows us to remove an incorrect assertion that was firing during some tests. (The assertion was claiming that there was never more than one delegate with delayed work to process, but that was not the case.) Fixes <http://webkit.org/b/55146> Assertion failure in FrameLoadDelegate::locationChangeDone when running http/tests/navigation/back-twice-without-commit.html Reviewed by Eric Carlson. * DumpRenderTree/win/FrameLoadDelegate.cpp: (delegatesWithDelayedWork): Added. Returns all FrameLoadDelegates that have delayed work to process. A single delegate may appear in this Vector more than once (just as, on Mac, a single delegate may have multiple performSelector requests). (processWorkTimer): Pass the HWND to ::KillTimer, for pedantic brownie points. Added an assertion that the timer firing is the shared process work timer. Instead of using the single, global "delegate waiting for timer" delegate, give all delegates that have delayed work to process a chance to process their work. (FrameLoadDelegate::locationChangeDone): If we don't already have an active timer for processing delayed work, create one. Then add ourselves to the delegatesWithDelayedWork Vector so our processWork function will be called when the timer fires. Canonical link: https://commits.webkit.org/69493@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@79573 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- Loading branch information
Showing with 47 additions and 8 deletions.