Skia Changeset 2962, now used by the Chromium port, includes a path iterator that returns all points without clean-up or embellishment. The WebCore::Path::apply method should use this new iterator, as it provides information necessary for correct marker and linecap drawing.
This won't help other platforms, and it should really be fixed for all. I vote against this.
Created attachment 121462 [details] Patch
I verified the behavior for canvas layout tests and SVG layout tests. Some SVG results are fixed by this, hence the test_expectations update.
(In reply to comment #1) > This won't help other platforms, and it should really be fixed for all. I vote against this. It doesn't change anything for other platforms, but is a pre-requisite for fixing all platforms. See https://bugs.webkit.org/show_bug.cgi?id=71820 for the linecap issues, which I will put a patch up for as soon as this is in. Then there another bug someplace for marker drawing issues, that I will deal with next.
Comment on attachment 121462 [details] Patch Sorry Stephen, I misunderstood! This looks fine, especially if its required to fix the linecaps bugs, r=me.
Comment on attachment 121462 [details] Patch Will this change affect non-SVG callers of Path::apply()? Also, you'll probably also need to roll webkit's chromium DEPS (in Source/WebKit/chromium/DEPS) to past the Skia roll that brought in the RawIter, in order to avoid breaking the compile of the build.webkit.org bots.
Comment on attachment 121462 [details] Patch Attachment 121462 [details] did not pass chromium-ews (chromium-xvfb): Output: http://queues.webkit.org/results/11173068
(In reply to comment #6) > (From update of attachment 121462 [details]) > Will this change affect non-SVG callers of Path::apply()? > > Also, you'll probably also need to roll webkit's chromium DEPS (in Source/WebKit/chromium/DEPS) to past the Skia roll that brought in the RawIter, in order to avoid breaking the compile of the build.webkit.org bots. Argh. I was not requesting commit queue so that we could sort out the Skia deps or other Chromium issues, but I guess it was attempted anyway. The only other code that uses the platform/graphics/Path... code is canvas, and all the canvas checks pass. I'll look for explicit usage before committing, but I'm confident we're good to go. I also verified that the JS code does not rely on this representation when reporting on SVG data (and canvas is purely imperative). Let's have the US east coast teams coordinate on Monday morning to roll the WebKit Skia deps so we can first deal with any issues that arise, without the complication of another change at the same time. Then, when all is clear, we can commit this.
Comment on attachment 121462 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=121462&action=review > Source/WebCore/platform/graphics/Path.h:83 > + PathElementMoveToPoint, // points contains 1 value I assume you mean // Points contain 1 value. Use sentences for comments. s/contains/contain/ Please fix that before landing.
Created attachment 121850 [details] Patch This slightly modified patch addresses the comment issue.
Comment on attachment 121850 [details] Patch Clearing flags on attachment: 121850 Committed r104585: <http://trac.webkit.org/changeset/104585>
All reviewed patches have been landed. Closing bug.