http://trac.webkit.org/changeset/62035 introduced a new method of drawing border-radius using paths. Right now, this new code is only enabled for some platforms. To enable the new and much improved code for Cairo, GraphicsContext::clipConvexPolygon() needs to be implemented, and then Cairo should be added to the list of platforms that set #define HAVE_PATH_BASED_BORDER_RADIUS_DRAWING in RenderObject.h I would like to note that Cairo already has a function implemented called GraphicsContext::drawConvexPolygon(). So hopefully it is straightforward to use some of that same logic for clipping instead of drawing.
Created attachment 62910 [details] Add support for clipConvexPolygon and enable path based borders
Great patch. Just one question, you change fillRule and antialiasing settings of the context in clipConvexPolygon, should they be restored to the previos settings, or is this not neccessary?
You're right. I was doing that, but at some point that change was lost. I've re-added it. Thanks!
Created attachment 62987 [details] Patch which preserves antialias and fill rules
Comment on attachment 62987 [details] Patch which preserves antialias and fill rules LGTM. r=me. Well done! :-) These were the first pixel results I reviewed for the Cairo ports.
Committed r64338: <http://trac.webkit.org/changeset/64338>