[whatwg] Fwd: Range.createContextualFragment in SVG contexts

(My apologies if you get this twice.  I haven't seen my message on the public
archives <http://lists.w3.org/Archives/Public/public-whatwg-archive/>, so I
suspect that it was dropped.)

On Sat, Dec 28, 2013 at 5:29 AM, Cameron McCormack <cam@mcc.id.au> wrote:

> Hi Victor,
> Victor Costan wrote:
>> I'm trying to re-implement Range.createContextualFragment in Blink
>> following this whatwg spec:
>> http://domparsing.spec.whatwg.org/#extensions-to-the-range-interface
>> There are two issues I'd like to discuss, related to the use of
>> createContextualFragment in SVG contexts.
>> 1) If a Range's context is an<svg>  element, I think the XML parsing
>> algorithm should be selected, so the elements in the resulting
>> DocumentFragment would get the SVG namespace. This way, inserting the
>> fragment in an<svg>  tree would have the intended effect.
>> Examples:
>> https://bug711821.bugzilla.mozilla.org/attachment.cgi?id=582654
>> (the red circle should be completely covered by a black circle)
>> https://codereview.chromium.org/115693010/diff/70001/
>> LayoutTests/fast/dom/Range/create-contextual-fragment-
>> from-svg-element-range.html
> I think it would be unexpected that XML parsing is used here, when HTML
> parsing was used to get the SVG fragment in the document in the first
> place.  Maybe the HTML fragment parsing algorithm should be changed to push
> the <svg> element on to the stack of open elements so that the parser will
> interpret the "<circle .../>" as foreign content?

Issues related to Range.createContextualFragment() in SVG contexts are
starting to come up in bug reports:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1087715
- https://code.google.com/p/chromium/issues/detail?id=426400

Should Cameron's idea for changing the HTML fragment parsing algorithm be

One other idea is to change the "in body" insertion mode spec so that there
are 'A start tag whose tag name is one of: "defs", "g", "svg"' steps, but I
personally think that Cameron's idea is much better.


Received on Tuesday, 28 October 2014 12:35:37 UTC