diff options
author | Steve Block <steveblock@google.com> | 2010-07-08 12:51:48 +0100 |
---|---|---|
committer | Steve Block <steveblock@google.com> | 2010-07-09 15:33:40 +0100 |
commit | ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24 (patch) | |
tree | bb45155550ec013adc0ad10f4d7d354c6469b022 /WebCore/html/LegacyHTMLTreeBuilder.cpp | |
parent | d4b24d9a829ed7de70381c8b99fb75a07ab40466 (diff) | |
download | external_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.cpp | 39 |
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); |