[Webkit-unassigned] [Bug 39582] New: [Gtk] very slow page scrolling on big -webkit-box-shadow areas

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sun May 23 23:27:20 PDT 2010


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

           Summary: [Gtk] very slow page scrolling on big
                    -webkit-box-shadow areas
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: PC
               URL: http://www.sueddeutsche.de/
        OS/Version: Mac OS X 10.5
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: WebKit Gtk
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: krit at webkit.org
                CC: zecke at selfish.org, xan.lopez at gmail.com, gns at gnome.org


-webkit-box-shadow can slow down srcolling or interacting with a page a lot on Gtk. We do the shadow on our own, since Cairo doesn't provide filters. The current implementation blurs a image in the size of the object (maybe clipped to the viewport, but I guess not). This causes much senseless calcluations, since most lines look the same. We also recalculate the shadow on scrolling, a further performance problem.
And now, that box-shadow is supported by more and more browsers, this feature gets used more regulary. See the link above, an example of a german newspaper.

I have a proposal for this problem. We don't take the size of the object, but the smallest possible rect to draw the shadow and give it to the blur-filter. We take the resulting image of the filter output and split it into 9 parts (we don't need 9 images, but we need to calculate the sizes of the parts).

 1 | 2 | 3
-----------
 4 |    | 5
-----------
 6 | 7 | 8

After that we use Image::drawPattern to draw the shadow of the target in the real size. This idea is similar to the CSS property border-image, also see: http://www.css3.info/preview/border-image/

It is neccessary to check sideeffects for inset shadows.

I don't have the time to implement it atm :-( and hope that someone else could try it.

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