Changeset 61742 in webkit


Ignore:
Timestamp:
Jun 23, 2010 11:52:42 PM (14 years ago)
Author:
abarth@webkit.org
Message:

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

Reviewed by Eric Seidel.

Sketch out InitialMode of HTML5 tree builder
https://bugs.webkit.org/show_bug.cgi?id=41126

Transliterated from the spec. Currently doesn't do anything. Mostly
an experiment to see where this goes.

  • html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processToken): (WebCore::HTMLTreeBuilder::insertDoctype): (WebCore::HTMLTreeBuilder::insertComment):
  • html/HTMLTreeBuilder.h:
Location:
trunk/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r61740 r61742  
     12010-06-23  Adam Barth  <abarth@webkit.org>
     2
     3        Reviewed by Eric Seidel.
     4
     5        Sketch out InitialMode of HTML5 tree builder
     6        https://bugs.webkit.org/show_bug.cgi?id=41126
     7
     8        Transliterated from the spec.  Currently doesn't do anything.  Mostly
     9        an experiment to see where this goes.
     10
     11        * html/HTMLTreeBuilder.cpp:
     12        (WebCore::HTMLTreeBuilder::processToken):
     13        (WebCore::HTMLTreeBuilder::insertDoctype):
     14        (WebCore::HTMLTreeBuilder::insertComment):
     15        * html/HTMLTreeBuilder.h:
     16
    1172010-06-23  Adam Barth  <abarth@webkit.org>
    218
  • trunk/WebCore/html/HTMLTreeBuilder.cpp

    r61740 r61742  
    237237}
    238238
    239 PassRefPtr<Node> HTMLTreeBuilder::processToken(HTMLToken& token, UChar currentCharacter)
    240 {
    241     UNUSED_PARAM(token);
    242     UNUSED_PARAM(currentCharacter);
     239PassRefPtr<Node> HTMLTreeBuilder::processToken(HTMLToken& token, UChar cc)
     240{
     241reprocessToken:
     242    switch (insertionMode()) {
     243    case InitialMode: {
     244        switch (token.type()) {
     245        case HTMLToken::Uninitialized:
     246            ASSERT_NOT_REACHED();
     247            break;
     248        case HTMLToken::DOCTYPE:
     249            return insertDoctype(token);
     250        case HTMLToken::Comment:
     251            return insertComment(token);
     252        case HTMLToken::Character:
     253            if (cc == '\t' || cc == '\x0A' || cc == '\x0C' || cc == '\x0D' || cc == ' ')
     254                return 0;
     255            // Fall through
     256        case HTMLToken::StartTag:
     257        case HTMLToken::EndTag:
     258        case HTMLToken::EndOfFile:
     259            notImplemented();
     260            setInsertionMode(BeforeHTMLMode);
     261            goto reprocessToken;
     262        }
     263        ASSERT_NOT_REACHED();
     264        break;
     265    }
     266    case BeforeHTMLMode:
     267    case BeforeHeadMode:
     268    case InHeadMode:
     269    case InHeadNoscriptMode:
     270    case AfterHeadMode:
     271    case InBodyMode:
     272    case TextMode:
     273    case InTableMode:
     274    case InTableTextMode:
     275    case InCaptionMode:
     276    case InColumnGroupMode:
     277    case InTableBodyMode:
     278    case InRowMode:
     279    case InCellMode:
     280    case InSelectMode:
     281    case InSelectInTableMode:
     282    case InForeignContentMode:
     283    case AfterBodyMode:
     284    case InFramesetMode:
     285    case AfterFramesetMode:
     286    case AfterAfterBodyMode:
     287    case AfterAfterFramesetMode:
     288        ASSERT_NOT_REACHED();
     289    }
     290
    243291    // Implementation coming in the next patch.
     292    return 0;
     293}
     294
     295PassRefPtr<Node> HTMLTreeBuilder::insertDoctype(HTMLToken& token)
     296{
     297    ASSERT_UNUSED(token, token.type() == HTMLToken::DOCTYPE);
     298    return 0;
     299}
     300
     301PassRefPtr<Node> HTMLTreeBuilder::insertComment(HTMLToken& token)
     302{
     303    ASSERT_UNUSED(token, token.type() == HTMLToken::Comment);
    244304    return 0;
    245305}
  • trunk/WebCore/html/HTMLTreeBuilder.h

    r61740 r61742  
    100100
    101101    PassRefPtr<Node> passTokenToLegacyParser(HTMLToken&);
    102     PassRefPtr<Node> processToken(HTMLToken&, UChar currentCharacter = 0);
    103    
     102    PassRefPtr<Node> processToken(HTMLToken&, UChar cc = 0);
     103
     104    PassRefPtr<Node> insertDoctype(HTMLToken&);
     105    PassRefPtr<Node> insertComment(HTMLToken&);
     106
    104107    void handleScriptStartTag();
    105108    void handleScriptEndTag(Element*, int scriptStartLine);
Note: See TracChangeset for help on using the changeset viewer.