summaryrefslogtreecommitdiffstats
path: root/WebCore/html/LegacyHTMLTreeBuilder.cpp
diff options
context:
space:
mode:
authorSteve Block <steveblock@google.com>2010-07-08 12:51:48 +0100
committerSteve Block <steveblock@google.com>2010-07-09 15:33:40 +0100
commitca9cb53ed1119a3fd98fafa0972ffeb56dee1c24 (patch)
treebb45155550ec013adc0ad10f4d7d354c6469b022 /WebCore/html/LegacyHTMLTreeBuilder.cpp
parentd4b24d9a829ed7de70381c8b99fb75a07ab40466 (diff)
downloadexternal_webkit-ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24.zip
external_webkit-ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24.tar.gz
external_webkit-ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24.tar.bz2
Merge WebKit at r62496: Initial merge by git
Change-Id: Ie3da0770eca22a70a632e3571f31cfabc80facb2
Diffstat (limited to 'WebCore/html/LegacyHTMLTreeBuilder.cpp')
-rw-r--r--WebCore/html/LegacyHTMLTreeBuilder.cpp39
1 files changed, 19 insertions, 20 deletions
diff --git a/WebCore/html/LegacyHTMLTreeBuilder.cpp b/WebCore/html/LegacyHTMLTreeBuilder.cpp
index 7b44943..afd79b6 100644
--- a/WebCore/html/LegacyHTMLTreeBuilder.cpp
+++ b/WebCore/html/LegacyHTMLTreeBuilder.cpp
@@ -67,7 +67,7 @@ using namespace HTMLNames;
static const unsigned cMaxRedundantTagDepth = 20;
static const unsigned cResidualStyleMaxDepth = 200;
-static const unsigned cResidualStyleIterationLimit = 5;
+static const unsigned cResidualStyleIterationLimit = 10;
static const int minBlockLevelTagPriority = 3;
@@ -344,7 +344,7 @@ void LegacyHTMLTreeBuilder::parseDoctypeToken(DoctypeToken* t)
return;
// Make a new doctype node and set it as our doctype.
- m_document->addChild(DocumentType::create(m_document, String::adopt(t->m_name), String::adopt(t->m_publicID), String::adopt(t->m_systemID)));
+ m_document->legacyParserAddChild(DocumentType::create(m_document, String::adopt(t->m_name), String::adopt(t->m_publicID), String::adopt(t->m_systemID)));
if (t->m_forceQuirks)
m_document->setParseMode(Document::Compat);
}
@@ -390,7 +390,7 @@ bool LegacyHTMLTreeBuilder::insertNode(Node* n, bool flat)
// let's be stupid and just try to insert it.
// this should work if the document is well-formed
- Node* newNode = m_current->addChild(n);
+ Node* newNode = m_current->legacyParserAddChild(n);
if (!newNode)
return handleError(n, flat, localName, tagPriority); // Try to handle the error.
@@ -459,12 +459,12 @@ bool LegacyHTMLTreeBuilder::handleError(Node* n, bool flat, const AtomicString&
if (m_head) {
if (!createdHead)
reportError(MisplacedHeadContentError, &localName, &m_current->localName());
- if (m_head->addChild(n)) {
+ if (m_head->legacyParserAddChild(n)) {
if (!n->attached() && !m_isParsingFragment)
n->attach();
return true;
- } else
- return false;
+ }
+ return false;
}
} else if (h->hasLocalName(htmlTag)) {
if (!m_current->isDocumentNode() ) {
@@ -490,7 +490,7 @@ bool LegacyHTMLTreeBuilder::handleError(Node* n, bool flat, const AtomicString&
createdHead = true;
}
if (m_head) {
- Node* newNode = m_head->addChild(n);
+ Node* newNode = m_head->legacyParserAddChild(n);
if (!newNode) {
setSkipMode(h->tagQName());
return false;
@@ -530,7 +530,7 @@ bool LegacyHTMLTreeBuilder::handleError(Node* n, bool flat, const AtomicString&
} else if (h->hasLocalName(areaTag)) {
if (m_currentMapElement) {
reportError(MisplacedAreaError, &m_current->localName());
- m_currentMapElement->addChild(n);
+ m_currentMapElement->legacyParserAddChild(n);
if (!n->attached() && !m_isParsingFragment)
n->attach();
handled = true;
@@ -944,7 +944,7 @@ PassRefPtr<Node> LegacyHTMLTreeBuilder::getNode(Token* t)
QualifiedName nestedCreateErrorTags[] = { aTag, buttonTag, nobrTag, trTag };
mapTagsToFunc(gFunctionMap, nestedCreateErrorTags, &LegacyHTMLTreeBuilder::nestedCreateErrorCheck);
- QualifiedName nestedStyleCreateErrorTags[] = { bTag, bigTag, iTag, sTag, smallTag, strikeTag, ttTag, uTag };
+ QualifiedName nestedStyleCreateErrorTags[] = { bTag, bigTag, iTag, markTag, sTag, smallTag, strikeTag, ttTag, uTag };
mapTagsToFunc(gFunctionMap, nestedStyleCreateErrorTags, &LegacyHTMLTreeBuilder::nestedStyleCreateErrorCheck);
QualifiedName pCloserCreateErrorTags[] = { addressTag, articleTag,
@@ -1057,7 +1057,7 @@ bool LegacyHTMLTreeBuilder::isInline(Node* node) const
e->hasLocalName(abbrTag) || e->hasLocalName(acronymTag) || e->hasLocalName(subTag) ||
e->hasLocalName(supTag) || e->hasLocalName(spanTag) || e->hasLocalName(nobrTag) ||
e->hasLocalName(noframesTag) || e->hasLocalName(nolayerTag) ||
- e->hasLocalName(noembedTag))
+ e->hasLocalName(noembedTag) || e->hasLocalName(markTag))
return true;
#if !ENABLE(XHTMLMP)
if (e->hasLocalName(noscriptTag) && !m_isParsingFragment) {
@@ -1077,7 +1077,7 @@ bool LegacyHTMLTreeBuilder::isResidualStyleTag(const AtomicString& tagName)
if (residualStyleTags.isEmpty()) {
QualifiedName tagNames[] = { aTag, fontTag, ttTag, uTag, bTag, iTag,
sTag, strikeTag, bigTag, smallTag, emTag, strongTag, dfnTag,
- codeTag, sampTag, kbdTag, varTag, nobrTag };
+ codeTag, sampTag, kbdTag, varTag, nobrTag, markTag };
addTags(residualStyleTags, tagNames);
}
return residualStyleTags.contains(tagName.impl());
@@ -1606,10 +1606,10 @@ PassRefPtr<Node> LegacyHTMLTreeBuilder::handleIsindex(Token* t)
t->attrs = 0;
}
- n->addChild(HTMLHRElement::create(m_document));
- n->addChild(Text::create(m_document, text));
- n->addChild(isIndex.release());
- n->addChild(HTMLHRElement::create(m_document));
+ n->legacyParserAddChild(HTMLHRElement::create(m_document));
+ n->legacyParserAddChild(Text::create(m_document, text));
+ n->legacyParserAddChild(isIndex.release());
+ n->legacyParserAddChild(HTMLHRElement::create(m_document));
return n.release();
}
@@ -1647,8 +1647,9 @@ void LegacyHTMLTreeBuilder::reportErrorToConsole(HTMLParserErrorCode errorCode,
Frame* frame = m_document->frame();
if (!frame)
return;
-
- int lineNumber = m_document->parser()->lineNumber() + 1;
+
+ ScriptableDocumentParser* parser = m_document->scriptableDocumentParser();
+ int lineNumber = parser->lineNumber() + 1;
AtomicString tag1;
AtomicString tag2;
@@ -1674,9 +1675,7 @@ void LegacyHTMLTreeBuilder::reportErrorToConsole(HTMLParserErrorCode errorCode,
return;
String message;
- // FIXME: This doesn't work for the new HTMLDocumentParser and should.
- LegacyHTMLDocumentParser* htmlParser = m_document->parser()->asHTMLDocumentParser();
- if (htmlParser && htmlParser->processingContentWrittenByScript())
+ if (parser->processingContentWrittenByScript())
message += htmlParserDocumentWriteMessage();
message += errorMsg;
message.replace("%tag1", tag1);