Title: [174976] releases/WebKitGTK/webkit-2.6
Revision
174976
Author
[email protected]
Date
2014-10-21 09:41:21 -0700 (Tue, 21 Oct 2014)

Log Message

Merge r174716 - REGRESSION (Safari 7.1/8.0): Border-radius and overflow hidden renders incorrectly.
https://bugs.webkit.org/show_bug.cgi?id=137205

Reviewed by Simon Fraser.

Child layer should not reset radius clipping behaviour.

Source/WebCore:

Test: fast/layers/parent-clipping-overflow-is-overwritten-by-child-clipping.html

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects):

LayoutTests:

* fast/layers/parent-clipping-overflow-is-overwritten-by-child-clipping-expected.html: Added.
* fast/layers/parent-clipping-overflow-is-overwritten-by-child-clipping.html: Added.

Modified Paths

Added Paths

Diff

Modified: releases/WebKitGTK/webkit-2.6/LayoutTests/ChangeLog (174975 => 174976)


--- releases/WebKitGTK/webkit-2.6/LayoutTests/ChangeLog	2014-10-21 16:38:35 UTC (rev 174975)
+++ releases/WebKitGTK/webkit-2.6/LayoutTests/ChangeLog	2014-10-21 16:41:21 UTC (rev 174976)
@@ -1,3 +1,15 @@
+2014-10-14  Zalan Bujtas  <[email protected]>
+
+        REGRESSION (Safari 7.1/8.0): Border-radius and overflow hidden renders incorrectly.
+        https://bugs.webkit.org/show_bug.cgi?id=137205
+
+        Reviewed by Simon Fraser.
+
+        Child layer should not reset radius clipping behaviour.
+
+        * fast/layers/parent-clipping-overflow-is-overwritten-by-child-clipping-expected.html: Added.
+        * fast/layers/parent-clipping-overflow-is-overwritten-by-child-clipping.html: Added.
+
 2014-10-14  Dan Bernstein  <[email protected]>
 
         URLs that start with http:/// and https:/// lose two slashes when parsed, causing assertion failure and inconsistent behavior

Added: releases/WebKitGTK/webkit-2.6/LayoutTests/fast/layers/parent-clipping-overflow-is-overwritten-by-child-clipping-expected.html (0 => 174976)


--- releases/WebKitGTK/webkit-2.6/LayoutTests/fast/layers/parent-clipping-overflow-is-overwritten-by-child-clipping-expected.html	                        (rev 0)
+++ releases/WebKitGTK/webkit-2.6/LayoutTests/fast/layers/parent-clipping-overflow-is-overwritten-by-child-clipping-expected.html	2014-10-21 16:41:21 UTC (rev 174976)
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>This tests that parent clipping is applied properly when border-radius is present.</title>
+<style>
+  div {
+    overflow: hidden;
+    border: 1px solid blue;
+    border-radius: 50px;
+    height: 50px;
+  }
+
+</style>
+</head>
+<body>
+  <div>Positioned text should be clipped.</div>            
+</body>
+</html>

Added: releases/WebKitGTK/webkit-2.6/LayoutTests/fast/layers/parent-clipping-overflow-is-overwritten-by-child-clipping.html (0 => 174976)


--- releases/WebKitGTK/webkit-2.6/LayoutTests/fast/layers/parent-clipping-overflow-is-overwritten-by-child-clipping.html	                        (rev 0)
+++ releases/WebKitGTK/webkit-2.6/LayoutTests/fast/layers/parent-clipping-overflow-is-overwritten-by-child-clipping.html	2014-10-21 16:41:21 UTC (rev 174976)
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>This tests that parent clipping is applied properly when border-radius is present.</title>
+<style>
+  .container {
+    overflow: hidden;
+    border: 1px solid blue;
+    border-radius: 50px;
+    height: 50px;
+  }
+
+  .box {
+    overflow:hidden;
+    position: relative;
+    top: 0px;
+    left: 0px;
+  }
+
+</style>
+</head>
+<body>
+  <div class=container>
+	<div class=box>Positioned text should be clipped.</div>            
+  </div>
+</body>
+</html>

Modified: releases/WebKitGTK/webkit-2.6/Source/WebCore/ChangeLog (174975 => 174976)


--- releases/WebKitGTK/webkit-2.6/Source/WebCore/ChangeLog	2014-10-21 16:38:35 UTC (rev 174975)
+++ releases/WebKitGTK/webkit-2.6/Source/WebCore/ChangeLog	2014-10-21 16:41:21 UTC (rev 174976)
@@ -1,3 +1,17 @@
+2014-10-14  Zalan Bujtas  <[email protected]>
+
+        REGRESSION (Safari 7.1/8.0): Border-radius and overflow hidden renders incorrectly.
+        https://bugs.webkit.org/show_bug.cgi?id=137205
+
+        Reviewed by Simon Fraser.
+
+        Child layer should not reset radius clipping behaviour.
+
+        Test: fast/layers/parent-clipping-overflow-is-overwritten-by-child-clipping.html
+
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::calculateClipRects):
+
 2014-10-14  Dan Bernstein  <[email protected]>
 
         URLs that start with http:/// and https:/// lose two slashes when parsed, causing assertion failure and inconsistent behavior

Modified: releases/WebKitGTK/webkit-2.6/Source/WebCore/rendering/RenderLayer.cpp (174975 => 174976)


--- releases/WebKitGTK/webkit-2.6/Source/WebCore/rendering/RenderLayer.cpp	2014-10-21 16:38:35 UTC (rev 174975)
+++ releases/WebKitGTK/webkit-2.6/Source/WebCore/rendering/RenderLayer.cpp	2014-10-21 16:41:21 UTC (rev 174976)
@@ -5450,7 +5450,8 @@
         // This layer establishes a clip of some kind.
         if (renderer().hasOverflowClip() && (this != clipRectsContext.rootLayer || clipRectsContext.respectOverflowClip == RespectOverflowClip)) {
             foregroundRect.intersect(toRenderBox(renderer()).overflowClipRect(toLayoutPoint(offsetFromRootLocal), namedFlowFragment, clipRectsContext.overlayScrollbarSizeRelevancy));
-            foregroundRect.setHasRadius(renderer().style().hasBorderRadius());
+            if (renderer().style().hasBorderRadius())
+                foregroundRect.setHasRadius(true);
         }
 
         if (renderer().hasClip()) {
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to