Bug 119225 - [wk2] Flush the WebProcess’ implicit transaction when using endDeferringViewInWindowChangesSync
Summary: [wk2] Flush the WebProcess’ implicit transaction when using endDeferringViewI...
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit2 (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Tim Horton
Keywords: InRadar
Depends on:
Reported: 2013-07-29 15:02 PDT by Tim Horton
Modified: 2013-07-29 21:44 PDT (History)
2 users (show)

See Also:

patch (9.24 KB, patch)
2013-07-29 15:26 PDT, Tim Horton
no flags Details | Formatted Diff | Diff
patch (9.28 KB, patch)
2013-07-29 15:44 PDT, Tim Horton
simon.fraser: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Tim Horton 2013-07-29 15:02:20 PDT
If an off-screen WKView is brought on screen bounded by endDeferringViewInWindowChangesSync, we expect the view to be fully ready (unless we hit the 250 ms watchdog and give up) to display when endDeferringViewInWindowChangesSync returns. However, the WebProcess’ implicit transaction can still be pending, meaning that the tiles/root compositing layer can be not-yet-parented.

To avoid this flash, we can [CATransaction flush] whenever endDeferringViewInWindowChangesSync tells the WebProcess that its view-in-window state changed.

Comment 1 Tim Horton 2013-07-29 15:26:55 PDT
Created attachment 207672 [details]
Comment 2 Tim Horton 2013-07-29 15:44:40 PDT
Created attachment 207675 [details]
Comment 3 Tim Horton 2013-07-29 21:44:11 PDT