Changeset 61989 in webkit


Ignore:
Timestamp:
Jun 28, 2010 2:44:35 AM (14 years ago)
Author:
eric@webkit.org
Message:

2010-06-28 Eric Seidel <eric@webkit.org>

Reviewed by Adam Barth.

Make it possible to test the new HTML5 TreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=41276

Adam was concerned that someone might make their port
depend on this setting (I guess we had some trouble with that
with the HTML5Parser setting), so I littered the code with warnings.

test-html5-parser now tests this code path.

  • html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::HTMLTreeBuilder): (WebCore::HTMLTreeBuilder::constructTreeFromToken): (WebCore::HTMLTreeBuilder::finished):
  • page/Settings.cpp: (WebCore::Settings::Settings):
  • page/Settings.h: (WebCore::Settings::setHTML5TreeBuilderEnabled_DO_NOT_USE): (WebCore::Settings::html5TreeBuilderEnabled):

2010-06-28 Eric Seidel <eric@webkit.org>

Reviewed by Adam Barth.

Make it possible to test the new HTML5 TreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=41276

Adam was concerned that someone might make their port
depend on this setting (I guess we had some trouble with that
with the HTML5Parser setting), so I littered the code with warnings.

test-html5-parser now tests this code path.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm: (+[WebPreferences initialize]): (-[WebPreferences html5TreeBuilderEnabled]): (-[WebPreferences setHTML5TreeBuilderEnabled:]):
  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm: (-[WebView _preferencesChangedNotification:]):

2010-06-28 Eric Seidel <eric@webkit.org>

Reviewed by Adam Barth.

Make it possible to test the new HTML5 TreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=41276

Adam was concerned that someone might make their port
depend on this setting (I guess we had some trouble with that
with the HTML5Parser setting), so I littered the code with warnings.

test-html5-parser now tests this code path.

  • DumpRenderTree/mac/DumpRenderTree.mm: (resetDefaultsToConsistentValues): (initializeGlobalsFromCommandLineOptions):
  • Scripts/test-html5-parser:
Location:
trunk
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r61988 r61989  
     12010-06-28  Eric Seidel  <eric@webkit.org>
     2
     3        Reviewed by Adam Barth.
     4
     5        Make it possible to test the new HTML5 TreeBuilder
     6        https://bugs.webkit.org/show_bug.cgi?id=41276
     7
     8        Adam was concerned that someone might make their port
     9        depend on this setting (I guess we had some trouble with that
     10        with the HTML5Parser setting), so I littered the code with warnings.
     11
     12        test-html5-parser now tests this code path.
     13
     14        * html/HTMLTreeBuilder.cpp:
     15        (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
     16        (WebCore::HTMLTreeBuilder::constructTreeFromToken):
     17        (WebCore::HTMLTreeBuilder::finished):
     18        * page/Settings.cpp:
     19        (WebCore::Settings::Settings):
     20        * page/Settings.h:
     21        (WebCore::Settings::setHTML5TreeBuilderEnabled_DO_NOT_USE):
     22        (WebCore::Settings::html5TreeBuilderEnabled):
     23
    1242010-06-28  Adam Barth  <abarth@webkit.org>
    225
  • trunk/WebCore/html/HTMLTreeBuilder.cpp

    r61988 r61989  
    4242#include "LegacyHTMLTreeBuilder.h"
    4343#include "NotImplemented.h"
     44#include "Settings.h"
    4445#include "ScriptController.h"
    4546#include "Text.h"
     
    5758{
    5859    return cc == '\t' || cc == '\x0A' || cc == '\x0C' || cc == '\x0D' || cc == ' ';
     60}
     61
     62bool shouldUseLegacyTreeBuilder(Document* document)
     63{
     64    return !document->settings() || !document->settings()->html5TreeBuilderEnabled();
    5965}
    6066
     
    6975    , m_originalInsertionMode(InitialMode)
    7076    , m_tokenizer(tokenizer)
    71     , m_legacyTreeBuilder(new LegacyHTMLTreeBuilder(document, reportErrors))
     77    , m_legacyTreeBuilder(shouldUseLegacyTreeBuilder(document) ? new LegacyHTMLTreeBuilder(document, reportErrors) : 0)
    7278    , m_lastScriptElementStartLine(uninitializedLineNumberValue)
    7379    , m_scriptToProcessStartLine(uninitializedLineNumberValue)
     
    8692    , m_originalInsertionMode(InitialMode)
    8793    , m_tokenizer(tokenizer)
    88     , m_legacyTreeBuilder(new LegacyHTMLTreeBuilder(fragment, scriptingPermission))
     94    , m_legacyTreeBuilder(shouldUseLegacyTreeBuilder(m_document) ? new LegacyHTMLTreeBuilder(fragment, scriptingPermission) : 0)
    8995    , m_lastScriptElementStartLine(uninitializedLineNumberValue)
    9096    , m_scriptToProcessStartLine(uninitializedLineNumberValue)
     
    227233void HTMLTreeBuilder::constructTreeFromToken(HTMLToken& rawToken)
    228234{
    229     // Make MSVC ignore our unreachable code for now.
    230     if (true) {
     235    if (m_legacyTreeBuilder) {
    231236        passTokenToLegacyParser(rawToken);
    232237        return;
     
    875880    // We should call m_document->finishedParsing() here, except
    876881    // m_legacyTreeBuilder->finished() does it for us.
    877     m_legacyTreeBuilder->finished();
     882    if (m_legacyTreeBuilder)
     883        m_legacyTreeBuilder->finished();
    878884}
    879885
  • trunk/WebCore/page/Settings.cpp

    r61234 r61989  
    134134    , m_tiledBackingStoreEnabled(false)
    135135    , m_html5ParserEnabled(true)
     136    , m_html5TreeBuilderEnabled(false) // Will be deleted soon, do not use.
    136137    , m_paginateDuringLayoutEnabled(false)
    137138{
  • trunk/WebCore/page/Settings.h

    r60841 r61989  
    297297        void setHTML5ParserEnabled(bool flag) { m_html5ParserEnabled = flag; }
    298298        bool html5ParserEnabled() const { return m_html5ParserEnabled; }
     299
     300        // NOTE: This code will be deleted once the HTML5TreeBuilder is ready
     301        // to replace LegacyHTMLTreeBuilder.  Using the HTML5DocumentParser
     302        // with LegacyHTMLTreeBuilder will not be supported long-term.
     303        // Setting is only for testing the new tree builder in DumpRenderTree.
     304        void setHTML5TreeBuilderEnabled_DO_NOT_USE(bool flag) { m_html5TreeBuilderEnabled = flag; }
     305        bool html5TreeBuilderEnabled() const { return m_html5TreeBuilderEnabled; }
    299306
    300307        void setPaginateDuringLayoutEnabled(bool flag) { m_paginateDuringLayoutEnabled = flag; }
     
    381388        bool m_tiledBackingStoreEnabled : 1;
    382389        bool m_html5ParserEnabled: 1;
     390        bool m_html5TreeBuilderEnabled: 1; // Will be deleted soon, do not use.
    383391        bool m_paginateDuringLayoutEnabled : 1;
    384392   
  • trunk/WebKit/mac/ChangeLog

    r61975 r61989  
     12010-06-28  Eric Seidel  <eric@webkit.org>
     2
     3        Reviewed by Adam Barth.
     4
     5        Make it possible to test the new HTML5 TreeBuilder
     6        https://bugs.webkit.org/show_bug.cgi?id=41276
     7
     8        Adam was concerned that someone might make their port
     9        depend on this setting (I guess we had some trouble with that
     10        with the HTML5Parser setting), so I littered the code with warnings.
     11
     12        test-html5-parser now tests this code path.
     13
     14        * WebView/WebPreferenceKeysPrivate.h:
     15        * WebView/WebPreferences.mm:
     16        (+[WebPreferences initialize]):
     17        (-[WebPreferences html5TreeBuilderEnabled]):
     18        (-[WebPreferences setHTML5TreeBuilderEnabled:]):
     19        * WebView/WebPreferencesPrivate.h:
     20        * WebView/WebView.mm:
     21        (-[WebView _preferencesChangedNotification:]):
     22
    1232010-06-25  Yuzo Fujishima  <yuzo@google.com>
    224
  • trunk/WebKit/mac/WebView/WebPreferenceKeysPrivate.h

    r60509 r61989  
    9595#define WebKitFrameFlatteningEnabledPreferenceKey @"WebKitFrameFlatteningEnabled"
    9696#define WebKitHTML5ParserEnabledPreferenceKey @"WebKitHTML5ParserEnabled"
     97#define WebKitHTML5TreeBuilderEnabledPreferenceKey @"WebKitHTML5TreeBuilderEnabled" // Temporary, do not use.
    9798#define WebKitPaginateDuringLayoutEnabledPreferenceKey @"WebKitPaginateDuringLayoutEnabled"
    9899
  • trunk/WebKit/mac/WebView/WebPreferences.mm

    r61285 r61989  
    362362        [NSNumber numberWithBool:NO],   WebKitFrameFlatteningEnabledPreferenceKey,
    363363        [NSNumber numberWithBool:YES],   WebKitHTML5ParserEnabledPreferenceKey,
     364        [NSNumber numberWithBool:NO],   WebKitHTML5TreeBuilderEnabledPreferenceKey,
    364365        nil];
    365366
     
    12501251}
    12511252
     1253- (BOOL)html5TreeBuilderEnabled
     1254{
     1255    return [self _boolValueForKey:WebKitHTML5TreeBuilderEnabledPreferenceKey];
     1256}
     1257
     1258- (void)setHTML5TreeBuilderEnabled:(BOOL)flag
     1259{
     1260    [self _setBoolValue:flag forKey:WebKitHTML5TreeBuilderEnabledPreferenceKey];
     1261}
     1262
    12521263- (BOOL)paginateDuringLayoutEnabled
    12531264{
  • trunk/WebKit/mac/WebView/WebPreferencesPrivate.h

    r60509 r61989  
    179179- (void)setHTML5ParserEnabled:(BOOL)flag;
    180180
     181// Will be deleted soon, do not use.
     182- (BOOL)html5TreeBuilderEnabled;
     183- (void)setHTML5TreeBuilderEnabled:(BOOL)flag;
     184
    181185- (BOOL)paginateDuringLayoutEnabled;
    182186- (void)setPaginateDuringLayoutEnabled:(BOOL)flag;
  • trunk/WebKit/mac/WebView/WebView.mm

    r61562 r61989  
    14151415    settings->setFrameFlatteningEnabled([preferences isFrameFlatteningEnabled]);
    14161416    settings->setHTML5ParserEnabled([preferences html5ParserEnabled]);
     1417    settings->setHTML5TreeBuilderEnabled_DO_NOT_USE([preferences html5TreeBuilderEnabled]);
    14171418    settings->setPaginateDuringLayoutEnabled([preferences paginateDuringLayoutEnabled]);
    14181419}
  • trunk/WebKitTools/ChangeLog

    r61978 r61989  
     12010-06-28  Eric Seidel  <eric@webkit.org>
     2
     3        Reviewed by Adam Barth.
     4
     5        Make it possible to test the new HTML5 TreeBuilder
     6        https://bugs.webkit.org/show_bug.cgi?id=41276
     7
     8        Adam was concerned that someone might make their port
     9        depend on this setting (I guess we had some trouble with that
     10        with the HTML5Parser setting), so I littered the code with warnings.
     11
     12        test-html5-parser now tests this code path.
     13
     14        * DumpRenderTree/mac/DumpRenderTree.mm:
     15        (resetDefaultsToConsistentValues):
     16        (initializeGlobalsFromCommandLineOptions):
     17        * Scripts/test-html5-parser:
     18
    1192010-06-27  MORITA Hajime  <morrita@google.com>
    220
  • trunk/WebKitTools/DumpRenderTree/mac/DumpRenderTree.mm

    r61771 r61989  
    138138static int forceComplexText;
    139139static int useHTML5Parser = YES;
     140static int useHTML5TreeBuilder = NO; // Temporary, will be removed.
    140141static BOOL printSeparators;
    141142static RetainPtr<CFStringRef> persistentUserStyleSheetLocation;
     
    457458    [preferences setWebGLEnabled:NO];
    458459    [preferences setHTML5ParserEnabled:useHTML5Parser];
     460    [preferences setHTML5TreeBuilderEnabled:useHTML5TreeBuilder]; // Temporary, will be removed.
    459461
    460462    [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyOnlyFromMainDocumentDomain];
     
    564566        {"complex-text", no_argument, &forceComplexText, YES},
    565567        {"legacy-parser", no_argument, &useHTML5Parser, NO},
     568        {"html5-treebuilder", no_argument, &useHTML5TreeBuilder, YES},
    566569        {NULL, 0, NULL, 0}
    567570    };
  • trunk/WebKitTools/Scripts/test-html5-parser

    r60278 r61989  
    7070    my $expectedPath = "LayoutTests/$test-expected-html5.txt";
    7171    my $actualPath = "LayoutTests/$test-actual-html5.txt";
    72     my $command = "DYLD_FRAMEWORK_PATH=$productDir $dumpTool --html5-parser $testPath";
     72    my $command = "DYLD_FRAMEWORK_PATH=$productDir $dumpTool --html5-treebuilder $testPath";
    7373    print $command, "\n";
    7474    my $output = `$command`;
Note: See TracChangeset for help on using the changeset viewer.