Title: [258583] branches/safari-609-branch
Revision
258583
Author
[email protected]
Date
2020-03-17 13:39:21 -0700 (Tue, 17 Mar 2020)

Log Message

Cherry-pick r258455. rdar://problem/60539179

    [Tree building] Block::attachIgnoringContinuation should allow inline tables as before child container
    https://bugs.webkit.org/show_bug.cgi?id=209095
    <rdar://problem/59837588>

    Reviewed by Simon Fraser.

    Source/WebCore:

    It's perfectly valid to have an inline table as the anonymous container for the before child.
    It'll get wrapped inside an anonymous block right before we insert the block box candidate, so
    the final result will be something like:

    new block level child (this is the child we are inserting)
    anonymous block wrapper
      inline table (this is the before child's inline container)
        before child

    Test: fast/table/before-child-is-inline-table.html

    * rendering/updating/RenderTreeBuilderBlock.cpp:
    (WebCore::RenderTreeBuilder::Block::attachIgnoringContinuation):

    LayoutTests:

    * fast/table/before-child-is-inline-table-expected.txt: Added.
    * fast/table/before-child-is-inline-table.html: Added.

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

Modified Paths

Added Paths

Diff

Modified: branches/safari-609-branch/LayoutTests/ChangeLog (258582 => 258583)


--- branches/safari-609-branch/LayoutTests/ChangeLog	2020-03-17 20:39:17 UTC (rev 258582)
+++ branches/safari-609-branch/LayoutTests/ChangeLog	2020-03-17 20:39:21 UTC (rev 258583)
@@ -1,3 +1,48 @@
+2020-03-17  Alan Coon  <[email protected]>
+
+        Cherry-pick r258455. rdar://problem/60539179
+
+    [Tree building] Block::attachIgnoringContinuation should allow inline tables as before child container
+    https://bugs.webkit.org/show_bug.cgi?id=209095
+    <rdar://problem/59837588>
+    
+    Reviewed by Simon Fraser.
+    
+    Source/WebCore:
+    
+    It's perfectly valid to have an inline table as the anonymous container for the before child.
+    It'll get wrapped inside an anonymous block right before we insert the block box candidate, so
+    the final result will be something like:
+    
+    new block level child (this is the child we are inserting)
+    anonymous block wrapper
+      inline table (this is the before child's inline container)
+        before child
+    
+    Test: fast/table/before-child-is-inline-table.html
+    
+    * rendering/updating/RenderTreeBuilderBlock.cpp:
+    (WebCore::RenderTreeBuilder::Block::attachIgnoringContinuation):
+    
+    LayoutTests:
+    
+    * fast/table/before-child-is-inline-table-expected.txt: Added.
+    * fast/table/before-child-is-inline-table.html: Added.
+    
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@258455 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2020-03-13  Zalan Bujtas  <[email protected]>
+
+            [Tree building] Block::attachIgnoringContinuation should allow inline tables as before child container
+            https://bugs.webkit.org/show_bug.cgi?id=209095
+            <rdar://problem/59837588>
+
+            Reviewed by Simon Fraser.
+
+            * fast/table/before-child-is-inline-table-expected.txt: Added.
+            * fast/table/before-child-is-inline-table.html: Added.
+
 2020-03-12  Ryan Haddad  <[email protected]>
 
         Cherry-pick r254979. rdar://problem/58836694

Added: branches/safari-609-branch/LayoutTests/fast/table/before-child-is-inline-table-expected.txt (0 => 258583)


--- branches/safari-609-branch/LayoutTests/fast/table/before-child-is-inline-table-expected.txt	                        (rev 0)
+++ branches/safari-609-branch/LayoutTests/fast/table/before-child-is-inline-table-expected.txt	2020-03-17 20:39:21 UTC (rev 258583)
@@ -0,0 +1 @@
+Pass if no crash or assert.

Added: branches/safari-609-branch/LayoutTests/fast/table/before-child-is-inline-table.html (0 => 258583)


--- branches/safari-609-branch/LayoutTests/fast/table/before-child-is-inline-table.html	                        (rev 0)
+++ branches/safari-609-branch/LayoutTests/fast/table/before-child-is-inline-table.html	2020-03-17 20:39:21 UTC (rev 258583)
@@ -0,0 +1,18 @@
+<style>
+.table-caption {
+    display: table-cell;
+}
+embed {
+    padding-top: 1vw;
+    display: block;
+}
+summary {
+    display: inline;
+}
+</style>
+<details><summary><embed type><div class=table-caption></div></summary></details>
+Pass if no crash or assert.
+<script>
+if (window.testRunner)
+    testRunner.dumpAsText();
+</script>

Modified: branches/safari-609-branch/Source/WebCore/ChangeLog (258582 => 258583)


--- branches/safari-609-branch/Source/WebCore/ChangeLog	2020-03-17 20:39:17 UTC (rev 258582)
+++ branches/safari-609-branch/Source/WebCore/ChangeLog	2020-03-17 20:39:21 UTC (rev 258583)
@@ -1,5 +1,61 @@
 2020-03-17  Alan Coon  <[email protected]>
 
+        Cherry-pick r258455. rdar://problem/60539179
+
+    [Tree building] Block::attachIgnoringContinuation should allow inline tables as before child container
+    https://bugs.webkit.org/show_bug.cgi?id=209095
+    <rdar://problem/59837588>
+    
+    Reviewed by Simon Fraser.
+    
+    Source/WebCore:
+    
+    It's perfectly valid to have an inline table as the anonymous container for the before child.
+    It'll get wrapped inside an anonymous block right before we insert the block box candidate, so
+    the final result will be something like:
+    
+    new block level child (this is the child we are inserting)
+    anonymous block wrapper
+      inline table (this is the before child's inline container)
+        before child
+    
+    Test: fast/table/before-child-is-inline-table.html
+    
+    * rendering/updating/RenderTreeBuilderBlock.cpp:
+    (WebCore::RenderTreeBuilder::Block::attachIgnoringContinuation):
+    
+    LayoutTests:
+    
+    * fast/table/before-child-is-inline-table-expected.txt: Added.
+    * fast/table/before-child-is-inline-table.html: Added.
+    
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@258455 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2020-03-13  Zalan Bujtas  <[email protected]>
+
+            [Tree building] Block::attachIgnoringContinuation should allow inline tables as before child container
+            https://bugs.webkit.org/show_bug.cgi?id=209095
+            <rdar://problem/59837588>
+
+            Reviewed by Simon Fraser.
+
+            It's perfectly valid to have an inline table as the anonymous container for the before child.
+            It'll get wrapped inside an anonymous block right before we insert the block box candidate, so
+            the final result will be something like:
+
+            new block level child (this is the child we are inserting)
+            anonymous block wrapper
+              inline table (this is the before child's inline container)
+                before child
+
+            Test: fast/table/before-child-is-inline-table.html
+
+            * rendering/updating/RenderTreeBuilderBlock.cpp:
+            (WebCore::RenderTreeBuilder::Block::attachIgnoringContinuation):
+
+2020-03-17  Alan Coon  <[email protected]>
+
         Cherry-pick r258267. rdar://problem/60539190
 
     Consolidate detachment of document timeline into Document::commonTeardown.

Modified: branches/safari-609-branch/Source/WebCore/rendering/updating/RenderTreeBuilderBlock.cpp (258582 => 258583)


--- branches/safari-609-branch/Source/WebCore/rendering/updating/RenderTreeBuilderBlock.cpp	2020-03-17 20:39:17 UTC (rev 258582)
+++ branches/safari-609-branch/Source/WebCore/rendering/updating/RenderTreeBuilderBlock.cpp	2020-03-17 20:39:21 UTC (rev 258583)
@@ -173,7 +173,7 @@
                 m_builder.attach(parent, WTFMove(child), beforeChildContainer);
                 return;
             }
-            RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(!beforeChildContainer->isInline());
+            RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(!beforeChildContainer->isInline() || beforeChildContainer->isTable());
 
             // If the requested beforeChild is not one of our children, then this is because
             // there is an anonymous container within this object that contains the beforeChild.
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to