(In reply to comment #2)
> Does this patch net any performance improvements on its own?
Yep, mostly when scrolling a webpage, we blur a rect as big as the scroll movement, and also for big pages we only blur the viewport part even if the page is bigger than that, for instance identi.ca.

(In reply to comment #4)
> Is it possible to make calculateShadowBufferDimensions a non-static method and to do this there? That way we could benefit from this improvement at all call sites.
It is, I planned this patch just to make it the rects because they are the main issue nowadays. I'll review the patch.

Do you mind creating a static function that take a rectangle and intersects it with the current Cairo clip? It could be passed an optional minimumSize argument. I think we may want to use this optimization in other places later on.
IntRect intersectRectWithCurrentCairoClip(cairo_t*, IntRect, int minimumSize=0);
Thanks.