- From: Ian Hickson <ian@hixie.ch>
- Date: Mon, 16 Sep 2013 17:35:28 +0000 (UTC)
- To: Adam Klein <adamk@chromium.org>, Ryosuke Niwa <rniwa@apple.com>, Jonas Sicking <jonas@sicking.cc>
- Cc: Kent Tamura <tkent@chromium.org>, WHATWG List <whatwg@whatwg.org>, Ryosuke Niwa <rniwa@webkit.org>
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. `._.-(,_..'--(,_..'`-.;.'
Received on Monday, 16 September 2013 17:35:53 UTC