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

See Also:


Attachments
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.

<rdar://problem/14568841>
Comment 1 Tim Horton 2013-07-29 15:26:55 PDT
Created attachment 207672 [details]
patch
Comment 2 Tim Horton 2013-07-29 15:44:40 PDT
Created attachment 207675 [details]
patch
Comment 3 Tim Horton 2013-07-29 21:44:11 PDT
Thanks!

http://trac.webkit.org/changeset/153458