Bug 119225

Summary: [wk2] Flush the WebProcess’ implicit transaction when using endDeferringViewInWindowChangesSync
Product: WebKit Reporter: Tim Horton <thorton>
Component: WebKit2Assignee: Tim Horton <thorton>
Status: RESOLVED FIXED    
Severity: Normal CC: andersca, simon.fraser
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
patch
none
patch simon.fraser: review+

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