Bug 482921 part 2 - Highligh tokenizer-level errors in View Source. r=Olli.Pettay.

This commit is contained in:
Henri Sivonen
2011-11-01 13:33:11 +02:00
parent a42c6e14db
commit df4f37165e
12 changed files with 898 additions and 88 deletions

View File

@@ -715,7 +715,15 @@ nsHtml5TreeOperation::Perform(nsHtml5TreeOpExecutor* aBuilder,
nsIContent* node = *(mOne.node);
PRUnichar* str = mTwo.unicharPtr;
nsDependentString depStr(str);
node->SetAttr(kNameSpaceID_None, nsGkAtoms::_class, depStr, true);
nsAutoString klass;
node->GetAttr(kNameSpaceID_None, nsGkAtoms::_class, klass);
if (!klass.IsEmpty()) {
klass.Append(' ');
klass.Append(depStr);
node->SetAttr(kNameSpaceID_None, nsGkAtoms::_class, klass, true);
} else {
node->SetAttr(kNameSpaceID_None, nsGkAtoms::_class, depStr, true);
}
return rv;
}
case eTreeOpAddViewSourceHref: {
@@ -774,6 +782,37 @@ nsHtml5TreeOperation::Perform(nsHtml5TreeOpExecutor* aBuilder,
node->SetAttr(kNameSpaceID_None, nsGkAtoms::href, utf16, true);
return rv;
}
case eTreeOpAddError: {
nsIContent* node = *(mOne.node);
char* msgId = mTwo.charPtr;
nsAutoString klass;
node->GetAttr(kNameSpaceID_None, nsGkAtoms::_class, klass);
if (!klass.IsEmpty()) {
klass.Append(NS_LITERAL_STRING(" error"));
node->SetAttr(kNameSpaceID_None, nsGkAtoms::_class, klass, true);
} else {
node->SetAttr(kNameSpaceID_None,
nsGkAtoms::_class,
NS_LITERAL_STRING("error"),
true);
}
nsXPIDLString message;
rv = nsContentUtils::GetLocalizedString(
nsContentUtils::eHTMLPARSER_PROPERTIES, msgId, message);
NS_ENSURE_SUCCESS(rv, rv);
nsAutoString title;
node->GetAttr(kNameSpaceID_None, nsGkAtoms::title, title);
if (!title.IsEmpty()) {
title.Append(' ');
title.Append(message);
node->SetAttr(kNameSpaceID_None, nsGkAtoms::title, title, true);
} else {
node->SetAttr(kNameSpaceID_None, nsGkAtoms::title, message, true);
}
return rv;
}
default: {
NS_NOTREACHED("Bogus tree op");
}