[Webkit-unassigned] [Bug 70213] New: [GTK] Switch to a backing store approach for painting WebKitWebView

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sun Oct 16 19:34:11 PDT 2011


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

           Summary: [GTK] Switch to a backing store approach for painting
                    WebKitWebView
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: Unspecified
        OS/Version: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: WebKit Gtk
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: mrobinson at webkit.org
                CC: xan.lopez at gmail.com, gns at gnome.org, cgarcia at igalia.com


The way that the WebKit1 WebKitWebView operates now is that a draw (expose) event can trigger a relayout. This is bad for several reasons:

1. If an animation is happening, it can cause a relayout during expose. This leads to more layouts than necessary and slower framerates.
2. If plugins move during the relayout, we will call gtk_widget_size_allocate during expose events. This shouldn't happen.

My approach is to add a backing store to the widget itself. We only draw into the backing store when WebCore tells us the contents of the backing store are invalid. This is roughly the approach that WebKit2 takes. This comes with many benefits:

1. Fixed position objects don't jump around while scrolling. This happens on boingboing currently if you scroll down far enough for the right column to become fixed.
2. Scrolling is faster since we no longer have a need to call gdk_window_process_updates during every single scroll. This fixes lag on the twitter stream and the facebook timeline information page.
3. We have greater contorl over what happens during resizing. This code improves opaque resize performance greatly. This is important in Gnome Shell.
4. We can easily switch to the image backend if we want to with only a tiny code changes in WebKit.

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