Range.createContextualFragment sets wrong namespace when context is an SVG node

UNCONFIRMED
Unassigned

Status

()

P5
normal
UNCONFIRMED
7 years ago
6 months ago

People

(Reporter: costan, Unassigned)

Tracking

Trunk
x86_64
Linux
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Reporter)

Description

7 years ago
Created attachment 582654 [details]
Test case

User Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.12 Safari/535.11

Steps to reproduce:

I used the createContextualFragment DOM Range API, with the context element set to a SVG element. I attached a reduced test case.

Spec at http://html5.org/specs/dom-parsing.html#dom-range-createcontextualfragment



Actual results:

The nodes in the resulting DocumentFragment have their namespaces set to the HTML namespace, not to the SVG namespace.


Expected results:

The nodes in the resulting DocumentFragment should have their namespaces set to the SVG namespace, so I can add them to the SVG element :)

In the attached test case, the black <circle> coming from the SVG fragment should overlap the red <circle> in the initial SVG.
(Reporter)

Comment 1

7 years ago
Chrome bug at http://crbug.com/107982
(Reporter)

Comment 2

7 years ago
This would be useful for visualizations and games. A real use-case is that I'd like to pull data for a unit model, set it as a <symbol>, and then <use> it to render multiple units with the same model.

Thank you for looking into this!
Attachment #582654 - Attachment mime type: text/plain → text/html
That's what the specification says. Have you emailed the whatwg and suggested it be changed?
(Reporter)

Comment 4

7 years ago
Thank you for your answer, Robert!

I'd definitely like to email the WHATWG if this is spec behavior, because I don't think it's the right thing to do. Can you please help me where did my train of thought fail?

1. The fragment parser will be invoked with <svg> as the context element.
http://html5.org/specs/dom-parsing.html#dom-range-createcontextualfragment

2. The XML parsing algorithm will be selected.
http://html5.org/specs/dom-parsing.html#concept-parse-fragment

3. The default namespace will be the SVG namespace.
http://www.whatwg.org/specs/web-apps/current-work/multipage/the-xhtml-syntax.html#xml-fragment-parsing-algorithm

Thank you so much!
Component: General → DOM
Product: Firefox → Core
QA Contact: general → general
(Reporter)

Comment 5

4 years ago
FWIW, this works now in Chrome.
http://src.chromium.org/viewvc/blink?view=revision&revision=176569
https://bugzilla.mozilla.org/show_bug.cgi?id=1472046

Move all DOM bugs that haven’t been updated in more than 3 years and has no one currently assigned to P5.

If you have questions, please contact :mdaly.
Priority: -- → P5
You need to log in before you can comment on or make changes to this bug.