Changeset 190893 in webkit


Ignore:
Timestamp:
Oct 12, 2015 3:33:03 PM (8 years ago)
Author:
Alan Bujtas
Message:

display: table-cell; bug when resizing window
https://bugs.webkit.org/show_bug.cgi?id=138167

Reviewed by David Hyatt.

Clean up anonymous table wrappers all the way up to RenderTable.
This patch ensures that we don't keep the generated RenderTable/RenderSection/RenderCaption/RenderRow
objects around in the tree anymore when the last child is destroyed.

Import W3C CSS2.1 anonymous table tests.

Source/WebCore:

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::destroyAndCleanupAnonymousWrappers):

LayoutTests:

  • css2.1/tables/table-anonymous-objects-015.xht: Added.
  • css2.1/tables/table-anonymous-objects-016.xht: Added.
  • css2.1/tables/table-anonymous-objects-023.xht: Added.
  • css2.1/tables/table-anonymous-objects-024.xht: Added.
  • css2.1/tables/table-anonymous-objects-035.xht: Added.
  • css2.1/tables/table-anonymous-objects-036.xht: Added.
  • css2.1/tables/table-anonymous-objects-037.xht: Added.
  • css2.1/tables/table-anonymous-objects-038.xht: Added.
  • css2.1/tables/table-anonymous-objects-045.xht: Added.
  • css2.1/tables/table-anonymous-objects-046.xht: Added.
  • css2.1/tables/table-anonymous-objects-047.xht: Added.
  • css2.1/tables/table-anonymous-objects-048.xht: Added.
  • css2.1/tables/table-anonymous-objects-049.xht: Added.
  • css2.1/tables/table-anonymous-objects-050.xht: Added.
  • css2.1/tables/table-anonymous-objects-055.xht: Added.
  • css2.1/tables/table-anonymous-objects-056.xht: Added.
  • css2.1/tables/table-anonymous-objects-091.xht: Added.
  • css2.1/tables/table-anonymous-objects-092.xht: Added.
  • css2.1/tables/table-anonymous-objects-099.xht: Added.
  • css2.1/tables/table-anonymous-objects-100.xht: Added.
  • css2.1/tables/table-anonymous-objects-105.xht: Added.
  • css2.1/tables/table-anonymous-objects-106.xht: Added.
  • css2.1/tables/table-anonymous-objects-107.xht: Added.
  • css2.1/tables/table-anonymous-objects-108.xht: Added.
  • css2.1/tables/table-anonymous-objects-109.xht: Added.
  • css2.1/tables/table-anonymous-objects-110.xht: Added.
  • css2.1/tables/table-anonymous-objects-111.xht: Added.
  • css2.1/tables/table-anonymous-objects-112.xht: Added.
  • css2.1/tables/table-anonymous-objects-113.xht: Added.
  • css2.1/tables/table-anonymous-objects-114.xht: Added.
  • css2.1/tables/table-anonymous-objects-115.xht: Added.
  • css2.1/tables/table-anonymous-objects-116.xht: Added.
  • css2.1/tables/table-anonymous-objects-121.xht: Added.
  • css2.1/tables/table-anonymous-objects-122.xht: Added.
  • css2.1/tables/table-anonymous-objects-123.xht: Added.
  • css2.1/tables/table-anonymous-objects-124.xht: Added.
  • css2.1/tables/table-anonymous-objects-139.xht: Added.
  • css2.1/tables/table-anonymous-objects-140.xht: Added.
  • css2.1/tables/table-anonymous-objects-149.xht: Added.
  • css2.1/tables/table-anonymous-objects-150.xht: Added.
  • css2.1/tables/table-anonymous-objects-155.xht: Added.
  • css2.1/tables/table-anonymous-objects-156.xht: Added.
  • css2.1/tables/table-anonymous-objects-159.xht: Added.
  • css2.1/tables/table-anonymous-objects-160.xht: Added.
  • css2.1/tables/table-anonymous-objects-165.xht: Added.
  • css2.1/tables/table-anonymous-objects-166.xht: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-015-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-016-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-023-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-024-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-035-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-036-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-037-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-038-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-045-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-046-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-047-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-048-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-049-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-050-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-055-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-056-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-091-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-092-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-099-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-100-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-105-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-106-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-107-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-108-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-109-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-110-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-111-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-112-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-113-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-114-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-115-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-116-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-121-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-122-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-123-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-124-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-139-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-140-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-149-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-150-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-155-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-156-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-159-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-160-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-165-expected.txt: Added.
  • platform/mac/css2.1/tables/table-anonymous-objects-166-expected.txt: Added.
Location:
trunk
Files:
94 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r190892 r190893  
     12015-10-12  Zalan Bujtas  <zalan@apple.com>
     2
     3        display: table-cell; bug when resizing window
     4        https://bugs.webkit.org/show_bug.cgi?id=138167
     5
     6        Reviewed by David Hyatt.
     7
     8        Clean up anonymous table wrappers all the way up to RenderTable.
     9        This patch ensures that we don't keep the generated RenderTable/RenderSection/RenderCaption/RenderRow
     10        objects around in the tree anymore when the last child is destroyed.
     11
     12        Import W3C CSS2.1 anonymous table tests.
     13
     14        * css2.1/tables/table-anonymous-objects-015.xht: Added.
     15        * css2.1/tables/table-anonymous-objects-016.xht: Added.
     16        * css2.1/tables/table-anonymous-objects-023.xht: Added.
     17        * css2.1/tables/table-anonymous-objects-024.xht: Added.
     18        * css2.1/tables/table-anonymous-objects-035.xht: Added.
     19        * css2.1/tables/table-anonymous-objects-036.xht: Added.
     20        * css2.1/tables/table-anonymous-objects-037.xht: Added.
     21        * css2.1/tables/table-anonymous-objects-038.xht: Added.
     22        * css2.1/tables/table-anonymous-objects-045.xht: Added.
     23        * css2.1/tables/table-anonymous-objects-046.xht: Added.
     24        * css2.1/tables/table-anonymous-objects-047.xht: Added.
     25        * css2.1/tables/table-anonymous-objects-048.xht: Added.
     26        * css2.1/tables/table-anonymous-objects-049.xht: Added.
     27        * css2.1/tables/table-anonymous-objects-050.xht: Added.
     28        * css2.1/tables/table-anonymous-objects-055.xht: Added.
     29        * css2.1/tables/table-anonymous-objects-056.xht: Added.
     30        * css2.1/tables/table-anonymous-objects-091.xht: Added.
     31        * css2.1/tables/table-anonymous-objects-092.xht: Added.
     32        * css2.1/tables/table-anonymous-objects-099.xht: Added.
     33        * css2.1/tables/table-anonymous-objects-100.xht: Added.
     34        * css2.1/tables/table-anonymous-objects-105.xht: Added.
     35        * css2.1/tables/table-anonymous-objects-106.xht: Added.
     36        * css2.1/tables/table-anonymous-objects-107.xht: Added.
     37        * css2.1/tables/table-anonymous-objects-108.xht: Added.
     38        * css2.1/tables/table-anonymous-objects-109.xht: Added.
     39        * css2.1/tables/table-anonymous-objects-110.xht: Added.
     40        * css2.1/tables/table-anonymous-objects-111.xht: Added.
     41        * css2.1/tables/table-anonymous-objects-112.xht: Added.
     42        * css2.1/tables/table-anonymous-objects-113.xht: Added.
     43        * css2.1/tables/table-anonymous-objects-114.xht: Added.
     44        * css2.1/tables/table-anonymous-objects-115.xht: Added.
     45        * css2.1/tables/table-anonymous-objects-116.xht: Added.
     46        * css2.1/tables/table-anonymous-objects-121.xht: Added.
     47        * css2.1/tables/table-anonymous-objects-122.xht: Added.
     48        * css2.1/tables/table-anonymous-objects-123.xht: Added.
     49        * css2.1/tables/table-anonymous-objects-124.xht: Added.
     50        * css2.1/tables/table-anonymous-objects-139.xht: Added.
     51        * css2.1/tables/table-anonymous-objects-140.xht: Added.
     52        * css2.1/tables/table-anonymous-objects-149.xht: Added.
     53        * css2.1/tables/table-anonymous-objects-150.xht: Added.
     54        * css2.1/tables/table-anonymous-objects-155.xht: Added.
     55        * css2.1/tables/table-anonymous-objects-156.xht: Added.
     56        * css2.1/tables/table-anonymous-objects-159.xht: Added.
     57        * css2.1/tables/table-anonymous-objects-160.xht: Added.
     58        * css2.1/tables/table-anonymous-objects-165.xht: Added.
     59        * css2.1/tables/table-anonymous-objects-166.xht: Added.
     60        * platform/mac/css2.1/tables/table-anonymous-objects-015-expected.txt: Added.
     61        * platform/mac/css2.1/tables/table-anonymous-objects-016-expected.txt: Added.
     62        * platform/mac/css2.1/tables/table-anonymous-objects-023-expected.txt: Added.
     63        * platform/mac/css2.1/tables/table-anonymous-objects-024-expected.txt: Added.
     64        * platform/mac/css2.1/tables/table-anonymous-objects-035-expected.txt: Added.
     65        * platform/mac/css2.1/tables/table-anonymous-objects-036-expected.txt: Added.
     66        * platform/mac/css2.1/tables/table-anonymous-objects-037-expected.txt: Added.
     67        * platform/mac/css2.1/tables/table-anonymous-objects-038-expected.txt: Added.
     68        * platform/mac/css2.1/tables/table-anonymous-objects-045-expected.txt: Added.
     69        * platform/mac/css2.1/tables/table-anonymous-objects-046-expected.txt: Added.
     70        * platform/mac/css2.1/tables/table-anonymous-objects-047-expected.txt: Added.
     71        * platform/mac/css2.1/tables/table-anonymous-objects-048-expected.txt: Added.
     72        * platform/mac/css2.1/tables/table-anonymous-objects-049-expected.txt: Added.
     73        * platform/mac/css2.1/tables/table-anonymous-objects-050-expected.txt: Added.
     74        * platform/mac/css2.1/tables/table-anonymous-objects-055-expected.txt: Added.
     75        * platform/mac/css2.1/tables/table-anonymous-objects-056-expected.txt: Added.
     76        * platform/mac/css2.1/tables/table-anonymous-objects-091-expected.txt: Added.
     77        * platform/mac/css2.1/tables/table-anonymous-objects-092-expected.txt: Added.
     78        * platform/mac/css2.1/tables/table-anonymous-objects-099-expected.txt: Added.
     79        * platform/mac/css2.1/tables/table-anonymous-objects-100-expected.txt: Added.
     80        * platform/mac/css2.1/tables/table-anonymous-objects-105-expected.txt: Added.
     81        * platform/mac/css2.1/tables/table-anonymous-objects-106-expected.txt: Added.
     82        * platform/mac/css2.1/tables/table-anonymous-objects-107-expected.txt: Added.
     83        * platform/mac/css2.1/tables/table-anonymous-objects-108-expected.txt: Added.
     84        * platform/mac/css2.1/tables/table-anonymous-objects-109-expected.txt: Added.
     85        * platform/mac/css2.1/tables/table-anonymous-objects-110-expected.txt: Added.
     86        * platform/mac/css2.1/tables/table-anonymous-objects-111-expected.txt: Added.
     87        * platform/mac/css2.1/tables/table-anonymous-objects-112-expected.txt: Added.
     88        * platform/mac/css2.1/tables/table-anonymous-objects-113-expected.txt: Added.
     89        * platform/mac/css2.1/tables/table-anonymous-objects-114-expected.txt: Added.
     90        * platform/mac/css2.1/tables/table-anonymous-objects-115-expected.txt: Added.
     91        * platform/mac/css2.1/tables/table-anonymous-objects-116-expected.txt: Added.
     92        * platform/mac/css2.1/tables/table-anonymous-objects-121-expected.txt: Added.
     93        * platform/mac/css2.1/tables/table-anonymous-objects-122-expected.txt: Added.
     94        * platform/mac/css2.1/tables/table-anonymous-objects-123-expected.txt: Added.
     95        * platform/mac/css2.1/tables/table-anonymous-objects-124-expected.txt: Added.
     96        * platform/mac/css2.1/tables/table-anonymous-objects-139-expected.txt: Added.
     97        * platform/mac/css2.1/tables/table-anonymous-objects-140-expected.txt: Added.
     98        * platform/mac/css2.1/tables/table-anonymous-objects-149-expected.txt: Added.
     99        * platform/mac/css2.1/tables/table-anonymous-objects-150-expected.txt: Added.
     100        * platform/mac/css2.1/tables/table-anonymous-objects-155-expected.txt: Added.
     101        * platform/mac/css2.1/tables/table-anonymous-objects-156-expected.txt: Added.
     102        * platform/mac/css2.1/tables/table-anonymous-objects-159-expected.txt: Added.
     103        * platform/mac/css2.1/tables/table-anonymous-objects-160-expected.txt: Added.
     104        * platform/mac/css2.1/tables/table-anonymous-objects-165-expected.txt: Added.
     105        * platform/mac/css2.1/tables/table-anonymous-objects-166-expected.txt: Added.
     106
    11072015-10-12  Jon Honeycutt  <jhoneycutt@apple.com>
    2108
  • trunk/Source/WebCore/ChangeLog

    r190891 r190893  
     12015-10-12  Zalan Bujtas  <zalan@apple.com>
     2
     3        display: table-cell; bug when resizing window
     4        https://bugs.webkit.org/show_bug.cgi?id=138167
     5
     6        Reviewed by David Hyatt.
     7
     8        Clean up anonymous table wrappers all the way up to RenderTable.
     9        This patch ensures that we don't keep the generated RenderTable/RenderSection/RenderCaption/RenderRow
     10        objects around in the tree anymore when the last child is destroyed.
     11
     12        Import W3C CSS2.1 anonymous table tests.
     13
     14        * rendering/RenderObject.cpp:
     15        (WebCore::RenderObject::destroyAndCleanupAnonymousWrappers):
     16
    1172015-10-12  Myles C. Maxfield  <mmaxfield@apple.com>
    218
  • trunk/Source/WebCore/rendering/RenderObject.cpp

    r190834 r190893  
    16261626    }
    16271627
    1628     RenderObject* destroyRoot = this;
    1629     for (auto destroyRootParent = destroyRoot->parent(); destroyRootParent && destroyRootParent->isAnonymous(); destroyRoot = destroyRootParent, destroyRootParent = destroyRootParent->parent()) {
    1630         // Currently we only remove anonymous cells' and table sections' wrappers but we should remove all unneeded
    1631         // wrappers. See http://webkit.org/b/52123 as an example where this is needed.
    1632         if (!destroyRootParent->isTableCell() && !destroyRootParent->isTableSection())
     1628    auto* destroyRoot = this;
     1629    auto* destroyRootParent = destroyRoot->parent();
     1630    while (destroyRootParent && destroyRootParent->isAnonymous()) {
     1631        if (!destroyRootParent->isTableCell() && !destroyRootParent->isTableRow()
     1632            && !destroyRootParent->isTableCaption() && !destroyRootParent->isTableSection() && !destroyRootParent->isTable())
    16331633            break;
    1634 
    1635         if (destroyRootParent->firstChild() != this || destroyRootParent->lastChild() != this)
     1634        // single child?
     1635        if (!(destroyRootParent->firstChild() == destroyRoot && destroyRootParent->lastChild() == destroyRoot))
    16361636            break;
    1637     }
    1638 
     1637        destroyRoot = destroyRootParent;
     1638        destroyRootParent = destroyRootParent->parent();
     1639    }
    16391640    destroyRoot->destroy();
    16401641
Note: See TracChangeset for help on using the changeset viewer.