[Bug 15447] support for document.write should not be required

https://www.w3.org/Bugs/Public/show_bug.cgi?id=15447

--- Comment #3 from Stijn van Drongelen <self@tinctorius.net> 2012-01-07 14:34:28 UTC ---
For the sake of completeness:

--

PROPOSAL:

* Allow conforming implementations to drop support for both the
document.write() and document.writeln() methods on Document DOM objects,
currently required by "Dynamic markup insertion".

  - Option 1: the Document interface may lack both `write` and `writeln`
methods.
  - Option 2: the `write` and `writeln` methods may throw NotSupportedError
exceptions.

* Adjust the specification accordingly, especially where considering "pending
parsing-blocking scripts" is required (specifically, the requirements for the
parser architecture).

ARGUMENTS FOR EITHER OPTION:

1. These methods are already marked as "considered harmful" in the
specification.
2. Dropping support for these functions allows for better software design (both
in specification and in code). If support for dynamic insertion is required,
the parser can't be properly modularized without maiming its interface.
3. I am assuming that usage in the wild is very limited, especially on websites
that are serious about (strict) HTML5 conformance.
4. I am assuming that, ignoring GeoCities-era websites, usage in the wild is
now limited to ad and tracking scripts. The scripts are isolated in their own
script elements, so the uncaught exceptions won't interfere with other scripts
on the page on most UAs.
5. Supporting document.write() also requires pausing the parser when script
elements are found. This makes script elements places where the browser must
stall rendering and parallel downloads, leading to worse user experience
(according to the YSlow team, among others).

ARGUMENTS FOR OPTION 1, AGAINST OPTION 2:

6. Implementers shouldn't have to worry about document.write() and
document.writeln() anymore. At all.
7. Feature checks are much easier and more reliable when either the methods
work, or the methods are missing.
8. "Object of Document class doesn't have member document.write()" is easy
enough to debug.

ARGUMENTS FOR OPTION 2, AGAINST OPTION 1:

9. Exceptions are maybe slightly easier to debug.

ARGUMENTS AGAINST BOTH OPTIONS:

10. Not requiring support for these functions will result in different parsing
results.

COUNTER-ARGUMENTS:

11. Against 10: all users of AdBlock Plus (and similar UA features/extensions)
already see different parsing results, and as mentioned before, I don't know of
any real uses of document.write() besides ad and tracking scripts.
12. Against 10: conformance checking is easier when the subject (i.e. a parser)
is guaranteed to terminate successfully.

-- 
Configure bugmail: https://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.

Received on Saturday, 7 January 2012 14:34:31 UTC