[whatwg] <!DOCTYPE html><body><table><math><mi>foo</mi></math></table>

Adam Barth w3c at adambarth.com
Mon Dec 12 21:05:41 PST 2011


Yes, that's the same issue.  It appears to be fallout from removing
the "in foreign content" insertion mode.

Adam


On Mon, Dec 12, 2011 at 7:36 PM, David Flanagan <dflanagan at mozilla.com> wrote:
> I think this is the same problem I reported here: http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2011-October/033533.html
> See Hixie's response to that message.  I think this is a known problem, though I don't know if a bug has been filed on it.
>
>    David
>
> ----- Original Message -----
> From: "Adam Barth" <w3c at adambarth.com>
> To: "whatwg" <whatwg at lists.whatwg.org>
> Cc: "Henri Sivonen" <hsivonen at iki.fi>
> Sent: Monday, December 12, 2011 6:23:23 PM
> Subject: [whatwg] <!DOCTYPE     html><body><table><math><mi>foo</mi></math></table>
>
> I'm trying to understand how the HTML parsing spec handles the following case:
>
> <!DOCTYPE html><body><table><math><mi>foo</mi></math></table>
>
> According to the html5lib test data, we should parse that as follows:
>
> | <!DOCTYPE html>
> | <html>
> |   <head>
> |   <body>
> |     <math math>
> |       <math mi>
> |         "foo"
> |     <table>
>
> However, I'm not sure whether that's what the spec actually does.
>
> Consider point at which we parse the "f" character token (from "foo").
>  The insertion mode will be "in table".  The spec will execute as
> follows:
>
> -> If the current node is a MathML text integration point and the
> token is a character token
>  * Process the token according to the rules given in the section
> corresponding to the current insertion mode in HTML content.
>
> -> A character token
>  * Let the pending table character tokens be an empty list of tokens.
>  * Let the original insertion mode be the current insertion mode.
>  * Switch the insertion mode to "in table text" and reprocess the token.
>
> -> Any other character token
>  * Append the character token to the pending table character tokens list.
>
> ... the "o" and "o" will be processed similarly and end up in the
> pending table character tokens list.
>
> Now, consider the </mi> token.  We're still at a MathML text
> integration point, but the current token is neither a start token
> (with certain names) nor a character token, so we process the token
> according to the rules given in the section for parsing tokens in
> foreign content.
>
> -> Any other end tag
>  * Run these steps:
>    ...
>
> The net result of which is popping the stack of open elements, but not
> flushing out the pending table character tokens list.  The list will
> eventually be flushed when we process the </table> token, resulting
> these character tokens getting foster parented:
>
> | <!DOCTYPE html>
> | <html>
> |   <head>
> |   <body>
> |     <math math>
> |       <math mi>
> |     "foo"
> |     <table>
>
> Thanks,
> Adam


More information about the whatwg mailing list