Changeset 60989 in webkit


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

2010-06-10 Tony Gentilcore <tonyg@chromium.org>

Reviewed by Eric Seidel.

Fix fast/forms/preserveFormDuringResidualStyle.html for HTML5 Parser.
https://bugs.webkit.org/show_bug.cgi?id=40454

This required exposing the HTMLParser which we definitely don't want to
do, but the good news is that it can go away when the HTMLParser goes
away.

No new tests because covered by fast/forms/preserve/FormDuringResidualStyle.html.

  • dom/Tokenizer.h: (WebCore::Tokenizer::htmlParser):
  • html/HTML5Tokenizer.cpp: (WebCore::HTML5Tokenizer::htmlParser):
  • html/HTML5Tokenizer.h:
  • html/HTML5TreeBuilder.h: (WebCore::HTML5TreeBuilder::htmlParser):
  • html/HTMLFormControlElement.cpp: (WebCore::HTMLFormControlElement::removedFromTree):
  • html/HTMLTokenizer.h: (WebCore::HTMLTokenizer::htmlParser):
Location:
trunk/WebCore
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r60984 r60989  
     12010-06-10  Tony Gentilcore  <tonyg@chromium.org>
     2
     3        Reviewed by Eric Seidel.
     4
     5        Fix fast/forms/preserveFormDuringResidualStyle.html for HTML5 Parser.
     6        https://bugs.webkit.org/show_bug.cgi?id=40454
     7
     8        This required exposing the HTMLParser which we definitely don't want to
     9        do, but the good news is that it can go away when the HTMLParser goes
     10        away.
     11
     12        No new tests because covered by fast/forms/preserve/FormDuringResidualStyle.html.
     13
     14        * dom/Tokenizer.h:
     15        (WebCore::Tokenizer::htmlParser):
     16        * html/HTML5Tokenizer.cpp:
     17        (WebCore::HTML5Tokenizer::htmlParser):
     18        * html/HTML5Tokenizer.h:
     19        * html/HTML5TreeBuilder.h:
     20        (WebCore::HTML5TreeBuilder::htmlParser):
     21        * html/HTMLFormControlElement.cpp:
     22        (WebCore::HTMLFormControlElement::removedFromTree):
     23        * html/HTMLTokenizer.h:
     24        (WebCore::HTMLTokenizer::htmlParser):
     25
    1262010-06-10  Tony Chang  <tony@chromium.org>
    227
  • trunk/WebCore/dom/Tokenizer.h

    r59749 r60989  
    2626namespace WebCore {
    2727
     28    class HTMLParser;
    2829    class HTMLTokenizer;
    2930    class SegmentedString;
     
    6162        virtual void executeScriptsWaitingForStylesheets() {}
    6263
    63         virtual bool isHTMLTokenizer() const { return false; }
     64        virtual HTMLParser* htmlParser() const { return 0; }
    6465        virtual HTMLTokenizer* asHTMLTokenizer() { return 0; }
    6566       
  • trunk/WebCore/html/HTML5Tokenizer.cpp

    r60964 r60989  
    193193}
    194194
     195HTMLParser* HTML5Tokenizer::htmlParser() const
     196{
     197    return m_treeBuilder->htmlParser();
     198}
     199
    195200bool HTML5Tokenizer::isWaitingForScripts() const
    196201{
  • trunk/WebCore/html/HTML5Tokenizer.h

    r60943 r60989  
    3737
    3838class HTMLDocument;
     39class HTMLParser;
    3940class HTML5Lexer;
    4041class HTML5ScriptRunner;
     
    6162    virtual int lineNumber() const;
    6263    virtual int columnNumber() const;
     64    // FIXME: HTMLFormControlElement accesses the HTMLParser via this method.
     65    // Remove this when the HTMLParser is no longer used.
     66    virtual HTMLParser* htmlParser() const;
    6367
    6468    // HTML5ScriptRunnerHost
  • trunk/WebCore/html/HTML5TreeBuilder.h

    r60897 r60989  
    5959    void finished();
    6060
     61    // FIXME: This is a dirty, rotten hack to keep HTMLFormControlElement happy
     62    // until we stop using the legacy parser. DO NOT CALL THIS METHOD.
     63    HTMLParser* htmlParser() const { return m_legacyHTMLParser.get(); }
     64
    6165private:
    6266    // Represents HTML5 "insertion mode"
  • trunk/WebCore/html/HTMLFormControlElement.cpp

    r60232 r60989  
    179179    // If the form and element are both in the same tree, preserve the connection to the form.
    180180    // Otherwise, null out our form and remove ourselves from the form's list of elements.
    181     HTMLParser* parser = 0;
    182     if (Tokenizer* tokenizer = document()->tokenizer())
    183         if (tokenizer->isHTMLTokenizer())
    184             parser = static_cast<HTMLTokenizer*>(tokenizer)->htmlParser();
    185    
     181    HTMLParser* parser = document()->tokenizer()->htmlParser();
    186182    if (m_form && !(parser && parser->isHandlingResidualStyleAcrossBlocks()) && findRoot(this) != findRoot(m_form)) {
    187183        m_form->removeFormElement(this);
  • trunk/WebCore/html/HTMLTokenizer.h

    r60826 r60989  
    164164    virtual void executeScriptsWaitingForStylesheets();
    165165   
    166     virtual bool isHTMLTokenizer() const { return true; }
     166    virtual HTMLParser* htmlParser() const { return m_parser.get(); }
    167167    virtual HTMLTokenizer* asHTMLTokenizer() { return this; }
    168     HTMLParser* htmlParser() const { return m_parser.get(); }
    169168
    170169private:
Note: See TracChangeset for help on using the changeset viewer.