REGRESSION(107971): Google Voice contact list is broken in WebKit due to badly alloca...
authorjchaffraix@webkit.org <jchaffraix@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 23 Mar 2012 18:27:30 +0000 (18:27 +0000)
committerjchaffraix@webkit.org <jchaffraix@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 23 Mar 2012 18:27:30 +0000 (18:27 +0000)
https://bugs.webkit.org/show_bug.cgi?id=81826

Reviewed by Tony Chang.

Source/WebCore:

Covered by tables/mozilla/bugs/bug27038-{1|2}.html.

This partly reverts r107971: the extra logical height distribution change was not needed
to fix the bug (it is needed by the test though). We revert to giving all the extra height
to the first tbody and not the first section.

This is broken but unfortunately some websites are relying on that. Getting a real
distribution algorithm is covered by bug 81824. However this is super tricky to get
right and I did not want to add more compatibility risks until I have something solid.

* rendering/RenderTable.cpp:
(WebCore::RenderTable::distributeExtraLogicalHeight):

LayoutTests:

* fast/table/double-height-table-no-tbody.html-disabled: Renamed from LayoutTests/fast/table/double-height-table-no-tbody.html.
Disabled this test as it relies on our algorithm not to discriminate between first sections.

* platform/chromium/test_expectations.txt:
* platform/qt/Skipped:
Mark those 2 tests as needing a new baseline again.

* platform/efl/test_expectations.txt:
* platform/gtk/Skipped:
* platform/mac/test_expectations.txt:
* platform/win/Skipped:
Those platforms did not rebaseline those 2 tests so they should automatically pass them.

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

LayoutTests/ChangeLog
LayoutTests/fast/table/double-height-table-no-tbody.html-disabled [moved from LayoutTests/fast/table/double-height-table-no-tbody.html with 100% similarity]
LayoutTests/platform/chromium/test_expectations.txt
LayoutTests/platform/efl/test_expectations.txt
LayoutTests/platform/gtk/Skipped
LayoutTests/platform/mac/test_expectations.txt
LayoutTests/platform/qt/Skipped
LayoutTests/platform/win/Skipped
Source/WebCore/ChangeLog
Source/WebCore/rendering/RenderTable.cpp

index 6e37ead09504b78be6a989844246e62cddc7ea69..26fe3a372efe93a06ea4c0fc0d9ae823ee0f654b 100644 (file)
@@ -1,3 +1,23 @@
+2012-03-23  Julien Chaffraix  <jchaffraix@webkit.org>
+
+        REGRESSION(107971): Google Voice contact list is broken in WebKit due to badly allocating the extra height
+        https://bugs.webkit.org/show_bug.cgi?id=81826
+
+        Reviewed by Tony Chang.
+
+        * fast/table/double-height-table-no-tbody.html-disabled: Renamed from LayoutTests/fast/table/double-height-table-no-tbody.html.
+        Disabled this test as it relies on our algorithm not to discriminate between first sections.
+
+        * platform/chromium/test_expectations.txt:
+        * platform/qt/Skipped:
+        Mark those 2 tests as needing a new baseline again.
+
+        * platform/efl/test_expectations.txt:
+        * platform/gtk/Skipped:
+        * platform/mac/test_expectations.txt:
+        * platform/win/Skipped:
+        Those platforms did not rebaseline those 2 tests so they should automatically pass them.
+
 2012-03-23  Emil A Eklund  <eae@chromium.org>
 
         Unreviewed rebasline, add expectations for new test introducted in r111872.
index 87d7eb2f77a4cae86fc037777996b8bf9f098c04..352723848707c913dcdc5f3ffb8355f4cefe861b 100644 (file)
@@ -4269,3 +4269,7 @@ BUGWK78412 MAC WIN  : tables/mozilla_expected_failures/bugs/bug7243.html = IMAGE
 BUGWK78412 MAC WIN  : fast/repaint/scroll-inside-table-cell.html = IMAGE
 BUGWK78412 MAC WIN  : fast/repaint/scroll-relative-table-inside-table-cell.html = IMAGE
 BUGWK78412 MAC WIN  : fast/table/cell-pref-width-invalidation.html = TEXT
+
+// Need rebaselining.
+BUGWK37244 : tables/mozilla/bugs/bug27038-1.html = IMAGE+TEXT
+BUGWK37244 : tables/mozilla/bugs/bug27038-2.html = IMAGE+TEXT
index 3f22564710cec16974f54f22fa9909b8f9bf50c7..a86c6711558a30eb911262c4db62d3ef84214a29 100644 (file)
@@ -6,10 +6,6 @@
 BUGWK76439 DEBUG : fast/dom/shadow/content-element-api.html = TEXT
 BUGWK76439 DEBUG : fast/dom/shadow/content-element-outside-shadow.html = TEXT
 
-// Need rebaselining.
-BUGWK37244: tables/mozilla/bugs/bug27038-1.html = IMAGE+TEXT
-BUGWK37244: tables/mozilla/bugs/bug27038-2.html = IMAGE+TEXT
-
 // Those tests need a text baseline after lazily allocating layers.
 // The change should only be layer removal.
 BUGWK75568 : animations/combo-transform-translate+scale.html = TEXT
index a20430d5129b8ef055fb381777ce4caf7043c2c5..7bc95905b1b4c4bbc6f13205e4aeeb40db17fac0 100644 (file)
@@ -1570,10 +1570,6 @@ fast/workers/worker-crash-with-invalid-location.html
 # https://bugs.webkit.org/show_bug.cgi?id=78819
 fast/workers/shared-worker-load-error.html
 
-# https://bugs.webkit.org/show_bug.cgi?id=78900
-tables/mozilla/bugs/bug27038-1.html
-tables/mozilla/bugs/bug27038-2.html
-
 # https://bugs.webkit.org/show_bug.cgi?id=79203
 fast/dom/MediaStream/argument-types.html
 fast/mediastream/peerconnection-Attributes.html
index 630337922418f3de0b2e436baa5cd7649e79abf3..58dea8106b72e53d376a7bff6e6579d006edb412 100644 (file)
@@ -202,10 +202,6 @@ BUGWK75570 : http/tests/media/video-buffering-repaints-controls.html = IMAGE
 BUGWK74874 : fast/table/027.html = TEXT
 BUGWK74874 : fast/table/027-vertical.html = TEXT
 
-// Need rebaselining.
-BUGWK37244: tables/mozilla/bugs/bug27038-1.html = IMAGE+TEXT
-BUGWK37244: tables/mozilla/bugs/bug27038-2.html = IMAGE+TEXT
-
 // Need rebaselining. Only TEXT is suppressed because that is all the buildbots check, however
 // images need to be rebaselined too.
 BUGWK69210: fast/encoding/utf-16-big-endian.html = TEXT
index 60096a079de4605612f3277880802e953b3bcef2..ddd7e5154b7fc6e7492183d757a46e788ecf0706 100644 (file)
@@ -2079,6 +2079,8 @@ fast/table/027.html
 fast/table/027-vertical.html
 tables/mozilla/bugs/bug14929.html
 tables/mozilla/bugs/bug2947.html
+tables/mozilla/bugs/bug27038-1.html
+tables/mozilla/bugs/bug27038-2.html
 
 # Needs a rebaseline, caused by https://bugs.webkit.org/show_bug.cgi?id=43022
 tables/mozilla_expected_failures/bugs/bug85016.html
index 6f11a874b87ce644cc506bca4657a701e18aa03d..cd5e23f7192c310d5229a2921d03c2f8069be656 100644 (file)
@@ -1657,10 +1657,6 @@ fast/dom/HTMLTableElement/colSpan.html
 fast/dom/HTMLTableElement/createCaption.html
 fast/repaint/table-section-repaint.html
 
-// Need rebaselining after bug 37244.
-tables/mozilla/bugs/bug27038-1.html
-tables/mozilla/bugs/bug27038-2.html
-
 // Need rebaselining after bug 69210.
 fast/encoding/utf-16-big-endian.html
 fast/encoding/utf-16-little-endian.html
index bc27e41ce1d506a70baec9b274292d556df387e8..4ff759aff4169e1daee3900a8beba51343da42c8 100644 (file)
@@ -1,3 +1,23 @@
+2012-03-23  Julien Chaffraix  <jchaffraix@webkit.org>
+
+        REGRESSION(107971): Google Voice contact list is broken in WebKit due to badly allocating the extra height
+        https://bugs.webkit.org/show_bug.cgi?id=81826
+
+        Reviewed by Tony Chang.
+
+        Covered by tables/mozilla/bugs/bug27038-{1|2}.html.
+
+        This partly reverts r107971: the extra logical height distribution change was not needed
+        to fix the bug (it is needed by the test though). We revert to giving all the extra height
+        to the first tbody and not the first section.
+
+        This is broken but unfortunately some websites are relying on that. Getting a real
+        distribution algorithm is covered by bug 81824. However this is super tricky to get
+        right and I did not want to add more compatibility risks until I have something solid.
+
+        * rendering/RenderTable.cpp:
+        (WebCore::RenderTable::distributeExtraLogicalHeight):
+
 2012-03-23  Xingnan Wang  <xingnan.wang@intel.com>
 
         Optimize for IPP in DirectConvolver::process()
index 71364ec39b20aa677fef8303c0ec62d4112f3c0c..0dfd70c7ed3e6c1e81f70d09a570912abde43f37 100644 (file)
@@ -305,7 +305,7 @@ void RenderTable::distributeExtraLogicalHeight(int extraLogicalHeight)
         return;
 
     // FIXME: Distribute the extra logical height between all table sections instead of giving it all to the first one.
-    if (RenderTableSection* section = topSection())
+    if (RenderTableSection* section = firstBody())
         extraLogicalHeight -= section->distributeExtraLogicalHeightToRows(extraLogicalHeight);
 
     // FIXME: We really would like to enable this ASSERT to ensure that all the extra space has been distributed.