Created attachment 549283 [details] [diff] [review]
Currently in both ReplaceOrInsertBefore and doInsertChildAt we have code that avoids implicitly adopting doctypes, instead the doctype node itself has a bunch of code in BindToTree to adjust its nodeinfo if it's being implicitly adopted.
This is pretty surprising and temporarily caused a regression in bug 648065.
It appears that the only reason we have all this is to allow us to make explicitly adopting doctypes *not* work (implicit does work though).
I talked with Anne and he removed this strange special case from DOM Core.
So here's a patch that simplifies this whole setup. It also removes some code to handle now-deprecated nodetypes from our adopt/import code.
Try run for d57917a61371 is complete.
Detailed breakdown of the results available here:
Total buildrequests: 27
Builds available at http://firstname.lastname@example.org
Olli, would you mind taking this since it looked like you were looking at doctypes over in bug 675166.
The patch here works, but needs tests. The only tests it breaks are the ones from the W3C DOM test suite that checks for the old behavior. We should just nuke those and add tests that ensures that adopting/importing doctypes works as it should.
I can look at this after bug 675166 is fixed (since I happened to write the patch for that first).
And also because bug 675166 shouldn't cause any functional changes, but this bug does.
Bug 675166 fixed also this one.