Closed
Bug 270567
Opened 20 years ago
Closed 11 years ago
no parent chain for anonymous content causes anonymous <option> to fail
Categories
(Core Graveyard :: XTF, defect)
Core Graveyard
XTF
Tracking
(Not tracked)
RESOLVED
WONTFIX
People
(Reporter: bryner, Assigned: alex)
Details
I tried creating an XTF element which has as its anonymous child an HTML <option> element, and inserting this element inside an HTML select. This fails to work because nsHTMLOptionElement tries to walk up the content tree to find its select. When it gets to the root of the anonymous content, it can't go any further and fails. This is a rather complicated problem because there are non-trivial implications to hooking up the parent pointer on the root anonymous content. Events can start bubbling out, so you either have to stop them or perform some kind of event retargeting like XBL does. Another option would be to add a different method on nsIContent that's like GetParent() but will reach across the anonymous content boundary. It could be used in cases like this where an element needs to find a parent element that it's expected to be contained in. This doesn't help the event situation, we'd have to deal with that separately. I'm undecided on which approach I like better; hyatt notes that in sXBL, the parent element linkage was removed. It's definitely lower-risk to make all interaction with the anonymous content tree explicit. If we do decide we want the parent linkage to work like XBL, I'd like to seriously look at sharing this mechanism with XBL so we're not duplicating it... basically enabling the binding manager to handle both XBL and XTF bindings. What do you guys think?
Reporter | ||
Comment 1•20 years ago
|
||
adding a few more people
Comment 2•20 years ago
|
||
In sXBL we also have a separate interface for going up the parent chains (and for doing so in various different ways): http://www.w3.org/TR/sXBL/#the-nodexbl A similar mechanism might be relevant here, with HTML form elements all being changed so that they crawl up appropriately. However, you have to be careful. You don't want the anonymous <html:select> inside an <xforms:select> appearing in an <html:form> ancestor. There needs to be a way for the <xforms:select> to say "this is the root of your subtree" to the <html:select> and <html:option>s, etc.
Comment 3•20 years ago
|
||
> When it gets to the root of the anonymous content, it can't go any further and > fails. Hmm... Why is this? The parent pointer for anonymous content should be set, no? It was last I checked. See http://lxr.mozilla.org/seamonkey/source/layout/html/style/src/nsCSSFrameConstructor.cpp#5429 > Events can start bubbling out, so you either have to stop them or perform some > kind of event retargeting like XBL does. We already perform event retargeting for native anonymous content. See http://lxr.mozilla.org/seamonkey/source/content/base/src/nsGenericElement.cpp#1867 Otherwise form controls would screw up events quite badly.. (well, more than they do now).
Comment 4•20 years ago
|
||
Note that hixie's point about anonymous form controls in non-anonymous forms is well-taken. We'd have to watch out for that... I bet we get it wrong right now.
Reporter | ||
Updated•18 years ago
|
Assignee: bryner → alex
QA Contact: xtf
Comment 5•11 years ago
|
||
XTF has been removed from the tree. [xtfisdead] for filtering purposes.
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → WONTFIX
Updated•10 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•