Bug 612527 - Implement spec tweaks to U+0000 handling in the HTML5 parser. rs=jonas, a=blocking2.0-betaN.

This commit is contained in:
Henri Sivonen
2010-12-09 11:27:58 +02:00
parent 0e46554119
commit 034b529d7e
9 changed files with 66 additions and 12 deletions

View File

@@ -423,8 +423,22 @@ nsHtml5TreeBuilder::characters(const PRUnichar* buf, PRInt32 start, PRInt32 leng
void
nsHtml5TreeBuilder::zeroOriginatingReplacementCharacter()
{
if (isInForeign() || mode == NS_HTML5TREE_BUILDER_TEXT) {
characters(REPLACEMENT_CHARACTER, 0, 1);
if (mode == NS_HTML5TREE_BUILDER_TEXT) {
accumulateCharacters(REPLACEMENT_CHARACTER, 0, 1);
return;
}
if (currentPtr >= 0) {
nsHtml5StackNode* stackNode = stack[currentPtr];
if (stackNode->ns == kNameSpaceID_XHTML) {
return;
}
if (stackNode->isHtmlIntegrationPoint()) {
return;
}
if (stackNode->ns == kNameSpaceID_MathML && stackNode->getGroup() == NS_HTML5TREE_BUILDER_MI_MO_MN_MS_MTEXT) {
return;
}
accumulateCharacters(REPLACEMENT_CHARACTER, 0, 1);
}
}