Bug 601604 - Emit ]] or ] when ]]EOF or ]EOF appears in a CDATA section in text/html. rs=jonas, a=jst.

--HG--
extra : rebase_source : 8f83d4a619ff8893976db75f63b9ed81e4292e2f
This commit is contained in:
Henri Sivonen 2010-10-07 10:27:16 +03:00
Родитель 649c4eccc3
Коммит d9758ac3ac
4 изменённых файлов: 36 добавлений и 11 удалений

Просмотреть файл

@ -6471,6 +6471,12 @@ public class Tokenizer implements Locator {
handleNcrValue(returnState);
state = returnState;
continue;
case CDATA_RSQB:
tokenHandler.characters(Tokenizer.RSQB_RSQB, 0, 1);
break eofloop;
case CDATA_RSQB_RSQB:
tokenHandler.characters(Tokenizer.RSQB_RSQB, 0, 2);
break eofloop;
case DATA:
default:
break eofloop;

Просмотреть файл

@ -3684,6 +3684,14 @@ nsHtml5Tokenizer::eof()
state = returnState;
continue;
}
case NS_HTML5TOKENIZER_CDATA_RSQB: {
tokenHandler->characters(nsHtml5Tokenizer::RSQB_RSQB, 0, 1);
NS_HTML5_BREAK(eofloop);
}
case NS_HTML5TOKENIZER_CDATA_RSQB_RSQB: {
tokenHandler->characters(nsHtml5Tokenizer::RSQB_RSQB, 0, 2);
NS_HTML5_BREAK(eofloop);
}
case NS_HTML5TOKENIZER_DATA:
default: {
NS_HTML5_BREAK(eofloop);

Просмотреть файл

@ -1,17 +1,8 @@
#data
<svg><![CDATA[]]
Placeholder
#errors
#document
| <html>
| <head>
| <body>
| <svg svg>
#data
<svg><![CDATA[]
#errors
#document
| <html>
| <head>
| <body>
| <svg svg>
| "Placeholder"

Просмотреть файл

@ -86,6 +86,26 @@
| <svg svg>
| "]] >"
#data
<svg><![CDATA[]]
#errors
#document
| <html>
| <head>
| <body>
| <svg svg>
| "]]"
#data
<svg><![CDATA[]
#errors
#document
| <html>
| <head>
| <body>
| <svg svg>
| "]"
#data
<svg><![CDATA[]>a
#errors