WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
Bug 37413
Render SVG Paths up to first error
https://bugs.webkit.org/show_bug.cgi?id=37413
Summary
Render SVG Paths up to first error
Jeff Schiller
Reported
2010-04-11 09:45:44 PDT
As part of their efforts for IE9, Microsoft has written several SVG tests. Some of these do not pass in WebKit. This bug addresses the following test:
http://samples.msdn.microsoft.com/ietestcenter/svg112/svg_harness.htm?url=./svg112/svg/chapter_08.2.svg
which tests the requirement in the SVG 1.1 specification:
http://dev.w3.org/SVG/profiles/1.1F2/publish/implnote.html#PathElementImplementationNotes
"The general rule for error handling in path data is that the SVG user agent shall render a ‘path’ element up to (but not including) the path command containing the first error in the path data specification." WebKit's SVG parser tosses out the entire path if any errors are encountered and thus we see a red path on the fourth subtest. I will attach a simple patch, with some LayoutTest stuff updated. However, it will require some reworking of the dom/svg/fuzz-path-parser.html test so I wanted to see if folks agree with the fix first.
Attachments
Patch to the path parser so that paths are rendered up to the first error.
(3.99 KB, patch)
2010-04-11 09:55 PDT
,
Jeff Schiller
no flags
Details
Formatted Diff
Diff
Diff of expected-actual results for dom/svg/fuzz-path-parser layout test
(57.71 KB, text/plain)
2010-04-11 10:51 PDT
,
Jeff Schiller
no flags
Details
Patch for parser and layout tests.
(61.80 KB, patch)
2010-04-11 16:53 PDT
,
Jeff Schiller
no flags
Details
Formatted Diff
Diff
Updated patch to modify layout test results after Bug 37431 landed
(65.61 KB, patch)
2010-04-12 17:21 PDT
,
Jeff Schiller
no flags
Details
Formatted Diff
Diff
Patch to the path parser so that paths are rendered up to the first error plus updates to layout tests
(67.51 KB, patch)
2010-04-14 08:02 PDT
,
Jeff Schiller
no flags
Details
Formatted Diff
Diff
Show Obsolete
(4)
View All
Add attachment
proposed patch, testcase, etc.
Jeff Schiller
Comment 1
2010-04-11 09:55:03 PDT
Created
attachment 53091
[details]
Patch to the path parser so that paths are rendered up to the first error. This is just the initial patch. The fuzz path layout test not yet updated.
Jeff Schiller
Comment 2
2010-04-11 10:51:28 PDT
Created
attachment 53092
[details]
Diff of expected-actual results for dom/svg/fuzz-path-parser layout test Is it ok to rewrite the expected results for this test to match the diff "Parsed as N command(s)..." results? The difference is because now the parser creates segments/commands up until the first error and does not toss out the entire path. I'm not clear on whether the expected results are manually created or via script. I'm also not clear on just how random things are (scripted-random.js suggests that it's not really random, just pseudo-random).
Jeff Schiller
Comment 3
2010-04-11 16:53:17 PDT
Created
attachment 53119
[details]
Patch for parser and layout tests. Patch which fixes the SVG path parser, updates a layout test and changes the expected output of the svg/dom/fuzz-path-parser layout test. The reason the fuzz-path-parser layout test results change so drastically is that the paths are processed up to the first encountered error.
Dirk Schulze
Comment 4
2010-04-12 08:37:45 PDT
(In reply to
comment #3
)
> Created an attachment (id=53119) [details] > Patch for parser and layout tests. > > Patch which fixes the SVG path parser, updates a layout test and changes the > expected output of the svg/dom/fuzz-path-parser layout test. The reason the > fuzz-path-parser layout test results change so drastically is that the paths > are processed up to the first encountered error.
I think this is a big mistake in the Spec and I'm not sure if this behavior helps the developer... Nevertheless, it's better that the Spec has an error handling now. There is something that I don't like. I think the script should give a response, that an error occured during the parsing, but the path got build up to this point. Is it possible to modify the script to do that?
Dirk Schulze
Comment 5
2010-04-12 08:41:59 PDT
(In reply to
comment #4
)
> (In reply to
comment #3
) > > Created an attachment (id=53119) [details] [details] > > Patch for parser and layout tests. > > > > Patch which fixes the SVG path parser, updates a layout test and changes the > > expected output of the svg/dom/fuzz-path-parser layout test. The reason the > > fuzz-path-parser layout test results change so drastically is that the paths > > are processed up to the first encountered error. > > I think this is a big mistake in the Spec and I'm not sure if this behavior > helps the developer... > Nevertheless, it's better that the Spec has an error handling now. > > There is something that I don't like. I think the script should give a > response, that an error occured during the parsing, but the path got build up > to this point. Is it possible to modify the script to do that?
Hm. Maybe the 'Parsed as' command is enough. Since it tells up to which point the path got parsed.
Jeff Schiller
Comment 6
2010-04-12 08:49:31 PDT
Hi Dirk, The SVG spec has always been clear on the error handling for paths, even going back to SVG 1.0:
http://www.w3.org/TR/SVG10/implnote.html#PathElementImplementationNotes
from 2001 WebKit has just not been compliant in this regard Personally, I think displaying partial path is better than displaying nothing. Plus it's what other browsers do. If you like, I can investigating updating the test script to indicate that some error was encountered in the updated patch that I'll have to do after
Bug 37431
gets checked in.
Dirk Schulze
Comment 7
2010-04-12 08:59:55 PDT
(In reply to
comment #6
)
> Hi Dirk, > > The SVG spec has always been clear on the error handling for paths, even going > back to SVG 1.0: >
http://www.w3.org/TR/SVG10/implnote.html#PathElementImplementationNotes
from > 2001 > > WebKit has just not been compliant in this regard > > Personally, I think displaying partial path is better than displaying nothing. > Plus it's what other browsers do. > > If you like, I can investigating updating the test script to indicate that some > error was encountered in the updated patch that I'll have to do after
Bug 37431
> gets checked in.
Would be great if you can update the results now, that 37431 got landed. You don't need to change the script, if it is to complicated to catch an early break on parsing. But it could be helpful, if the test mention this case.
Jeff Schiller
Comment 8
2010-04-12 17:21:35 PDT
Created
attachment 53204
[details]
Updated patch to modify layout test results after
Bug 37431
landed
Jeff Schiller
Comment 9
2010-04-12 18:49:42 PDT
Comment on
attachment 53204
[details]
Updated patch to modify layout test results after
Bug 37431
landed FYI, I don't know if I should update chromium Layout Test changes.
Dirk Schulze
Comment 10
2010-04-12 23:41:29 PDT
(In reply to
comment #9
)
> (From update of
attachment 53204
[details]
) > FYI, I don't know if I should update chromium Layout Test changes.
Jeff, you told me via mail, that one or more pixel tests would fail after your patch. If you're sure, that the new results are more correct, you have to replace them. If you're working on Mac, you can use the webkit tools for that: WebKitTools/Scripts/run-webkit-tests -p --reset-results --tolerance=0 LayoutTests/svg/ This will reset all results, that are different to the expected one by the actual results in the svg folder.
Jeff Schiller
Comment 11
2010-04-14 08:02:21 PDT
Created
attachment 53331
[details]
Patch to the path parser so that paths are rendered up to the first error plus updates to layout tests I updated the test so that the pixel results would not change. Latest patch should be good to go, can someone review/commit?
Dirk Schulze
Comment 12
2010-04-14 10:23:55 PDT
Comment on
attachment 53331
[details]
Patch to the path parser so that paths are rendered up to the first error plus updates to layout tests LGTM. r=me.
WebKit Commit Bot
Comment 13
2010-04-14 11:30:19 PDT
Comment on
attachment 53331
[details]
Patch to the path parser so that paths are rendered up to the first error plus updates to layout tests Clearing flags on attachment: 53331 Committed
r57591
: <
http://trac.webkit.org/changeset/57591
>
WebKit Commit Bot
Comment 14
2010-04-14 11:30:26 PDT
All reviewed patches have been landed. Closing bug.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug