[Webkit-unassigned] [Bug 108951] New: Fix flicker on page load transitions

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Feb 5 09:29:33 PST 2013


https://bugs.webkit.org/show_bug.cgi?id=108951

           Summary: Fix flicker on page load transitions
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: Unspecified
               URL: http://mobile.theverge.com
        OS/Version: Unspecified
            Status: ASSIGNED
          Severity: Normal
          Priority: P2
         Component: WebKit BlackBerry
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: jpetsovits at rim.com
                CC: staikos at kde.org, manyoso at yahoo.com,
                    tonikitoo at webkit.org, anilsson at rim.com


The main idea for this patch is that whenever we adopt a new backingstore geometry that doesn't contain any rendered tiles, or VisibleZoom render jobs that need more tiles to be rendered to be considered complete, we'll then suspend blitting until there is valid content to show.

This main idea is codified as checks for empty buffers in adoptAsFrontState(), and checks for the current state of the render queue after rendering content in render(). However, as BackingStore objects with disabled surface pools or pure use of accelerated compositing also swap geometries in some circumstances, the use of suspend counters grows increasingly fragile.

To make this patch more resilient against regressions, the current suspend counter is complemented with several explicit conditions for suspending screen updates, and both subsequently combined into a single cached boolean value telling the UI thread whether or not to suspend. In the future, other suspend calls can be migrated to this "state machine" design as well, potentially phasing out the suspend counter altogether.

The immediate result is that there will be no flashing of background color between page loads or after discarding tiles on scale changes until the content has been rendered.

See patch below, with its commit message reused for the bug description above.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list