Title: [195208] releases/WebKitGTK/webkit-2.10
Revision
195208
Author
[email protected]
Date
2016-01-18 04:52:33 -0800 (Mon, 18 Jan 2016)

Log Message

Merge r194638 - isAnonymousInlineBlock() should exclude any ruby content.
https://bugs.webkit.org/show_bug.cgi?id=152648
<rdar://problem/23872549>

Reviewed by David Hyatt.

isAnonymousInlineBlock is designed for the new Block-Inside-Inline Model
and all other anonymous inline-block renderers (including Ruby) should bail out of it.
(see webkit.org/b/143145)

Source/WebCore:

Test: fast/ruby/ruby-inline-margin-collapse-crash.html

* rendering/RenderObject.cpp:
(WebCore::RenderObject::isAnonymousInlineBlock):
* rendering/RenderObject.h:
(WebCore::RenderObject::isAnonymousInlineBlock): Deleted.

LayoutTests:

* fast/ruby/ruby-inline-margin-collapse-crash-expected.txt: Added.
* fast/ruby/ruby-inline-margin-collapse-crash.html: Added.

Modified Paths

Added Paths

Diff

Modified: releases/WebKitGTK/webkit-2.10/LayoutTests/ChangeLog (195207 => 195208)


--- releases/WebKitGTK/webkit-2.10/LayoutTests/ChangeLog	2016-01-18 12:18:35 UTC (rev 195207)
+++ releases/WebKitGTK/webkit-2.10/LayoutTests/ChangeLog	2016-01-18 12:52:33 UTC (rev 195208)
@@ -1,3 +1,18 @@
+2016-01-06  Zalan Bujtas  <[email protected]>
+
+        isAnonymousInlineBlock() should exclude any ruby content.
+        https://bugs.webkit.org/show_bug.cgi?id=152648
+        <rdar://problem/23872549>
+
+        Reviewed by David Hyatt.
+
+        isAnonymousInlineBlock is designed for the new Block-Inside-Inline Model
+        and all other anonymous inline-block renderers (including Ruby) should bail out of it.
+        (see webkit.org/b/143145)
+
+        * fast/ruby/ruby-inline-margin-collapse-crash-expected.txt: Added.
+        * fast/ruby/ruby-inline-margin-collapse-crash.html: Added.
+
 2016-01-05  Pranjal Jumde  <[email protected]>
 
         Image should not be re-registered if m_form already exists. This leads to an assertion failure.

Added: releases/WebKitGTK/webkit-2.10/LayoutTests/fast/ruby/ruby-inline-margin-collapse-crash-expected.txt (0 => 195208)


--- releases/WebKitGTK/webkit-2.10/LayoutTests/fast/ruby/ruby-inline-margin-collapse-crash-expected.txt	                        (rev 0)
+++ releases/WebKitGTK/webkit-2.10/LayoutTests/fast/ruby/ruby-inline-margin-collapse-crash-expected.txt	2016-01-18 12:52:33 UTC (rev 195208)
@@ -0,0 +1 @@
+Pass if no crash or assert in debug.

Added: releases/WebKitGTK/webkit-2.10/LayoutTests/fast/ruby/ruby-inline-margin-collapse-crash.html (0 => 195208)


--- releases/WebKitGTK/webkit-2.10/LayoutTests/fast/ruby/ruby-inline-margin-collapse-crash.html	                        (rev 0)
+++ releases/WebKitGTK/webkit-2.10/LayoutTests/fast/ruby/ruby-inline-margin-collapse-crash.html	2016-01-18 12:52:33 UTC (rev 195208)
@@ -0,0 +1,11 @@
+<script>
+    if (window.testRunner)
+        testRunner.dumpAsText();
+</script>
+<style>
+    ruby:after {
+        display: block;
+        content: "bar";
+    }
+</style>
+Pass if no crash or assert in debug.<ruby>

Modified: releases/WebKitGTK/webkit-2.10/Source/WebCore/ChangeLog (195207 => 195208)


--- releases/WebKitGTK/webkit-2.10/Source/WebCore/ChangeLog	2016-01-18 12:18:35 UTC (rev 195207)
+++ releases/WebKitGTK/webkit-2.10/Source/WebCore/ChangeLog	2016-01-18 12:52:33 UTC (rev 195208)
@@ -1,3 +1,22 @@
+2016-01-06  Zalan Bujtas  <[email protected]>
+
+        isAnonymousInlineBlock() should exclude any ruby content.
+        https://bugs.webkit.org/show_bug.cgi?id=152648
+        <rdar://problem/23872549>
+
+        Reviewed by David Hyatt.
+
+        isAnonymousInlineBlock is designed for the new Block-Inside-Inline Model
+        and all other anonymous inline-block renderers (including Ruby) should bail out of it.
+        (see webkit.org/b/143145)
+
+        Test: fast/ruby/ruby-inline-margin-collapse-crash.html
+
+        * rendering/RenderObject.cpp:
+        (WebCore::RenderObject::isAnonymousInlineBlock):
+        * rendering/RenderObject.h:
+        (WebCore::RenderObject::isAnonymousInlineBlock): Deleted.
+
 2016-01-05  Pranjal Jumde  <[email protected]>
 
         Image should not be re-registered if m_form already exists. This leads to an assertion failure.

Modified: releases/WebKitGTK/webkit-2.10/Source/WebCore/rendering/RenderObject.cpp (195207 => 195208)


--- releases/WebKitGTK/webkit-2.10/Source/WebCore/rendering/RenderObject.cpp	2016-01-18 12:18:35 UTC (rev 195207)
+++ releases/WebKitGTK/webkit-2.10/Source/WebCore/rendering/RenderObject.cpp	2016-01-18 12:52:33 UTC (rev 195208)
@@ -56,6 +56,7 @@
 #include "RenderMultiColumnFlowThread.h"
 #include "RenderNamedFlowFragment.h"
 #include "RenderNamedFlowThread.h" 
+#include "RenderRuby.h"
 #include "RenderSVGResourceContainer.h"
 #include "RenderScrollbarPart.h"
 #include "RenderTheme.h"
@@ -1700,6 +1701,11 @@
     return hasLayer() && downcast<RenderLayerModelObject>(*this).layer()->isComposited();
 }
 
+bool RenderObject::isAnonymousInlineBlock() const
+{
+    return isAnonymous() && style().display() == INLINE_BLOCK && style().styleType() == NOPSEUDO && isRenderBlockFlow() && !isRubyRun() && !isRubyBase() && !isRuby(parent());
+}
+
 bool RenderObject::hitTest(const HitTestRequest& request, HitTestResult& result, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestFilter hitTestFilter)
 {
     bool inside = false;

Modified: releases/WebKitGTK/webkit-2.10/Source/WebCore/rendering/RenderObject.h (195207 => 195208)


--- releases/WebKitGTK/webkit-2.10/Source/WebCore/rendering/RenderObject.h	2016-01-18 12:18:35 UTC (rev 195207)
+++ releases/WebKitGTK/webkit-2.10/Source/WebCore/rendering/RenderObject.h	2016-01-18 12:52:33 UTC (rev 195208)
@@ -490,11 +490,7 @@
 #endif
             ;
     }
-    bool isAnonymousInlineBlock() const
-    {
-        return isAnonymous() && style().display() == INLINE_BLOCK && style().styleType() == NOPSEUDO && isRenderBlockFlow() && !isRubyRun() && !isRubyBase();
-    }
-
+    bool isAnonymousInlineBlock() const;
     bool isElementContinuation() const { return node() && node()->renderer() != this; }
     bool isInlineElementContinuation() const { return isElementContinuation() && isInline(); }
     bool isBlockElementContinuation() const { return isElementContinuation() && !isInline(); }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to