Title: [111882] trunk
Revision
111882
Author
[email protected]
Date
2012-03-23 11:27:30 -0700 (Fri, 23 Mar 2012)

Log Message

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.

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.

Modified Paths

Added Paths

Removed Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (111881 => 111882)


--- trunk/LayoutTests/ChangeLog	2012-03-23 18:23:54 UTC (rev 111881)
+++ trunk/LayoutTests/ChangeLog	2012-03-23 18:27:30 UTC (rev 111882)
@@ -1,3 +1,23 @@
+2012-03-23  Julien Chaffraix  <[email protected]>
+
+        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  <[email protected]>
 
         Unreviewed rebasline, add expectations for new test introducted in r111872.

Deleted: trunk/LayoutTests/fast/table/double-height-table-no-tbody.html (111881 => 111882)


--- trunk/LayoutTests/fast/table/double-height-table-no-tbody.html	2012-03-23 18:23:54 UTC (rev 111881)
+++ trunk/LayoutTests/fast/table/double-height-table-no-tbody.html	2012-03-23 18:27:30 UTC (rev 111882)
@@ -1,63 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<style>
-    body { font-size: 13px; font-family: serif; }
-    table { border: 1px solid red; border-spacing: 0px; padding: 0px; }
-    th { border: 1px solid red; width: 125px; }
-    .height20px { height: 20px; }
-    .height19px { height: 19px; }
-    .smallerFont { font-size: 10px; }
-</style>
-</head>
-<body>
-<p>Bug <a href="" thead in table without tbody causes table height doubling</p>
-<p>There should not be any gap between the tables' border and the rows'.</p>
-<h1>height = 20px</h1>
-<table class="height20px">
-<thead>
-<tr>
-    <th>A</th>
-    <th>B</th>
-    <th>C</th>
-    <th>D</th>
-</tr>
-</thead>
-</table>
-<br>
-<table class="height20px">
-<tfoot>
-<tr>
-    <th>A</th>
-    <th>B</th>
-    <th>C</th>
-    <th>D</th>
-</tr>
-</tfoot>
-</table>
-
-<h1>height = 19px, font-size = 10px</h1>
-<table class="height19px smallerFont">
-<thead>
-<tr>
-    <th>A</th>
-    <th>B</th>
-    <th>C</th>
-    <th>D</th>
-</tr>
-</thead>
-</table>
-<br>
-<table class="height19px smallerFont">
-<tfoot>
-<tr>
-    <th>A</th>
-    <th>B</th>
-    <th>C</th>
-    <th>D</th>
-</tr>
-</tfoot>
-</table>
-
-</body>
-</html>

Copied: trunk/LayoutTests/fast/table/double-height-table-no-tbody.html-disabled (from rev 111881, trunk/LayoutTests/fast/table/double-height-table-no-tbody.html) (0 => 111882)


--- trunk/LayoutTests/fast/table/double-height-table-no-tbody.html-disabled	                        (rev 0)
+++ trunk/LayoutTests/fast/table/double-height-table-no-tbody.html-disabled	2012-03-23 18:27:30 UTC (rev 111882)
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html>
+<head>
+<style>
+    body { font-size: 13px; font-family: serif; }
+    table { border: 1px solid red; border-spacing: 0px; padding: 0px; }
+    th { border: 1px solid red; width: 125px; }
+    .height20px { height: 20px; }
+    .height19px { height: 19px; }
+    .smallerFont { font-size: 10px; }
+</style>
+</head>
+<body>
+<p>Bug <a href="" thead in table without tbody causes table height doubling</p>
+<p>There should not be any gap between the tables' border and the rows'.</p>
+<h1>height = 20px</h1>
+<table class="height20px">
+<thead>
+<tr>
+    <th>A</th>
+    <th>B</th>
+    <th>C</th>
+    <th>D</th>
+</tr>
+</thead>
+</table>
+<br>
+<table class="height20px">
+<tfoot>
+<tr>
+    <th>A</th>
+    <th>B</th>
+    <th>C</th>
+    <th>D</th>
+</tr>
+</tfoot>
+</table>
+
+<h1>height = 19px, font-size = 10px</h1>
+<table class="height19px smallerFont">
+<thead>
+<tr>
+    <th>A</th>
+    <th>B</th>
+    <th>C</th>
+    <th>D</th>
+</tr>
+</thead>
+</table>
+<br>
+<table class="height19px smallerFont">
+<tfoot>
+<tr>
+    <th>A</th>
+    <th>B</th>
+    <th>C</th>
+    <th>D</th>
+</tr>
+</tfoot>
+</table>
+
+</body>
+</html>

Modified: trunk/LayoutTests/platform/chromium/test_expectations.txt (111881 => 111882)


--- trunk/LayoutTests/platform/chromium/test_expectations.txt	2012-03-23 18:23:54 UTC (rev 111881)
+++ trunk/LayoutTests/platform/chromium/test_expectations.txt	2012-03-23 18:27:30 UTC (rev 111882)
@@ -4269,3 +4269,7 @@
 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

Modified: trunk/LayoutTests/platform/efl/test_expectations.txt (111881 => 111882)


--- trunk/LayoutTests/platform/efl/test_expectations.txt	2012-03-23 18:23:54 UTC (rev 111881)
+++ trunk/LayoutTests/platform/efl/test_expectations.txt	2012-03-23 18:27:30 UTC (rev 111882)
@@ -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

Modified: trunk/LayoutTests/platform/gtk/Skipped (111881 => 111882)


--- trunk/LayoutTests/platform/gtk/Skipped	2012-03-23 18:23:54 UTC (rev 111881)
+++ trunk/LayoutTests/platform/gtk/Skipped	2012-03-23 18:27:30 UTC (rev 111882)
@@ -1570,10 +1570,6 @@
 # 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

Modified: trunk/LayoutTests/platform/mac/test_expectations.txt (111881 => 111882)


--- trunk/LayoutTests/platform/mac/test_expectations.txt	2012-03-23 18:23:54 UTC (rev 111881)
+++ trunk/LayoutTests/platform/mac/test_expectations.txt	2012-03-23 18:27:30 UTC (rev 111882)
@@ -202,10 +202,6 @@
 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

Modified: trunk/LayoutTests/platform/qt/Skipped (111881 => 111882)


--- trunk/LayoutTests/platform/qt/Skipped	2012-03-23 18:23:54 UTC (rev 111881)
+++ trunk/LayoutTests/platform/qt/Skipped	2012-03-23 18:27:30 UTC (rev 111882)
@@ -2079,6 +2079,8 @@
 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

Modified: trunk/LayoutTests/platform/win/Skipped (111881 => 111882)


--- trunk/LayoutTests/platform/win/Skipped	2012-03-23 18:23:54 UTC (rev 111881)
+++ trunk/LayoutTests/platform/win/Skipped	2012-03-23 18:27:30 UTC (rev 111882)
@@ -1657,10 +1657,6 @@
 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

Modified: trunk/Source/WebCore/ChangeLog (111881 => 111882)


--- trunk/Source/WebCore/ChangeLog	2012-03-23 18:23:54 UTC (rev 111881)
+++ trunk/Source/WebCore/ChangeLog	2012-03-23 18:27:30 UTC (rev 111882)
@@ -1,3 +1,23 @@
+2012-03-23  Julien Chaffraix  <[email protected]>
+
+        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  <[email protected]>
 
         Optimize for IPP in DirectConvolver::process()

Modified: trunk/Source/WebCore/rendering/RenderTable.cpp (111881 => 111882)


--- trunk/Source/WebCore/rendering/RenderTable.cpp	2012-03-23 18:23:54 UTC (rev 111881)
+++ trunk/Source/WebCore/rendering/RenderTable.cpp	2012-03-23 18:27:30 UTC (rev 111882)
@@ -305,7 +305,7 @@
         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.
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to