Changeset 62042 in webkit


Ignore:
Timestamp:
Jun 28, 2010 3:24:37 PM (14 years ago)
Author:
abarth@webkit.org
Message:

2010-06-28 Adam Barth <abarth@webkit.org>

Reviewed by Eric Seidel.

Add text nodes to the DOM
https://bugs.webkit.org/show_bug.cgi?id=41306

Actually add some text nodes to the DOM when parsing a document. We're
going to need to do something fancier here eventually, but this gets us
past the error we're seeing currently in runner.html.

Unfortunately, this patch "regresses" runner.html in the sense that we
now hit an assert, but it's still an improvement... I'll update the
HTML5 expectations once we get past the assert.

  • html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processCharacter): (WebCore::HTMLTreeBuilder::insertTextNode):
  • html/HTMLTreeBuilder.h:
Location:
trunk/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r62040 r62042  
     12010-06-28  Adam Barth  <abarth@webkit.org>
     2
     3        Reviewed by Eric Seidel.
     4
     5        Add text nodes to the DOM
     6        https://bugs.webkit.org/show_bug.cgi?id=41306
     7
     8        Actually add some text nodes to the DOM when parsing a document.  We're
     9        going to need to do something fancier here eventually, but this gets us
     10        past the error we're seeing currently in runner.html.
     11
     12        Unfortunately, this patch "regresses" runner.html in the sense that we
     13        now hit an assert, but it's still an improvement...  I'll update the
     14        HTML5 expectations once we get past the assert.
     15
     16        * html/HTMLTreeBuilder.cpp:
     17        (WebCore::HTMLTreeBuilder::processCharacter):
     18        (WebCore::HTMLTreeBuilder::insertTextNode):
     19        * html/HTMLTreeBuilder.h:
     20
    1212010-06-28  Beth Dakin  <bdakin@apple.com>
    222
  • trunk/WebCore/html/HTMLTreeBuilder.cpp

    r62028 r62042  
    665665void HTMLTreeBuilder::processCharacter(AtomicHTMLToken& token)
    666666{
    667     if (insertionMode() == TextMode) {
    668         attach(currentElement(), Text::create(m_document, token.characters()));
    669         return;
    670     }
    671667    // FIXME: We need to figure out how to handle each character individually.
    672     notImplemented();
     668    switch (insertionMode()) {
     669    case InitialMode:
     670        ASSERT(insertionMode() == InitialMode);
     671        notImplemented();
     672        processDefaultForInitialMode(token);
     673        // Fall through.
     674    case BeforeHTMLMode:
     675        ASSERT(insertionMode() == BeforeHTMLMode);
     676        notImplemented();
     677        processDefaultForBeforeHTMLMode(token);
     678        // Fall through.
     679    case BeforeHeadMode:
     680        ASSERT(insertionMode() == BeforeHeadMode);
     681        notImplemented();
     682        processDefaultForBeforeHeadMode(token);
     683        // Fall through.
     684    case InHeadMode:
     685        ASSERT(insertionMode() == InHeadMode);
     686        notImplemented();
     687        processDefaultForInHeadMode(token);
     688        // Fall through.
     689    case AfterHeadMode:
     690        ASSERT(insertionMode() == AfterHeadMode);
     691        notImplemented();
     692        processDefaultForAfterHeadMode(token);
     693        // Fall through
     694    case InBodyMode:
     695        ASSERT(insertionMode() == InBodyMode);
     696        notImplemented();
     697        insertTextNode(token);
     698        break;
     699    case TextMode:
     700        notImplemented();
     701        insertTextNode(token);
     702        break;
     703    case InHeadNoscriptMode:
     704        ASSERT(insertionMode() == InHeadNoscriptMode);
     705        processDefaultForInHeadNoscriptMode(token);
     706        processToken(token);
     707        break;
     708    default:
     709        notImplemented();
     710    }
    673711}
    674712
     
    860898}
    861899
     900void HTMLTreeBuilder::insertTextNode(AtomicHTMLToken& token)
     901{
     902    attach(currentElement(), Text::create(m_document, token.characters()));
     903}
     904   
    862905PassRefPtr<Element> HTMLTreeBuilder::createElement(AtomicHTMLToken& token)
    863906{
  • trunk/WebCore/html/HTMLTreeBuilder.h

    r62028 r62042  
    201201    void insertGenericRawTextElement(AtomicHTMLToken&);
    202202    void insertScriptElement(AtomicHTMLToken&);
     203    void insertTextNode(AtomicHTMLToken&);
    203204
    204205    void insertHTMLStartTagBeforeHTML(AtomicHTMLToken&);
Note: See TracChangeset for help on using the changeset viewer.