Changeset 61824 in webkit


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

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

Reviewed by Eric Seidel.

Sketch out InHeadNoscriptMode for tree builder
https://bugs.webkit.org/show_bug.cgi?id=41189

Lots of notImplemented() calls in this state. I need to figure how to
delegate handling of a token from one state to another.

  • html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processToken):
Location:
trunk/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r61823 r61824  
     12010-06-24  Adam Barth  <abarth@webkit.org>
     2
     3        Reviewed by Eric Seidel.
     4
     5        Sketch out InHeadNoscriptMode for tree builder
     6        https://bugs.webkit.org/show_bug.cgi?id=41189
     7
     8        Lots of notImplemented() calls in this state.  I need to figure how to
     9        delegate handling of a token from one state to another.
     10
     11        * html/HTMLTreeBuilder.cpp:
     12        (WebCore::HTMLTreeBuilder::processToken):
     13
    1142010-06-24  Adam Barth  <abarth@webkit.org>
    215
  • trunk/WebCore/html/HTMLTreeBuilder.cpp

    r61823 r61824  
    406406        goto reprocessToken;
    407407    }
    408     case InHeadNoscriptMode:
     408    case InHeadNoscriptMode: {
     409        switch (token.type()) {
     410        case HTMLToken::Uninitialized:
     411            ASSERT_NOT_REACHED();
     412            break;
     413        case HTMLToken::DOCTYPE:
     414            parseError(token);
     415            return 0;
     416        case HTMLToken::StartTag:
     417            if (token.name() == htmlTag) {
     418                notImplemented();
     419                return 0;
     420            }
     421            if (token.name() == linkTag || token.name() == metaTag || token.name() == noframesTag || token.name() == styleTag) {
     422                notImplemented();
     423                return 0;
     424            }
     425            if (token.name() == htmlTag || token.name() == noscriptTag) {
     426                parseError(token);
     427                return 0;
     428            }
     429            break;
     430        case HTMLToken::EndTag:
     431            if (token.name() == noscriptTag) {
     432                ASSERT(m_openElements.top()->tagQName() == noscriptTag);
     433                m_openElements.pop();
     434                ASSERT(m_openElements.top()->tagQName() == headTag);
     435                setInsertionMode(InHeadMode);
     436                return 0;
     437            }
     438            if (token.name() == brTag)
     439                break;
     440            parseError(token);
     441            return 0;
     442            break;
     443        case HTMLToken::Character:
     444            notImplemented();
     445            break;
     446        case HTMLToken::Comment:
     447            notImplemented();
     448            return 0;
     449        case HTMLToken::EndOfFile:
     450            break;
     451        }
     452        AtomicHTMLToken fakeNoscript(HTMLToken::EndTag, noscriptTag.localName());
     453        processToken(fakeNoscript);
     454        goto reprocessToken;
     455    }
    409456    case AfterHeadMode:
    410457    case InBodyMode:
Note: See TracChangeset for help on using the changeset viewer.