Bug 119478

Summary: Implement HTML spec change to Adoption Agency Algorithm to not reverse the order of nodes in the document, by removing nodes that we're not recreating from the stack of open elements
Product: WebKit Reporter: sideshowbarker <mike>
Component: DOMAssignee: Ryosuke Niwa <rniwa>
Status: RESOLVED FIXED    
Severity: Normal CC: aestes, ahmad.saleem792, ap, bfulgham, eoconnor, hyatt, ian, mjs, rniwa, sam, webkit-bug-importer, zalan, zcorpan
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   

Comment 1 Ryosuke Niwa 2013-08-04 18:53:36 PDT
I don't understand why this specification change was made when all browsers behave according to the old specification.
Comment 2 sideshowbarker 2013-08-04 21:51:16 PDT
(In reply to comment #1)
> I don't understand why this specification change was made when all browsers behave according to the old specification.

Because the existing behavior is buggy in that it causes nodes to end up in the DOM in (from users perspective) an unexpected order; e.g., the text content of the following div ending up as "456123" instead of "123456".

  <div id=mike><b><i><s><u><tt><p></b>123</p></tt></u></s>456

Yeah, it's very invalid markup but dealing gracefully with invalid markup is entirely what this whole part of the parsing algorithm is all about. So this is a bug in the behavior of what the AAA is intended for, and if it's possible to have the spec get rid of the existing bug in the algorithm and handle that case more intuitively, then I think the right thing for Hixie or any other editor to do is to fix it in the spec if he can and then to try to see if browsers are willing to implement the revised algorithm or not.

Of course it's collectively up to browser implementors to decide if they want to make the change. But for a case like this, having concrete spec text to review in context seems to me a least to be a lot better than just having an isolated proposal written in an e-mail message or whatever.
Comment 3 Ian 'Hixie' Hickson 2013-08-14 13:31:31 PDT
While you're at it, this change to the AAA was also made recently:
   http://html5.org/tools/web-apps-tracker?from=8138&to=8139
   https://www.w3.org/Bugs/Public/show_bug.cgi?id=22926

It makes conforming pages parse correctly (before, if you nested multiple identical formatting elements more than 3 deep, you'd end up corrupting your tree; that was only supposed to happen when the document was non-conforming).
Comment 4 Simon Pieters (:zcorpan) 2016-05-17 23:41:46 PDT
Ping (see https://github.com/html5lib/html5lib-tests/issues/78 )
Comment 5 Alexey Proskuryakov 2016-09-08 13:59:39 PDT
<rdar://problem/28213632>
Comment 6 Ahmad Saleem 2022-08-13 06:54:51 PDT
rniwa@webkit.org - is this something fixed with this?

https://github.com/WebKit/WebKit/commit/67d7bd2e0aa2ed0355e51c406ff56021e603590f

I know you recently did some fixes in Adoption Agency Algorithm.

For other bit, only Firefox bug is marked as "RESOLVED FIXED" while Chrome bug is still Open from Comment 0. Thanks!
Comment 7 Ryosuke Niwa 2022-08-14 12:27:03 PDT
Pull request: https://github.com/WebKit/WebKit/pull/3297
Comment 8 EWS 2022-08-16 21:55:01 PDT
Committed 253505@main (6f377390c19b): <https://commits.webkit.org/253505@main>

Reviewed commits have been landed. Closing PR #3297 and removing active labels.