- From: <bugzilla@jessica.w3.org>
- Date: Sat, 09 Feb 2013 01:32:48 +0000
- To: public-webapps-bugzilla@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=20924
Bug ID: 20924
Summary: [Templates]: processing an EOF token deep within a
template which was opened in <head> may fail to run
after-head work
Classification: Unclassified
Product: WebAppsWG
Version: unspecified
Hardware: PC
OS: All
Status: NEW
Severity: normal
Priority: P2
Component: Component Model
Assignee: dglazkov@chromium.org
Reporter: rafaelw@chromium.org
QA Contact: public-webapps-bugzilla@w3.org
Blocks: 15476
e.g.
#data
<template><div>
#errors
#document
| <html>
| <head>
| <template>
| #document-fragment
| <div>
| <body>
With the current spec-text, the body element will fail to be produced because
the EOF was reached in "in body" insertion mode which just stops parsing.
We could obviously solve this by disallowing <template> inside of <head>, but I
think the impacts the design consistency of <template> and possibly cuts off
legitimate use cases.
It seems like the right way to approach this is that the stack needs to unwind
back past the first open template element, reset the insertion mode, and then
reprocess the EOF token (thus if it was inside a <head> context, the parser
will act as if </head> and <body> had been seen).
Right now, "in cell", "in caption" defer to "in body" for EOF (as "anything
else"), "in table body", "in row", and "in select in table" defer to "in
table".
So the logic to pop past the first open template can go into "in body" and "in
table" when processing EOF.
That leaves "in coloumn group" and "in frameset".
It seems to me that "in column group" is table element, so it makes sense to
make it defer to "in table" for EOF (its behavior is the same).
"in frameset" has the same behavior as "in table", so it could either be spec'd
independently, or defer to "in table", which might be a tad confusing (spec
wise) since framesets aren't related to tables. Webkit will implement like the
former, but I'm fine with the later.
Thoughts?
--
You are receiving this mail because:
You are the QA Contact for the bug.
Received on Saturday, 9 February 2013 01:32:50 UTC