2010-08-08 James Robinson <jamesr@chromium.org>
authorjamesr@google.com <jamesr@google.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 8 Aug 2010 19:29:54 +0000 (19:29 +0000)
committerjamesr@google.com <jamesr@google.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 8 Aug 2010 19:29:54 +0000 (19:29 +0000)
        Reviewed by Adam Barth.

        Set the shouldLazyAttach flag to true in the tree builder's adoption agency algorithm
        https://bugs.webkit.org/show_bug.cgi?id=43610

        Sets the shouldLazyAttach flag to true for appendChild() calls inside the HTML tree
        builder's adoption agency flag.  This is a speedup assuming that nodes subjected
        to the adoption agency are likely to be frequently reparented, and thus it is better
        to delay creating the render tree until later (when hopefully the DOM is finalized).

        On my mac pro this speeds up fast/parser/residual-style-hang.html by 2.6X.

        * html/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
2010-08-08  James Robinson  <jamesr@chromium.org>

        Reviewed by Adam Barth.

        Set the shouldLazyAttach flag to true in the tree builder's adoption agency algorithm
        https://bugs.webkit.org/show_bug.cgi?id=43610

        New baselines for tests where the render tree depends on 0x0 render objects being
        created/destroyed during adoption agency fixups.

        * platform/mac/fast/forms/formmove3-expected.txt:
        * platform/mac/fast/forms/preserveFormDuringResidualStyle-expected.txt:
        * platform/mac/fast/invalid/003-expected.txt:
        * platform/mac/fast/invalid/019-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug647-expected.txt:
        * platform/mac/tables/mozilla/other/wa_table_tr_align-expected.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@64954 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/platform/chromium/test_expectations.txt
LayoutTests/platform/gtk/Skipped
LayoutTests/platform/mac/fast/forms/formmove3-expected.txt
LayoutTests/platform/mac/fast/forms/preserveFormDuringResidualStyle-expected.txt
LayoutTests/platform/mac/fast/invalid/003-expected.txt
LayoutTests/platform/mac/fast/invalid/019-expected.txt
LayoutTests/platform/mac/tables/mozilla/bugs/bug647-expected.txt
LayoutTests/platform/mac/tables/mozilla/other/wa_table_tr_align-expected.txt
WebCore/ChangeLog
WebCore/html/HTMLTreeBuilder.cpp

index e88f60fff23ea7df8e30e6683aaf238be3794a38..72a88e04def66e3edef7eeac6a5106793f4f5306 100644 (file)
@@ -1,3 +1,20 @@
+2010-08-08  James Robinson  <jamesr@chromium.org>
+
+        Reviewed by Adam Barth.
+
+        Set the shouldLazyAttach flag to true in the tree builder's adoption agency algorithm
+        https://bugs.webkit.org/show_bug.cgi?id=43610
+
+        New baselines for tests where the render tree depends on 0x0 render objects being
+        created/destroyed during adoption agency fixups.
+
+        * platform/mac/fast/forms/formmove3-expected.txt:
+        * platform/mac/fast/forms/preserveFormDuringResidualStyle-expected.txt:
+        * platform/mac/fast/invalid/003-expected.txt:
+        * platform/mac/fast/invalid/019-expected.txt:
+        * platform/mac/tables/mozilla/bugs/bug647-expected.txt:
+        * platform/mac/tables/mozilla/other/wa_table_tr_align-expected.txt:
+
 2010-08-08  Mihai Parparita  <mihaip@chromium.org>
 
         Reviewed by Adam Barth.
 2010-08-08  Mihai Parparita  <mihaip@chromium.org>
 
         Reviewed by Adam Barth.
index 6227d21b92c1db9ed0818aa06931d9dc283e8cf9..02f2f9b857b1b0eca9082dff2a50132f419f317c 100644 (file)
@@ -112,8 +112,6 @@ BUG34759 WIN DEBUG SLOW : inspector/console-log-before-inspector-open.html = PAS
 
 BUG36539 SLOW : http/tests/misc/uncacheable-script-repeated.html = PASS
 
 
 BUG36539 SLOW : http/tests/misc/uncacheable-script-repeated.html = PASS
 
-BUG47937 WIN DEBUG SLOW : fast/parser/residual-style-hang.html = PASS
-
 // -----------------------------------------------------------------
 // SKIPPED TESTS
 // -----------------------------------------------------------------
 // -----------------------------------------------------------------
 // SKIPPED TESTS
 // -----------------------------------------------------------------
@@ -3172,11 +3170,17 @@ BUG51161 LINUX DEBUG : svg/clip-path/clip-path-text.svg = CRASH
 
 BUGWK43543 : http/tests/misc/isindex-formdata.html = TIMEOUT
 BUGWK43543 : http/tests/misc/isindex-with-no-form-base-href.html = TEXT TIMEOUT
 
 BUGWK43543 : http/tests/misc/isindex-formdata.html = TIMEOUT
 BUGWK43543 : http/tests/misc/isindex-with-no-form-base-href.html = TEXT TIMEOUT
-BUGWK43543 DEBUG : fast/parser/residual-style-dom.html = TIMEOUT
-BUGWK43543 LINUX MAC DEBUG : fast/parser/residual-style-hang.html = TIMEOUT
 
 BUGPFELDMAN WIN : http/tests/inspector-enabled/console-log-before-frame-navigation.html = TEXT
 
 
 BUGPFELDMAN WIN : http/tests/inspector-enabled/console-log-before-frame-navigation.html = TEXT
 
+// Need rebaselines due to landing of bug 43610
+BUGJAMESR WIN LINUX : fast/forms/formmove3-expected.txt = TEXT
+BUGJAMESR WIN LINUX : fast/forms/preserveFormDuringResidualStyle-expected.txt = TEXT
+BUGJAMESR WIN LINUX : fast/invalid/003-expected.txt = TEXT
+BUGJAMESR WIN LINUX : fast/invalid/019-expected.txt = TEXT
+BUGJAMESR WIN LINUX : tables/mozilla/bugs/bug647-expected.txt = TEXT
+BUGJAMESR WIN LINUX : tables/mozilla/other/wa_table_tr_align-expected.txt = TEXT
+
 // Failure caused by r64749
 BUGSATISH: fast/speech/input-text-speechbutton.html = TIMEOUT
 
 // Failure caused by r64749
 BUGSATISH: fast/speech/input-text-speechbutton.html = TIMEOUT
 
index e6498ee9f309b31cbcee143d94a5b30805dc6344..c801e2235c96eb2b3a2e7049ac91a4487d09503f 100644 (file)
@@ -5862,11 +5862,6 @@ inspector/debugger-breakpoints-not-activated-on-reload.html
 # outside of the double-click distance.
 editing/selection/5195166-1.html
 
 # outside of the double-click distance.
 editing/selection/5195166-1.html
 
-# Times out.  We need to figure out whether this is just caused by a slow bot
-# or if there's a real bug here.
-# https://bugs.webkit.org/show_bug.cgi?id=43540
-fast/parser/residual-style-hang.html
-
 # Remaining Sputnik failures
 # https://bugs.webkit.org/show_bug.cgi?id=43568
 fast/js/sputnik/Conformance/15_Native_Objects/15.4_Array/15.4.4/15.4.4.12_Array_prototype_splice/S15.4.4.12_A2.1_T3.html
 # Remaining Sputnik failures
 # https://bugs.webkit.org/show_bug.cgi?id=43568
 fast/js/sputnik/Conformance/15_Native_Objects/15.4_Array/15.4.4/15.4.4.12_Array_prototype_splice/S15.4.4.12_A2.1_T3.html
index 88b0913fc9231945b983f537ed23806e334476d1..010c88990fdd97f3fababe217da20b5c37fb492a 100644 (file)
@@ -30,5 +30,6 @@ layer at (0,0) size 800x600
           RenderInline {A} at (0,0) size 0x0 [color=#0000EE]
           RenderText {#text} at (0,0) size 0x0
       RenderBlock (anonymous) at (0,28) size 784x18
           RenderInline {A} at (0,0) size 0x0 [color=#0000EE]
           RenderText {#text} at (0,0) size 0x0
       RenderBlock (anonymous) at (0,28) size 784x18
+        RenderText {#text} at (0,0) size 0x0
         RenderText {#text} at (0,0) size 104x18
           text run at (0,0) width 104: "Form did submit"
         RenderText {#text} at (0,0) size 104x18
           text run at (0,0) width 104: "Form did submit"
index b0ee2bb90c16472ffe2d5064a0e2abbaef763f6f..58ab791032d31b86b0fff0678defa1029326f786 100644 (file)
@@ -26,6 +26,8 @@ layer at (0,0) size 800x600
         RenderBlock (anonymous) at (0,25) size 784x0
           RenderInline {FONT} at (0,0) size 0x0
           RenderText {#text} at (0,0) size 0x0
         RenderBlock (anonymous) at (0,25) size 784x0
           RenderInline {FONT} at (0,0) size 0x0
           RenderText {#text} at (0,0) size 0x0
+      RenderBlock (anonymous) at (0,25) size 784x0
+        RenderText {#text} at (0,0) size 0x0
       RenderBlock {DIV} at (0,25) size 784x36
         RenderText {#text} at (0,0) size 775x36
           text run at (0,0) width 775: "Success! This test succeeds if the input named mover is not detached from its form when it is moved around in the DOM to"
       RenderBlock {DIV} at (0,25) size 784x36
         RenderText {#text} at (0,0) size 775x36
           text run at (0,0) width 775: "Success! This test succeeds if the input named mover is not detached from its form when it is moved around in the DOM to"
index 7f8f1a9740a1a094c55c7cfb2e28ff2aa64e9f6f..84499c488003f6192791d14f2bb655182e988030 100644 (file)
@@ -43,9 +43,6 @@ layer at (0,0) size 800x600
       RenderBlock (anonymous) at (0,136) size 784x0
         RenderInline {FONT} at (0,0) size 0x0 [color=#FF0000]
           RenderInline {I} at (0,0) size 0x0
       RenderBlock (anonymous) at (0,136) size 784x0
         RenderInline {FONT} at (0,0) size 0x0 [color=#FF0000]
           RenderInline {I} at (0,0) size 0x0
-      RenderBlock (anonymous) at (0,136) size 784x0 [color=#FF0000]
-      RenderBlock (anonymous) at (0,136) size 784x0
-        RenderInline {FONT} at (0,0) size 0x0 [color=#FF0000]
       RenderBlock {P} at (0,136) size 784x18
         RenderInline {FONT} at (0,0) size 123x18 [color=#FF0000]
           RenderInline {I} at (0,0) size 93x18
       RenderBlock {P} at (0,136) size 784x18
         RenderInline {FONT} at (0,0) size 123x18 [color=#FF0000]
           RenderInline {I} at (0,0) size 93x18
@@ -56,6 +53,7 @@ layer at (0,0) size 800x600
         RenderText {#text} at (123,0) size 126x18
           text run at (123,0) width 126: " I should not be red."
       RenderBlock (anonymous) at (0,170) size 784x18
         RenderText {#text} at (123,0) size 126x18
           text run at (123,0) width 126: " I should not be red."
       RenderBlock (anonymous) at (0,170) size 784x18
+        RenderText {#text} at (0,0) size 0x0
         RenderInline {B} at (0,0) size 131x18
           RenderText {#text} at (0,0) size 36x18
             text run at (0,0) width 36: "Bold "
         RenderInline {B} at (0,0) size 131x18
           RenderText {#text} at (0,0) size 36x18
             text run at (0,0) width 36: "Bold "
index ef24a3a6d4be84b706976c864eaacbbf8c608f5b..2adfdd625aee54e9e49bbfe001fc8014c1dd136a 100644 (file)
@@ -10,9 +10,6 @@ layer at (0,0) size 800x600
       RenderBlock (anonymous) at (0,0) size 784x0
         RenderInline {B} at (0,0) size 0x0
           RenderInline {NOBR} at (0,0) size 0x0
       RenderBlock (anonymous) at (0,0) size 784x0
         RenderInline {B} at (0,0) size 0x0
           RenderInline {NOBR} at (0,0) size 0x0
-      RenderBlock (anonymous) at (0,0) size 784x0
-      RenderBlock (anonymous) at (0,0) size 784x0
-        RenderInline {B} at (0,0) size 0x0
       RenderBlock {DIV} at (0,0) size 784x64
         RenderBlock (anonymous) at (0,0) size 784x36
           RenderInline {B} at (0,0) size 763x36
       RenderBlock {DIV} at (0,0) size 784x64
         RenderBlock (anonymous) at (0,0) size 784x36
           RenderInline {B} at (0,0) size 763x36
index ca6a263e20b06058fae980d966327700f80ef8a6..5a8e5bcaa6d3625ccf79e7acc2dc4abe63a14b66 100644 (file)
@@ -26,6 +26,8 @@ layer at (0,0) size 800x600
                             RenderText {#text} at (33,0) size 24x13
                               text run at (33,0) width 24: "inside"
                           RenderText {#text} at (0,0) size 0x0
                             RenderText {#text} at (33,0) size 24x13
                               text run at (33,0) width 24: "inside"
                           RenderText {#text} at (0,0) size 0x0
+                        RenderBlock (anonymous) at (2,15) size 90x0
+                          RenderText {#text} at (0,0) size 0x0
                 RenderBlock (anonymous) at (0,23) size 100x18
                   RenderText {#text} at (10,0) size 79x18
                     text run at (10,0) width 79: "outside table"
                 RenderBlock (anonymous) at (0,23) size 100x18
                   RenderText {#text} at (10,0) size 79x18
                     text run at (10,0) width 79: "outside table"
index ef3916ac96cf943f40c3c980a93cf050482fc05f..c5c6006c2a247e7e97fe2fcc945972de09f3c366 100644 (file)
@@ -238,9 +238,6 @@ layer at (0,0) size 785x1308
                 RenderBlock (anonymous) at (2,56) size 336x0
                   RenderInline {B} at (0,0) size 0x0
                     RenderInline {FONT} at (0,0) size 0x0 [color=#FF0000]
                 RenderBlock (anonymous) at (2,56) size 336x0
                   RenderInline {B} at (0,0) size 0x0
                     RenderInline {FONT} at (0,0) size 0x0 [color=#FF0000]
-                RenderBlock (anonymous) at (2,56) size 336x0
-                RenderBlock (anonymous) at (2,56) size 336x0
-                  RenderInline {B} at (0,0) size 0x0
                 RenderBlock {P} at (2,72) size 336x0
                   RenderInline {B} at (0,0) size 0x0
                     RenderInline {FONT} at (0,0) size 0x0 [color=#FF0000]
                 RenderBlock {P} at (2,72) size 336x0
                   RenderInline {B} at (0,0) size 0x0
                     RenderInline {FONT} at (0,0) size 0x0 [color=#FF0000]
@@ -289,9 +286,6 @@ layer at (0,0) size 785x1308
                 RenderBlock (anonymous) at (2,56) size 336x0
                   RenderInline {B} at (0,0) size 0x0
                     RenderInline {FONT} at (0,0) size 0x0 [color=#FF0000]
                 RenderBlock (anonymous) at (2,56) size 336x0
                   RenderInline {B} at (0,0) size 0x0
                     RenderInline {FONT} at (0,0) size 0x0 [color=#FF0000]
-                RenderBlock (anonymous) at (2,56) size 336x0
-                RenderBlock (anonymous) at (2,56) size 336x0
-                  RenderInline {B} at (0,0) size 0x0
                 RenderBlock {P} at (2,72) size 336x0
                   RenderInline {B} at (0,0) size 0x0
                     RenderInline {FONT} at (0,0) size 0x0 [color=#FF0000]
                 RenderBlock {P} at (2,72) size 336x0
                   RenderInline {B} at (0,0) size 0x0
                     RenderInline {FONT} at (0,0) size 0x0 [color=#FF0000]
index 632c890b0756b599a47773369147cf58a3feb8bd..b038b7f7e838cbb9e5d96929522157efde3ccf15 100644 (file)
@@ -1,3 +1,20 @@
+2010-08-08  James Robinson  <jamesr@chromium.org>
+
+        Reviewed by Adam Barth.
+
+        Set the shouldLazyAttach flag to true in the tree builder's adoption agency algorithm
+        https://bugs.webkit.org/show_bug.cgi?id=43610
+
+        Sets the shouldLazyAttach flag to true for appendChild() calls inside the HTML tree
+        builder's adoption agency flag.  This is a speedup assuming that nodes subjected
+        to the adoption agency are likely to be frequently reparented, and thus it is better
+        to delay creating the render tree until later (when hopefully the DOM is finalized).
+
+        On my mac pro this speeds up fast/parser/residual-style-hang.html by 2.6X.
+
+        * html/HTMLTreeBuilder.cpp:
+        (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
+
 2010-08-08  Nikita Vasilyev  <me@elv1s.ru>
 
         Reviewed by Pavel Feldman.
 2010-08-08  Nikita Vasilyev  <me@elv1s.ru>
 
         Reviewed by Pavel Feldman.
index 21716e3d87b4e4f764d13343d87067877ef02d54..016074e09bcf5476e8db7318adec66096d25ae7c 100644 (file)
@@ -1716,7 +1716,7 @@ void HTMLTreeBuilder::callTheAdoptionAgency(AtomicHTMLToken& token)
             // 6.6
             // Use appendChild instead of parserAddChild to handle possible reparenting.
             ExceptionCode ec;
             // 6.6
             // Use appendChild instead of parserAddChild to handle possible reparenting.
             ExceptionCode ec;
-            node->element()->appendChild(lastNode->element(), ec);
+            node->element()->appendChild(lastNode->element(), ec, true);
             ASSERT(!ec);
             // 6.7
             lastNode = node;
             ASSERT(!ec);
             // 6.7
             lastNode = node;
@@ -1731,7 +1731,7 @@ void HTMLTreeBuilder::callTheAdoptionAgency(AtomicHTMLToken& token)
             m_tree.fosterParent(lastNode->element());
         else {
             ExceptionCode ec;
             m_tree.fosterParent(lastNode->element());
         else {
             ExceptionCode ec;
-            commonAncestor->appendChild(lastNode->element(), ec);
+            commonAncestor->appendChild(lastNode->element(), ec, true);
             ASSERT(!ec);
         }
         // 8
             ASSERT(!ec);
         }
         // 8