Title: [214804] releases/WebKitGTK/webkit-2.16
Revision
214804
Author
carlo...@webkit.org
Date
2017-04-03 09:53:11 -0700 (Mon, 03 Apr 2017)

Log Message

Merge r214501 - Missing render tree position invalidation when tearing down renderers for display:contents subtree
https://bugs.webkit.org/show_bug.cgi?id=170199
<rdar://problem/31260856>

Reviewed by Zalan Bujtas.

Source/WebCore:

Test: fast/shadow-dom/slot-renderer-teardown.html

* style/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::updateElementRenderer):

    Invalidate the render tree position in case we do a teardown for an element without renderer.

LayoutTests:

* fast/shadow-dom/slot-renderer-teardown-expected.txt: Added.
* fast/shadow-dom/slot-renderer-teardown.html: Added.

Modified Paths

Added Paths

Diff

Modified: releases/WebKitGTK/webkit-2.16/LayoutTests/ChangeLog (214803 => 214804)


--- releases/WebKitGTK/webkit-2.16/LayoutTests/ChangeLog	2017-04-03 16:47:29 UTC (rev 214803)
+++ releases/WebKitGTK/webkit-2.16/LayoutTests/ChangeLog	2017-04-03 16:53:11 UTC (rev 214804)
@@ -1,3 +1,14 @@
+2017-03-28  Antti Koivisto  <an...@apple.com>
+
+        Missing render tree position invalidation when tearing down renderers for display:contents subtree
+        https://bugs.webkit.org/show_bug.cgi?id=170199
+        <rdar://problem/31260856>
+
+        Reviewed by Zalan Bujtas.
+
+        * fast/shadow-dom/slot-renderer-teardown-expected.txt: Added.
+        * fast/shadow-dom/slot-renderer-teardown.html: Added.
+
 2017-03-22  Carlos Garcia Campos  <cgar...@igalia.com>
 
         Unreviewed GTK+ gardening. Remove platform expectation after r214246.

Added: releases/WebKitGTK/webkit-2.16/LayoutTests/fast/shadow-dom/slot-renderer-teardown-expected.txt (0 => 214804)


--- releases/WebKitGTK/webkit-2.16/LayoutTests/fast/shadow-dom/slot-renderer-teardown-expected.txt	                        (rev 0)
+++ releases/WebKitGTK/webkit-2.16/LayoutTests/fast/shadow-dom/slot-renderer-teardown-expected.txt	2017-04-03 16:53:11 UTC (rev 214804)
@@ -0,0 +1,2 @@
+This test passes if it does not assert
+

Added: releases/WebKitGTK/webkit-2.16/LayoutTests/fast/shadow-dom/slot-renderer-teardown.html (0 => 214804)


--- releases/WebKitGTK/webkit-2.16/LayoutTests/fast/shadow-dom/slot-renderer-teardown.html	                        (rev 0)
+++ releases/WebKitGTK/webkit-2.16/LayoutTests/fast/shadow-dom/slot-renderer-teardown.html	2017-04-03 16:53:11 UTC (rev 214804)
@@ -0,0 +1,21 @@
+<script>
+if (window.testRunner)
+    testRunner.dumpAsText();
+</script>
+<style>
+:last-child {
+    -webkit-animation-name: name5;
+    -webkit-animation-duration: 10s;
+}
+@-webkit-keyframes name5 {
+    from { }
+    to { }
+}
+</style>
+<body>
+<summary>This test passes if it does not assert<div></div><slot id=slot1><div></div></slot></summary>
+</body>
+
+<script>
+document.execCommand("SelectAll");
+</script>

Modified: releases/WebKitGTK/webkit-2.16/Source/WebCore/ChangeLog (214803 => 214804)


--- releases/WebKitGTK/webkit-2.16/Source/WebCore/ChangeLog	2017-04-03 16:47:29 UTC (rev 214803)
+++ releases/WebKitGTK/webkit-2.16/Source/WebCore/ChangeLog	2017-04-03 16:53:11 UTC (rev 214804)
@@ -1,3 +1,18 @@
+2017-03-28  Antti Koivisto  <an...@apple.com>
+
+        Missing render tree position invalidation when tearing down renderers for display:contents subtree
+        https://bugs.webkit.org/show_bug.cgi?id=170199
+        <rdar://problem/31260856>
+
+        Reviewed by Zalan Bujtas.
+
+        Test: fast/shadow-dom/slot-renderer-teardown.html
+
+        * style/RenderTreeUpdater.cpp:
+        (WebCore::RenderTreeUpdater::updateElementRenderer):
+
+            Invalidate the render tree position in case we do a teardown for an element without renderer.
+
 2017-03-24  Daniel Bates  <daba...@apple.com>
 
         media/restore-from-page-cache.html causes NoEventDispatchAssertion::isEventAllowedInMainThread() assertion failure

Modified: releases/WebKitGTK/webkit-2.16/Source/WebCore/style/RenderTreeUpdater.cpp (214803 => 214804)


--- releases/WebKitGTK/webkit-2.16/Source/WebCore/style/RenderTreeUpdater.cpp	2017-04-03 16:47:29 UTC (rev 214803)
+++ releases/WebKitGTK/webkit-2.16/Source/WebCore/style/RenderTreeUpdater.cpp	2017-04-03 16:53:11 UTC (rev 214804)
@@ -256,8 +256,13 @@
 
     bool shouldTearDownRenderers = update.change == Style::Detach
         && (element.renderer() || element.isNamedFlowContentElement() || element.hasDisplayContents());
-    if (shouldTearDownRenderers)
+    if (shouldTearDownRenderers) {
+        if (!element.renderer()) {
+            // We may be tearing down a descendant renderer cached in renderTreePosition.
+            renderTreePosition().invalidateNextSibling();
+        }
         tearDownRenderers(element, TeardownType::KeepHoverAndActive);
+    }
 
     bool hasDisplayContents = update.style->display() == CONTENTS;
     if (hasDisplayContents != element.hasDisplayContents()) {
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to