[whatwg] Form-associated elements and the parser
Ian Hickson
ian at hixie.ch
Mon Sep 16 10:35:28 PDT 2013
On Tue, 6 Aug 2013, Adam Klein wrote:
>
> Hixie opened my eyes last week to parser-association behavior of the
> sort found at
> http://software.hixie.ch/utilities/js/live-dom-viewer/?saved=2428.
>
> In that case, an <input> in a detached tree is associated with a <form>
> in the main document. This causes badness in WebKit and Blink because
> the association between the <form> and the <input> (e.g., as exposed in
> the HTMLFormElement.elements collection) is only weakly held to avoid
> reference loops (and thus memory leaks). And that weakness occasionally
> results in crashes when one of these objects is collected before the
> other.
>
> While all modern HTML parser implementations I tested seemed to agree on
> their treatment of the above example (they all return "1" as
> elements.length), this feature doesn't strike me as terribly useful. And
> for what it's worth, it doesn't seem to be present in legacy IE.
>
> I'm interested what others would think about changing the parser to only
> associate a <form> with an <input> if both are in the same "home
> subtree" Or is there some deep web-compat reason for this parsing
> oddity?
On Tue, 6 Aug 2013, Jonas Sicking wrote:
>
> Sure, as long as you come up with a formalized algorithm for when there
> is an association and when there isn't. Keep in mind that by the time
> that the input-element is inserted, the form-element might have been
> moved elsewhere. We likely don't need the association in that case, but
> detecting that that has happened sounds tricky.
On Tue, 6 Aug 2013, Adam Klein wrote:
>
> My concrete proposal would be something like this:
>
> In step 4 of [create an element for the token], add a requirement that
> "intended parent" and the "form element pointer" be part of the same
> "home subtree" [...]
I think this works... there's some dodginess around how elements are
inserted in the AAA, but I think it works there as well.
(The 'reset the form owner' algorithm can't associate cross-subtree; only
the parser can do this. So it's just the parser that needs fixing.)
--
Ian Hickson U+1047E )\._.,--....,'``. fL
http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,.
Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
More information about the whatwg
mailing list