Title: [139798] trunk
Revision
139798
Author
[email protected]
Date
2013-01-15 15:21:34 -0800 (Tue, 15 Jan 2013)

Log Message

REGRESSION (r121599): incorrect border scaling when zoomed
https://bugs.webkit.org/show_bug.cgi?id=106944

Source/WebCore:

Reviewed by Levi Weintraub.

Fix bug in ApplyPropertyComputeLength::applyValue where zooming
of non-pixel values was incorrect.

Test: fast/sub-pixel/zoomed-em-border.html

* css/StyleBuilder.cpp:
(WebCore::ApplyPropertyComputeLength::applyValue):

LayoutTests:

Reviewed by Levi Weintraub.

Add test for zoomed em border and restore expectations for
zoom-replaced-intrinsic-ratio-001 to the pre r121599 state.

* fast/sub-pixel/zoomed-em-border-expected.html: Added.
* fast/sub-pixel/zoomed-em-border.html: Added.
* platform/chromium-linux/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.png:
* platform/chromium-win/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.txt:

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (139797 => 139798)


--- trunk/LayoutTests/ChangeLog	2013-01-15 23:17:01 UTC (rev 139797)
+++ trunk/LayoutTests/ChangeLog	2013-01-15 23:21:34 UTC (rev 139798)
@@ -1,3 +1,18 @@
+2013-01-15  Emil A Eklund  <[email protected]>
+
+        REGRESSION (r121599): incorrect border scaling when zoomed
+        https://bugs.webkit.org/show_bug.cgi?id=106944
+
+        Reviewed by Levi Weintraub.
+        
+        Add test for zoomed em border and restore expectations for 
+        zoom-replaced-intrinsic-ratio-001 to the pre r121599 state.
+
+        * fast/sub-pixel/zoomed-em-border-expected.html: Added.
+        * fast/sub-pixel/zoomed-em-border.html: Added.
+        * platform/chromium-linux/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.png:
+        * platform/chromium-win/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.txt:
+
 2013-01-15  Alexandru Chiculita  <[email protected]>
 
         [Compositor] Do not disable overlap testing for layers in front of 3D transformed layers

Added: trunk/LayoutTests/fast/sub-pixel/zoomed-em-border-expected.html (0 => 139798)


--- trunk/LayoutTests/fast/sub-pixel/zoomed-em-border-expected.html	                        (rev 0)
+++ trunk/LayoutTests/fast/sub-pixel/zoomed-em-border-expected.html	2013-01-15 23:21:34 UTC (rev 139798)
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <style>
+            html {
+                padding: 1em;
+            }
+
+            body {
+                zoom: 3.0;
+            }
+
+            #one, #two {
+                display: inline-block;
+                padding: 0 0.5em;
+                font-size: 10px;
+            }
+
+            #one {
+                line-height: 1.5;
+                background-color: orange;
+            }
+
+            #two {
+                line-height: 1;
+                border-width: 2.333px 0;
+                border-color: #f60;
+                border-style: solid;
+            }
+        </style>
+    </head>
+    <body>
+        <div id="one">Hello</div> <div id="two">World</div>
+    </body>
+</html>

Added: trunk/LayoutTests/fast/sub-pixel/zoomed-em-border.html (0 => 139798)


--- trunk/LayoutTests/fast/sub-pixel/zoomed-em-border.html	                        (rev 0)
+++ trunk/LayoutTests/fast/sub-pixel/zoomed-em-border.html	2013-01-15 23:21:34 UTC (rev 139798)
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <style>
+            html {
+                padding: 1em;
+            }
+
+            body {
+                zoom: 3.0;
+            }
+
+            #one, #two {
+                display: inline-block;
+                padding: 0 0.5em;
+                font-size: 10px;
+            }
+
+            #one {
+                line-height: 1.5;
+                background-color: orange;
+            }
+
+            #two {
+                line-height: 1;
+                border-width: 0.25em 0;
+                border-color: #f60;
+                border-style: solid;
+            }
+        </style>
+    </head>
+    <body>
+        <div id="one">Hello</div> <div id="two">World</div>
+    </body>
+</html>

Modified: trunk/LayoutTests/platform/chromium/TestExpectations (139797 => 139798)


--- trunk/LayoutTests/platform/chromium/TestExpectations	2013-01-15 23:17:01 UTC (rev 139797)
+++ trunk/LayoutTests/platform/chromium/TestExpectations	2013-01-15 23:21:34 UTC (rev 139798)
@@ -4379,3 +4379,6 @@
 webkit.org/b/106833 fast/borders/outline-alpha-inline.html [ Pass ImageOnlyFailure ]
 webkit.org/b/106858 [ SnowLeopard Debug ] scrollingcoordinator/non-fast-scrollable-region-transformed-iframe.html [ ImageOnlyFailure ]
 webkit.org/b/106875 [ XP ] svg/dynamic-updates/SVGFESpecularLightingElement-remove-lightSource.html [ ImageOnlyFailure ]
+
+# Needs rebaseline after https://bugs.webkit.org/show_bug.cgi?id=106822
+webkit.org/b/106822 svg/zoom/page/zoom-replaced-intrinsic-ratio-001.htm [ Failure Pass ]

Modified: trunk/LayoutTests/platform/chromium-linux/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.png


(Binary files differ)

Modified: trunk/LayoutTests/platform/chromium-win/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.txt (139797 => 139798)


--- trunk/LayoutTests/platform/chromium-win/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.txt	2013-01-15 23:17:01 UTC (rev 139797)
+++ trunk/LayoutTests/platform/chromium-win/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.txt	2013-01-15 23:21:34 UTC (rev 139798)
@@ -1,62 +1,62 @@
 layer at (0,0) size 800x600
   RenderView at (0,0) size 800x600
-layer at (0,0) size 800x454
-  RenderBlock {HTML} at (0,0) size 800x454
-    RenderBody {BODY} at (4,4) size 142x442 [border: (1px dashed #C0C0C0)]
+layer at (0,0) size 800x474
+  RenderBlock {HTML} at (0,0) size 800x474
+    RenderBody {BODY} at (4,4) size 142x462 [border: (1px dashed #C0C0C0)]
       RenderBlock {P} at (1,10) size 139x28
         RenderText {#text} at (0,-2) size 133x30
           text run at (0,-2) width 130: "The following six blue boxes must"
           text run at (0,7) width 133: "be of the same width. There must be"
           text run at (0,16) width 26: "no red."
-      RenderBlock {P} at (10,46) size 121x20 [bgcolor=#008000] [border: (5px solid #0000FF)]
-        RenderText {#text} at (5,3) size 2x12
-          text run at (5,3) width 2: " "
-      RenderBlock {P} at (1,121) size 139x10
+      RenderBlock {P} at (10,46) size 121x28 [bgcolor=#008000] [border: (9px solid #0000FF)]
+        RenderText {#text} at (9,7) size 2x12
+          text run at (9,7) width 2: " "
+      RenderBlock {P} at (1,129) size 139x10
         RenderText {#text} at (0,-2) size 12x12
           text run at (0,-2) width 12: "      "
         RenderText {#text} at (0,0) size 0x0
-        RenderEmbeddedObject {OBJECT} at (9,-1) size 121x39 [bgcolor=#FF0000] [border: (5px solid #0000FF)]
-          layer at (0,0) size 110x28
-            RenderView at (0,0) size 110x28
-          layer at (0,0) size 110x28
-            RenderSVGRoot {svg} at (0,0) size 110x28
-              RenderSVGRect {rect} at (0,0) size 110x28 [stroke={[type=SOLID] [color=#008000] [stroke width=12.00]}] [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=0.00] [width=1000.00] [height=250.00]
-              RenderSVGPath {path} at (16,5) size 78x17 [fill={[type=SOLID] [color=#008000]}] [data="" 500 50 L 150 200 L 850 200 Z"]
-      RenderBlock {P} at (1,186) size 139x10
-        RenderEmbeddedObject {OBJECT} at (9,0) size 121x38 [bgcolor=#FF0000] [border: (5px solid #0000FF)]
-          layer at (0,0) size 110x28
-            RenderView at (0,0) size 110x28
-          layer at (0,0) size 110x28
-            RenderSVGRoot {svg} at (0,0) size 110x28
-              RenderSVGRect {rect} at (0,0) size 110x28 [stroke={[type=SOLID] [color=#008000] [stroke width=12.00]}] [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=0.00] [width=1000.00] [height=250.00]
-              RenderSVGPath {path} at (16,5) size 78x17 [fill={[type=SOLID] [color=#008000]}] [data="" 500 50 L 150 200 L 850 200 Z"]
-      RenderTable at (1,250) size 139x40
-        RenderTableSection (anonymous) at (0,0) size 139x39
-          RenderTableRow (anonymous) at (0,0) size 139x39
-            RenderTableCell {P} at (0,0) size 139x39 [r=0 c=0 rs=1 cs=1]
-              RenderEmbeddedObject {OBJECT} at (9,0) size 121x38 [bgcolor=#FF0000] [border: (5px solid #0000FF)]
-                layer at (0,0) size 110x28
-                  RenderView at (0,0) size 110x28
-                layer at (0,0) size 110x28
-                  RenderSVGRoot {svg} at (0,0) size 110x28
-                    RenderSVGRect {rect} at (0,0) size 110x28 [stroke={[type=SOLID] [color=#008000] [stroke width=12.00]}] [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=0.00] [width=1000.00] [height=250.00]
-                    RenderSVGPath {path} at (16,5) size 78x17 [fill={[type=SOLID] [color=#008000]}] [data="" 500 50 L 150 200 L 850 200 Z"]
-      RenderTable {TABLE} at (1,345) size 139x40
-        RenderTableSection {TBODY} at (0,0) size 139x39
-          RenderTableRow {TR} at (0,0) size 139x39
-            RenderTableCell {TD} at (0,0) size 139x39 [r=0 c=0 rs=1 cs=1]
-              RenderEmbeddedObject {OBJECT} at (9,0) size 121x38 [bgcolor=#FF0000] [border: (5px solid #0000FF)]
-                layer at (0,0) size 110x28
-                  RenderView at (0,0) size 110x28
-                layer at (0,0) size 110x28
-                  RenderSVGRoot {svg} at (0,0) size 110x28
-                    RenderSVGRect {rect} at (0,0) size 110x28 [stroke={[type=SOLID] [color=#008000] [stroke width=12.00]}] [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=0.00] [width=1000.00] [height=250.00]
-                    RenderSVGPath {path} at (16,5) size 78x17 [fill={[type=SOLID] [color=#008000]}] [data="" 500 50 L 150 200 L 850 200 Z"]
-      RenderBlock (floating) {P} at (1,439) size 139x11
-        RenderEmbeddedObject {OBJECT} at (9,0) size 121x38 [bgcolor=#FF0000] [border: (5px solid #0000FF)]
-          layer at (0,0) size 110x28
-            RenderView at (0,0) size 110x28
-          layer at (0,0) size 110x28
-            RenderSVGRoot {svg} at (0,0) size 110x28
-              RenderSVGRect {rect} at (0,0) size 110x28 [stroke={[type=SOLID] [color=#008000] [stroke width=12.00]}] [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=0.00] [width=1000.00] [height=250.00]
-              RenderSVGPath {path} at (16,5) size 78x17 [fill={[type=SOLID] [color=#008000]}] [data="" 500 50 L 150 200 L 850 200 Z"]
+        RenderEmbeddedObject {OBJECT} at (9,-1) size 121x45 [bgcolor=#FF0000] [border: (9px solid #0000FF)]
+          layer at (0,0) size 102x26
+            RenderView at (0,0) size 102x26
+          layer at (0,0) size 102x26
+            RenderSVGRoot {svg} at (0,0) size 102x26
+              RenderSVGRect {rect} at (0,0) size 102x26 [stroke={[type=SOLID] [color=#008000] [stroke width=12.00]}] [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=0.00] [width=1000.00] [height=250.00]
+              RenderSVGPath {path} at (15,5) size 72x16 [fill={[type=SOLID] [color=#008000]}] [data="" 500 50 L 150 200 L 850 200 Z"]
+      RenderBlock {P} at (1,194) size 139x10
+        RenderEmbeddedObject {OBJECT} at (9,0) size 121x44 [bgcolor=#FF0000] [border: (9px solid #0000FF)]
+          layer at (0,0) size 102x26
+            RenderView at (0,0) size 102x26
+          layer at (0,0) size 102x26
+            RenderSVGRoot {svg} at (0,0) size 102x26
+              RenderSVGRect {rect} at (0,0) size 102x26 [stroke={[type=SOLID] [color=#008000] [stroke width=12.00]}] [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=0.00] [width=1000.00] [height=250.00]
+              RenderSVGPath {path} at (15,5) size 72x16 [fill={[type=SOLID] [color=#008000]}] [data="" 500 50 L 150 200 L 850 200 Z"]
+      RenderTable at (1,258) size 139x46
+        RenderTableSection (anonymous) at (0,0) size 139x45
+          RenderTableRow (anonymous) at (0,0) size 139x45
+            RenderTableCell {P} at (0,0) size 139x45 [r=0 c=0 rs=1 cs=1]
+              RenderEmbeddedObject {OBJECT} at (9,0) size 121x44 [bgcolor=#FF0000] [border: (9px solid #0000FF)]
+                layer at (0,0) size 102x26
+                  RenderView at (0,0) size 102x26
+                layer at (0,0) size 102x26
+                  RenderSVGRoot {svg} at (0,0) size 102x26
+                    RenderSVGRect {rect} at (0,0) size 102x26 [stroke={[type=SOLID] [color=#008000] [stroke width=12.00]}] [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=0.00] [width=1000.00] [height=250.00]
+                    RenderSVGPath {path} at (15,5) size 72x16 [fill={[type=SOLID] [color=#008000]}] [data="" 500 50 L 150 200 L 850 200 Z"]
+      RenderTable {TABLE} at (1,359) size 139x46
+        RenderTableSection {TBODY} at (0,0) size 139x45
+          RenderTableRow {TR} at (0,0) size 139x45
+            RenderTableCell {TD} at (0,0) size 139x45 [r=0 c=0 rs=1 cs=1]
+              RenderEmbeddedObject {OBJECT} at (9,0) size 121x44 [bgcolor=#FF0000] [border: (9px solid #0000FF)]
+                layer at (0,0) size 102x26
+                  RenderView at (0,0) size 102x26
+                layer at (0,0) size 102x26
+                  RenderSVGRoot {svg} at (0,0) size 102x26
+                    RenderSVGRect {rect} at (0,0) size 102x26 [stroke={[type=SOLID] [color=#008000] [stroke width=12.00]}] [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=0.00] [width=1000.00] [height=250.00]
+                    RenderSVGPath {path} at (15,5) size 72x16 [fill={[type=SOLID] [color=#008000]}] [data="" 500 50 L 150 200 L 850 200 Z"]
+      RenderBlock (floating) {P} at (1,459) size 139x11
+        RenderEmbeddedObject {OBJECT} at (9,0) size 121x44 [bgcolor=#FF0000] [border: (9px solid #0000FF)]
+          layer at (0,0) size 102x26
+            RenderView at (0,0) size 102x26
+          layer at (0,0) size 102x26
+            RenderSVGRoot {svg} at (0,0) size 102x26
+              RenderSVGRect {rect} at (0,0) size 102x26 [stroke={[type=SOLID] [color=#008000] [stroke width=12.00]}] [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=0.00] [width=1000.00] [height=250.00]
+              RenderSVGPath {path} at (15,5) size 72x16 [fill={[type=SOLID] [color=#008000]}] [data="" 500 50 L 150 200 L 850 200 Z"]

Modified: trunk/LayoutTests/platform/mac/TestExpectations (139797 => 139798)


--- trunk/LayoutTests/platform/mac/TestExpectations	2013-01-15 23:17:01 UTC (rev 139797)
+++ trunk/LayoutTests/platform/mac/TestExpectations	2013-01-15 23:21:34 UTC (rev 139798)
@@ -1287,3 +1287,6 @@
 webkit.org/b/103955 fast/repaint/repaint-across-writing-mode-boundary.html [ ImageOnlyFailure ]
 webkit.org/b/103955 fast/repaint/selection-rl.html [ ImageOnlyFailure ]
 webkit.org/b/103955 fast/repaint/caret-with-transformation.html [ Missing ]
+
+# Needs rebaseline after https://bugs.webkit.org/show_bug.cgi?id=106822
+webkit.org/b/106822 svg/zoom/page/zoom-replaced-intrinsic-ratio-001.htm [ Failure Pass ]

Modified: trunk/Source/WebCore/ChangeLog (139797 => 139798)


--- trunk/Source/WebCore/ChangeLog	2013-01-15 23:17:01 UTC (rev 139797)
+++ trunk/Source/WebCore/ChangeLog	2013-01-15 23:21:34 UTC (rev 139798)
@@ -1,3 +1,18 @@
+2013-01-15  Emil A Eklund  <[email protected]>
+
+        REGRESSION (r121599): incorrect border scaling when zoomed
+        https://bugs.webkit.org/show_bug.cgi?id=106944
+
+        Reviewed by Levi Weintraub.
+        
+        Fix bug in ApplyPropertyComputeLength::applyValue where zooming
+        of non-pixel values was incorrect.
+
+        Test: fast/sub-pixel/zoomed-em-border.html
+
+        * css/StyleBuilder.cpp:
+        (WebCore::ApplyPropertyComputeLength::applyValue):
+
 2013-01-15  Simon Fraser  <[email protected]>
 
         Rename RenderLayerBacking's m_containmentLayer to m_childContainmentLayer to better describe its purpose

Modified: trunk/Source/WebCore/css/StyleBuilder.cpp (139797 => 139798)


--- trunk/Source/WebCore/css/StyleBuilder.cpp	2013-01-15 23:17:01 UTC (rev 139797)
+++ trunk/Source/WebCore/css/StyleBuilder.cpp	2013-01-15 23:21:34 UTC (rev 139798)
@@ -606,12 +606,12 @@
 
             // Any original result that was >= 1 should not be allowed to fall below 1.
             // This keeps border lines from vanishing.
-            length = primitiveValue->computeLength<T>(styleResolver->style(), styleResolver->rootElementStyle(), 1.0);
-            T zoomedLength = length * zoom;
-            if (zoom < 1.0f && zoomedLength < 1.0 && length >= 1.0)
-                length = 1.0;
-            else
-                length = zoomedLength;
+            length = primitiveValue->computeLength<T>(styleResolver->style(), styleResolver->rootElementStyle(), zoom);
+            if (zoom < 1.0f && length < 1.0) {
+                T originalLength = primitiveValue->computeLength<T>(styleResolver->style(), styleResolver->rootElementStyle(), 1.0);
+                if (originalLength >= 1.0)
+                    length = 1.0;
+            }
 
         } else {
             ASSERT_NOT_REACHED();
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to