Title: [147871] trunk
Revision
147871
Author
[email protected]
Date
2013-04-07 11:37:39 -0700 (Sun, 07 Apr 2013)

Log Message

table element may get larger when its contents are recreated
https://bugs.webkit.org/show_bug.cgi?id=111342

Reviewed by Darin Adler.

Source/WebCore:

Remove anonymous table section wrappers when destroying their children.

Test: fast/table/anonymous-table-section-removed.html

* rendering/RenderObject.cpp:
(WebCore::RenderObject::destroyAndCleanupAnonymousWrappers):

LayoutTests:

* fast/table/anonymous-table-section-removed-expected.txt: Added.
* fast/table/anonymous-table-section-removed.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (147870 => 147871)


--- trunk/LayoutTests/ChangeLog	2013-04-07 18:31:09 UTC (rev 147870)
+++ trunk/LayoutTests/ChangeLog	2013-04-07 18:37:39 UTC (rev 147871)
@@ -1,3 +1,13 @@
+2013-04-07  Robert Hogan  <[email protected]>
+
+        table element may get larger when its contents are recreated
+        https://bugs.webkit.org/show_bug.cgi?id=111342
+
+        Reviewed by Darin Adler.
+
+        * fast/table/anonymous-table-section-removed-expected.txt: Added.
+        * fast/table/anonymous-table-section-removed.html: Added.
+
 2013-04-06  Timothy Hatcher  <[email protected]>
 
         Remove InjectedScriptHost.evaluateReturnsEvalFunction.

Added: trunk/LayoutTests/fast/table/anonymous-table-section-removed-expected.txt (0 => 147871)


--- trunk/LayoutTests/fast/table/anonymous-table-section-removed-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/table/anonymous-table-section-removed-expected.txt	2013-04-07 18:37:39 UTC (rev 147871)
@@ -0,0 +1,2 @@
+Table
+PASS

Added: trunk/LayoutTests/fast/table/anonymous-table-section-removed.html (0 => 147871)


--- trunk/LayoutTests/fast/table/anonymous-table-section-removed.html	                        (rev 0)
+++ trunk/LayoutTests/fast/table/anonymous-table-section-removed.html	2013-04-07 18:37:39 UTC (rev 147871)
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <style>
+    table, tr, td {
+        font: 26px/1 Ahem;
+        border: 0px;
+        padding: 0px;
+        margin: 0px;
+    }
+    table {
+        border-spacing: 2px;
+    }
+    </style>
+  </head>
+  <body id="body">
+    <table id="table" data-expected-height="34"></table>
+  </body>
+  <script src=""
+  <script>
+    for (var i = 0; i < 20; i++) {
+        document.body.offsetHeight;
+        var p = document.getElementById('table');
+        p.innerHTML = '<tr><td>Table</td></tr>';
+        p.appendChild(document.createElement('tr'));
+    }
+    checkLayout('table');
+  </script>
+</html>

Modified: trunk/Source/WebCore/ChangeLog (147870 => 147871)


--- trunk/Source/WebCore/ChangeLog	2013-04-07 18:31:09 UTC (rev 147870)
+++ trunk/Source/WebCore/ChangeLog	2013-04-07 18:37:39 UTC (rev 147871)
@@ -1,3 +1,17 @@
+2013-04-07  Robert Hogan  <[email protected]>
+
+        table element may get larger when its contents are recreated
+        https://bugs.webkit.org/show_bug.cgi?id=111342
+
+        Reviewed by Darin Adler.
+
+        Remove anonymous table section wrappers when destroying their children.
+
+        Test: fast/table/anonymous-table-section-removed.html
+
+        * rendering/RenderObject.cpp:
+        (WebCore::RenderObject::destroyAndCleanupAnonymousWrappers):
+
 2013-04-07  Patrick Gansterer  <[email protected]>
 
         [WIN] Fix build without precompiled header after r145827.

Modified: trunk/Source/WebCore/rendering/RenderObject.cpp (147870 => 147871)


--- trunk/Source/WebCore/rendering/RenderObject.cpp	2013-04-07 18:31:09 UTC (rev 147870)
+++ trunk/Source/WebCore/rendering/RenderObject.cpp	2013-04-07 18:37:39 UTC (rev 147871)
@@ -2555,9 +2555,9 @@
 
     RenderObject* destroyRoot = this;
     for (RenderObject* destroyRootParent = destroyRoot->parent(); destroyRootParent && destroyRootParent->isAnonymous(); destroyRoot = destroyRootParent, destroyRootParent = destroyRootParent->parent()) {
-        // Currently we only remove anonymous cells' wrapper but we should remove all unneeded
+        // Currently we only remove anonymous cells' and table sections' wrappers but we should remove all unneeded
         // wrappers. See http://webkit.org/b/52123 as an example where this is needed.
-        if (!destroyRootParent->isTableCell())
+        if (!destroyRootParent->isTableCell() && !destroyRootParent->isTableSection())
             break;
 
         if (destroyRootParent->firstChild() != this || destroyRootParent->lastChild() != this)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to