Changeset 65932 in webkit


Ignore:
Timestamp:
Aug 24, 2010 1:49:16 PM (14 years ago)
Author:
abarth@webkit.org
Message:

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

Reviewed by Eric Seidel.

HTMLTokenizer::create
https://bugs.webkit.org/show_bug.cgi?id=44477

  • html/HTMLDocumentParser.cpp: (WebCore::HTMLDocumentParser::HTMLDocumentParser):
  • html/HTMLPreloadScanner.cpp: (WebCore::HTMLPreloadScanner::HTMLPreloadScanner): (WebCore::HTMLPreloadScanner::scan): (WebCore::HTMLPreloadScanner::processToken):
  • html/HTMLPreloadScanner.h:
  • html/HTMLTokenizer.h: (WebCore::HTMLTokenizer::create):
  • html/HTMLViewSourceParser.cpp: (WebCore::HTMLViewSourceParser::HTMLViewSourceParser): (WebCore::HTMLViewSourceParser::pumpTokenizer): (WebCore::HTMLViewSourceParser::updateTokenizerState):
  • html/HTMLViewSourceParser.h:
Location:
trunk/WebCore
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r65931 r65932  
     12010-08-24  Adam Barth  <abarth@webkit.org>
     2
     3        Reviewed by Eric Seidel.
     4
     5        HTMLTokenizer::create
     6        https://bugs.webkit.org/show_bug.cgi?id=44477
     7
     8        * html/HTMLDocumentParser.cpp:
     9        (WebCore::HTMLDocumentParser::HTMLDocumentParser):
     10        * html/HTMLPreloadScanner.cpp:
     11        (WebCore::HTMLPreloadScanner::HTMLPreloadScanner):
     12        (WebCore::HTMLPreloadScanner::scan):
     13        (WebCore::HTMLPreloadScanner::processToken):
     14        * html/HTMLPreloadScanner.h:
     15        * html/HTMLTokenizer.h:
     16        (WebCore::HTMLTokenizer::create):
     17        * html/HTMLViewSourceParser.cpp:
     18        (WebCore::HTMLViewSourceParser::HTMLViewSourceParser):
     19        (WebCore::HTMLViewSourceParser::pumpTokenizer):
     20        (WebCore::HTMLViewSourceParser::updateTokenizerState):
     21        * html/HTMLViewSourceParser.h:
     22
    1232010-08-24  Adam Barth  <abarth@webkit.org>
    224
  • trunk/WebCore/html/HTMLDocumentParser.cpp

    r65931 r65932  
    9696HTMLDocumentParser::HTMLDocumentParser(HTMLDocument* document, bool reportErrors)
    9797    : ScriptableDocumentParser(document)
    98     , m_tokenizer(new HTMLTokenizer)
     98    , m_tokenizer(HTMLTokenizer::create())
    9999    , m_scriptRunner(HTMLScriptRunner::create(document, this))
    100100    , m_treeBuilder(HTMLTreeBuilder::create(m_tokenizer.get(), document, reportErrors))
     
    109109HTMLDocumentParser::HTMLDocumentParser(DocumentFragment* fragment, Element* contextElement, FragmentScriptingPermission scriptingPermission)
    110110    : ScriptableDocumentParser(fragment->document())
    111     , m_tokenizer(new HTMLTokenizer)
     111    , m_tokenizer(HTMLTokenizer::create())
    112112    , m_treeBuilder(HTMLTreeBuilder::create(m_tokenizer.get(), fragment, contextElement, scriptingPermission))
    113113    , m_endWasDelayed(false)
  • trunk/WebCore/html/HTMLPreloadScanner.cpp

    r61675 r65932  
    121121    : m_document(document)
    122122    , m_cssScanner(document)
     123    , m_tokenizer(HTMLTokenizer::create())
    123124    , m_bodySeen(false)
    124125    , m_inStyle(false)
     
    135136    // FIXME: We should save and re-use these tokens in HTMLDocumentParser if
    136137    // the pending script doesn't end up calling document.write.
    137     while (m_tokenizer.nextToken(m_source, m_token)) {
     138    while (m_tokenizer->nextToken(m_source, m_token)) {
    138139        processToken();
    139140        m_token.clear();
     
    156157
    157158    PreloadTask task(m_token);
    158     m_tokenizer.setState(HTMLTreeBuilder::adjustedLexerState(m_tokenizer.state(), task.tagName(), m_document->frame()));
     159    m_tokenizer->setState(HTMLTreeBuilder::adjustedLexerState(m_tokenizer->state(), task.tagName(), m_document->frame()));
    159160    if (task.tagName() == scriptTag) {
    160161        // The tree builder handles scriptTag separately from the other tokenizer
    161162        // state adjustments, so we need to handle it separately too.
    162         ASSERT(m_tokenizer.state() == HTMLTokenizer::DataState);
    163         m_tokenizer.setState(HTMLTokenizer::ScriptDataState);
     163        ASSERT(m_tokenizer->state() == HTMLTokenizer::DataState);
     164        m_tokenizer->setState(HTMLTokenizer::ScriptDataState);
    164165    }
    165166
  • trunk/WebCore/html/HTMLPreloadScanner.h

    r61678 r65932  
    5353    Document* m_document;
    5454    SegmentedString m_source;
    55     HTMLTokenizer m_tokenizer;
     55    CSSPreloadScanner m_cssScanner;
     56    OwnPtr<HTMLTokenizer> m_tokenizer;
    5657    HTMLToken m_token;
    57     CSSPreloadScanner m_cssScanner;
    5858    bool m_bodySeen;
    5959    bool m_inStyle;
  • trunk/WebCore/html/HTMLTokenizer.h

    r65382 r65932  
    3030#include "SegmentedString.h"
    3131#include <wtf/Noncopyable.h>
     32#include <wtf/PassOwnPtr.h>
    3233#include <wtf/Vector.h>
    3334#include <wtf/text/AtomicString.h>
     
    116117    };
    117118
    118     HTMLTokenizer();
     119    static PassOwnPtr<HTMLTokenizer> create() { return adoptPtr(new HTMLTokenizer); }
    119120    ~HTMLTokenizer();
    120121
     
    232233    };
    233234
     235    HTMLTokenizer();
     236
    234237    inline bool processEntity(SegmentedString&);
    235238
  • trunk/WebCore/html/HTMLViewSourceParser.cpp

    r65692 r65932  
    3535HTMLViewSourceParser::HTMLViewSourceParser(HTMLViewSourceDocument* document)
    3636    : DecodedDataDocumentParser(document)
     37    , m_tokenizer(HTMLTokenizer::create())
    3738{
    3839}
     
    4950void HTMLViewSourceParser::pumpTokenizer()
    5051{
    51     while (m_tokenizer.nextToken(m_input.current(), m_token)) {
     52    while (m_tokenizer->nextToken(m_input.current(), m_token)) {
    5253        m_token.end(m_input.current().numberOfCharactersConsumed());
    5354        document()->addSource(sourceForToken(), m_token);
     
    8788
    8889    AtomicString tagName(m_token.name().data(), m_token.name().size());
    89     m_tokenizer.setState(HTMLTreeBuilder::adjustedLexerState(m_tokenizer.state(), tagName, m_document->frame()));
     90    m_tokenizer->setState(HTMLTreeBuilder::adjustedLexerState(m_tokenizer->state(), tagName, m_document->frame()));
    9091    if (tagName == HTMLNames::scriptTag) {
    9192        // The tree builder handles scriptTag separately from the other tokenizer
    9293        // state adjustments, so we need to handle it separately too.
    93         ASSERT(m_tokenizer.state() == HTMLTokenizer::DataState);
    94         m_tokenizer.setState(HTMLTokenizer::ScriptDataState);
     94        ASSERT(m_tokenizer->state() == HTMLTokenizer::DataState);
     95        m_tokenizer->setState(HTMLTokenizer::ScriptDataState);
    9596    }
    9697}
  • trunk/WebCore/html/HTMLViewSourceParser.h

    r65692 r65932  
    7070    SegmentedString m_source;
    7171    HTMLToken m_token;
    72     HTMLTokenizer m_tokenizer;
     72    OwnPtr<HTMLTokenizer> m_tokenizer;
    7373};
    7474
Note: See TracChangeset for help on using the changeset viewer.