Re: [webkit-dev] XML Serialization Issues

2013-08-29 Thread Ryosuke Niwa
It's supposed to be deterministic so there is a bug somewhere.

- R. Niwa

On Thu, Aug 29, 2013 at 4:27 PM, Dean Jackson  wrote:

> I believe the tests you added are not reliable across runs. In particular,
> the unique id you generate
> isn’t necessarily always the same, but your -expected.txt is just a dump
> of the DOM.
>
> I filed: http://webkit.org/b/120490, but I only mentioned one test. Since
> then I’ve seen more fail.
>
> Dean
>
> On 30 Aug 2013, at 3:25 am, Rob Buis  wrote:
>
> > Fixed.
> >
> > More seriously, all bugs mentioned below are fixed/closed, please open
> > new ones for any regressions/improvements.
> > Cheers,
> >
> > Rob.
> >
> > On 19 June 2013 14:44, Alex Milowski  wrote:
> >> I was working on using MathJax [1] to turn MathML into SVG and ran into
> some
> >> serious serialization issues.  In summary, as MathJax programmatically
> >> creates SVG renderings of the MathML, when it creates XLink attributes,
> it
> >> doesn't seem to define a prefix.  While this works for rendering, it
> does
> >> when you try to extract a serialization of the SVG.
> >>
> >> That is, MathJax creates SVG 'use' elements like (assuming SVG as the
> >> default namespace):
> >>
> >> http://www.w3.org/1999/xlink
> "/>
> >>
> >> but instead I get:
> >>
> >> http://www.w3.org/1999/xlink"/>
> >>
> >> which makes the SVG incorrect as the 'use' element is now in the xlink
> >> namespace.
> >>
> >> You can work around this by manually setting the "prefix" property on
> each
> >> xlink:href attribute.
> >>
> >> Looking into why this happens, I can see that the serializer seriously
> >> broken in a number of ways when the DOM is constructed with incomplete
> (e.g.
> >> missing namespace declarations) or inconsistent information (e.g. same
> >> prefix used for different namespaces in the same context).
> >>
> >> I found at least 6 bugs outstanding (#16739 [2], #16496 [3], #19121 [4],
> >> #22958 [5], #83056 [6], #106531 [7]) and filed a new one (#117764 [8]).
> >> Some of these date back to 2007 (6 years ago!).
> >>
> >> These bugs break down to these categories:
> >>
> >> 1. Default namespace issues: #16739, #106531, #16496
> >> 2. Conflicting prefix mappings: #117764, #19121
> >> 3. Namespace attribute issues: #22958, #83056, #117764
> >>
> >> In looking at the code (MarkupAccumulator.cpp), they all suffer from
> one of
> >> two problems:
> >>
> >> 1. The computed prefix used isn't properly used for the declaration.
> >>
> >> 2. The generated namespace mappings aren't properly stored, scoped, or
> dealt
> >> with when they are inconsistent.
> >>
> >> There is an general assumption in the code that certain prefixes should
> >> always be used for certain namespaces.  Unfortunately, it does so
> without
> >> looking to see whether there is a conflict already in scope.  Also,
> when the
> >> namespace is not recognized and there is no prefix, a prefix needs to be
> >> generated for the serialization.
> >>
> >> Having written several robust XML Serializers for other projects, this
> can
> >> all be fixed in a straightforward way.  I've looked at the code and know
> >> what should be done.  The changes are probably modest.
> >>
> >> Unfortunately, I can't spend the time to directly write and test the
> code
> >> till probably after November.  :(
> >>
> >> I am certainly willing to help, explain my strategy, advise, test, etc.
> if
> >> there was another willing developer out there who would like to see
> these
> >> bugs closed.
> >>
> >> [1] http://www.mathjax.org/
> >> [2] https://bugs.webkit.org/show_bug.cgi?id=16739
> >> [3] https://bugs.webkit.org/show_bug.cgi?id=16496
> >> [4] https://bugs.webkit.org/show_bug.cgi?id=19121
> >> [5] https://bugs.webkit.org/show_bug.cgi?id=22958
> >> [6] https://bugs.webkit.org/show_bug.cgi?id=83056
> >> [7] https://bugs.webkit.org/show_bug.cgi?id=106531
> >> [8] https://bugs.webkit.org/show_bug.cgi?id=117764
> >>
> >>
> >> --
> >> --Alex Milowski
> >> "The excellence of grammar as a guide is proportional to the paucity of
> the
> >> inflexions, i.e. to the degree of analysis effected by the language
> >> considered."
> >>
> >> Bertrand Russell in a footnote of Principles of Mathematics
> >>
> >> ___
> >> webkit-dev mailing list
> >> webkit-dev@lists.webkit.org
> >> https://lists.webkit.org/mailman/listinfo/webkit-dev
> >>
> > ___
> > webkit-dev mailing list
> > webkit-dev@lists.webkit.org
> > https://lists.webkit.org/mailman/listinfo/webkit-dev
>
> ___
> webkit-dev mailing list
> webkit-dev@lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev
>
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] XML Serialization Issues

2013-08-29 Thread Dean Jackson
I believe the tests you added are not reliable across runs. In particular, the 
unique id you generate
isn’t necessarily always the same, but your -expected.txt is just a dump of the 
DOM.

I filed: http://webkit.org/b/120490, but I only mentioned one test. Since then 
I’ve seen more fail.

Dean

On 30 Aug 2013, at 3:25 am, Rob Buis  wrote:

> Fixed.
> 
> More seriously, all bugs mentioned below are fixed/closed, please open
> new ones for any regressions/improvements.
> Cheers,
> 
> Rob.
> 
> On 19 June 2013 14:44, Alex Milowski  wrote:
>> I was working on using MathJax [1] to turn MathML into SVG and ran into some
>> serious serialization issues.  In summary, as MathJax programmatically
>> creates SVG renderings of the MathML, when it creates XLink attributes, it
>> doesn't seem to define a prefix.  While this works for rendering, it does
>> when you try to extract a serialization of the SVG.
>> 
>> That is, MathJax creates SVG 'use' elements like (assuming SVG as the
>> default namespace):
>> 
>> http://www.w3.org/1999/xlink"/>
>> 
>> but instead I get:
>> 
>> http://www.w3.org/1999/xlink"/>
>> 
>> which makes the SVG incorrect as the 'use' element is now in the xlink
>> namespace.
>> 
>> You can work around this by manually setting the "prefix" property on each
>> xlink:href attribute.
>> 
>> Looking into why this happens, I can see that the serializer seriously
>> broken in a number of ways when the DOM is constructed with incomplete (e.g.
>> missing namespace declarations) or inconsistent information (e.g. same
>> prefix used for different namespaces in the same context).
>> 
>> I found at least 6 bugs outstanding (#16739 [2], #16496 [3], #19121 [4],
>> #22958 [5], #83056 [6], #106531 [7]) and filed a new one (#117764 [8]).
>> Some of these date back to 2007 (6 years ago!).
>> 
>> These bugs break down to these categories:
>> 
>> 1. Default namespace issues: #16739, #106531, #16496
>> 2. Conflicting prefix mappings: #117764, #19121
>> 3. Namespace attribute issues: #22958, #83056, #117764
>> 
>> In looking at the code (MarkupAccumulator.cpp), they all suffer from one of
>> two problems:
>> 
>> 1. The computed prefix used isn't properly used for the declaration.
>> 
>> 2. The generated namespace mappings aren't properly stored, scoped, or dealt
>> with when they are inconsistent.
>> 
>> There is an general assumption in the code that certain prefixes should
>> always be used for certain namespaces.  Unfortunately, it does so without
>> looking to see whether there is a conflict already in scope.  Also, when the
>> namespace is not recognized and there is no prefix, a prefix needs to be
>> generated for the serialization.
>> 
>> Having written several robust XML Serializers for other projects, this can
>> all be fixed in a straightforward way.  I've looked at the code and know
>> what should be done.  The changes are probably modest.
>> 
>> Unfortunately, I can't spend the time to directly write and test the code
>> till probably after November.  :(
>> 
>> I am certainly willing to help, explain my strategy, advise, test, etc. if
>> there was another willing developer out there who would like to see these
>> bugs closed.
>> 
>> [1] http://www.mathjax.org/
>> [2] https://bugs.webkit.org/show_bug.cgi?id=16739
>> [3] https://bugs.webkit.org/show_bug.cgi?id=16496
>> [4] https://bugs.webkit.org/show_bug.cgi?id=19121
>> [5] https://bugs.webkit.org/show_bug.cgi?id=22958
>> [6] https://bugs.webkit.org/show_bug.cgi?id=83056
>> [7] https://bugs.webkit.org/show_bug.cgi?id=106531
>> [8] https://bugs.webkit.org/show_bug.cgi?id=117764
>> 
>> 
>> --
>> --Alex Milowski
>> "The excellence of grammar as a guide is proportional to the paucity of the
>> inflexions, i.e. to the degree of analysis effected by the language
>> considered."
>> 
>> Bertrand Russell in a footnote of Principles of Mathematics
>> 
>> ___
>> webkit-dev mailing list
>> webkit-dev@lists.webkit.org
>> https://lists.webkit.org/mailman/listinfo/webkit-dev
>> 
> ___
> webkit-dev mailing list
> webkit-dev@lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] XML Serialization Issues

2013-08-29 Thread Rob Buis
Fixed.

More seriously, all bugs mentioned below are fixed/closed, please open
new ones for any regressions/improvements.
Cheers,

Rob.

On 19 June 2013 14:44, Alex Milowski  wrote:
> I was working on using MathJax [1] to turn MathML into SVG and ran into some
> serious serialization issues.  In summary, as MathJax programmatically
> creates SVG renderings of the MathML, when it creates XLink attributes, it
> doesn't seem to define a prefix.  While this works for rendering, it does
> when you try to extract a serialization of the SVG.
>
> That is, MathJax creates SVG 'use' elements like (assuming SVG as the
> default namespace):
>
> http://www.w3.org/1999/xlink"/>
>
> but instead I get:
>
> http://www.w3.org/1999/xlink"/>
>
> which makes the SVG incorrect as the 'use' element is now in the xlink
> namespace.
>
> You can work around this by manually setting the "prefix" property on each
> xlink:href attribute.
>
> Looking into why this happens, I can see that the serializer seriously
> broken in a number of ways when the DOM is constructed with incomplete (e.g.
> missing namespace declarations) or inconsistent information (e.g. same
> prefix used for different namespaces in the same context).
>
> I found at least 6 bugs outstanding (#16739 [2], #16496 [3], #19121 [4],
> #22958 [5], #83056 [6], #106531 [7]) and filed a new one (#117764 [8]).
> Some of these date back to 2007 (6 years ago!).
>
> These bugs break down to these categories:
>
> 1. Default namespace issues: #16739, #106531, #16496
> 2. Conflicting prefix mappings: #117764, #19121
> 3. Namespace attribute issues: #22958, #83056, #117764
>
> In looking at the code (MarkupAccumulator.cpp), they all suffer from one of
> two problems:
>
> 1. The computed prefix used isn't properly used for the declaration.
>
> 2. The generated namespace mappings aren't properly stored, scoped, or dealt
> with when they are inconsistent.
>
> There is an general assumption in the code that certain prefixes should
> always be used for certain namespaces.  Unfortunately, it does so without
> looking to see whether there is a conflict already in scope.  Also, when the
> namespace is not recognized and there is no prefix, a prefix needs to be
> generated for the serialization.
>
> Having written several robust XML Serializers for other projects, this can
> all be fixed in a straightforward way.  I've looked at the code and know
> what should be done.  The changes are probably modest.
>
> Unfortunately, I can't spend the time to directly write and test the code
> till probably after November.  :(
>
> I am certainly willing to help, explain my strategy, advise, test, etc. if
> there was another willing developer out there who would like to see these
> bugs closed.
>
> [1] http://www.mathjax.org/
> [2] https://bugs.webkit.org/show_bug.cgi?id=16739
> [3] https://bugs.webkit.org/show_bug.cgi?id=16496
> [4] https://bugs.webkit.org/show_bug.cgi?id=19121
> [5] https://bugs.webkit.org/show_bug.cgi?id=22958
> [6] https://bugs.webkit.org/show_bug.cgi?id=83056
> [7] https://bugs.webkit.org/show_bug.cgi?id=106531
> [8] https://bugs.webkit.org/show_bug.cgi?id=117764
>
>
> --
> --Alex Milowski
> "The excellence of grammar as a guide is proportional to the paucity of the
> inflexions, i.e. to the degree of analysis effected by the language
> considered."
>
> Bertrand Russell in a footnote of Principles of Mathematics
>
> ___
> webkit-dev mailing list
> webkit-dev@lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev
>
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


[webkit-dev] XML Serialization Issues

2013-06-19 Thread Alex Milowski
I was working on using MathJax [1] to turn MathML into SVG and ran into
some serious serialization issues.  In summary, as
MathJax programmatically creates SVG renderings of the MathML, when it
creates XLink attributes, it doesn't seem to define a prefix.  While this
works for rendering, it does when you try to extract a serialization of the
SVG.

That is, MathJax creates SVG 'use' elements like (assuming SVG as the
default namespace):

http://www.w3.org/1999/xlink"/>

but instead I get:

http://www.w3.org/1999/xlink"/>

which makes the SVG incorrect as the 'use' element is now in the xlink
namespace.

You can work around this by manually setting the "prefix" property on each
xlink:href attribute.

Looking into why this happens, I can see that the serializer seriously
broken in a number of ways when the DOM is constructed with incomplete
(e.g. missing namespace declarations) or inconsistent information (e.g.
same prefix used for different namespaces in the same context).

I found at least 6 bugs outstanding (#16739 [2], #16496 [3], #19121 [4],
#22958 [5], #83056 [6], #106531 [7]) and filed a new one (#117764 [8]).
 Some of these date back to 2007 (6 years ago!).

These bugs break down to these categories:

1. Default namespace issues: #16739, #106531, #16496
2. Conflicting prefix mappings: #117764, #19121
3. Namespace attribute issues: #22958, #83056, #117764

In looking at the code (MarkupAccumulator.cpp), they all suffer from one of
two problems:

1. The computed prefix used isn't properly used for the declaration.

2. The generated namespace mappings aren't properly stored, scoped, or
dealt with when they are inconsistent.

There is an general assumption in the code that certain prefixes should
always be used for certain namespaces.  Unfortunately, it does so without
looking to see whether there is a conflict already in scope.  Also, when
the namespace is not recognized and there is no prefix, a prefix needs to
be generated for the serialization.

Having written several robust XML Serializers for other projects, this can
all be fixed in a straightforward way.  I've looked at the code and know
what should be done.  The changes are probably modest.

Unfortunately, I can't spend the time to directly write and test the code
till probably after November.  :(

I am certainly willing to help, explain my strategy, advise, test, etc. if
there was another willing developer out there who would like to see these
bugs closed.

[1] http://www.mathjax.org/
[2] https://bugs.webkit.org/show_bug.cgi?id=16739
[3] https://bugs.webkit.org/show_bug.cgi?id=16496
[4] https://bugs.webkit.org/show_bug.cgi?id=19121
[5] https://bugs.webkit.org/show_bug.cgi?id=22958
[6] https://bugs.webkit.org/show_bug.cgi?id=83056
[7] https://bugs.webkit.org/show_bug.cgi?id=106531
[8] https://bugs.webkit.org/show_bug.cgi?id=117764


-- 
--Alex Milowski
"The excellence of grammar as a guide is proportional to the paucity of the
inflexions, i.e. to the degree of analysis effected by the language
considered."

Bertrand Russell in a footnote of Principles of Mathematics
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev