Changeset 162559 in webkit
- Timestamp:
- Jan 22, 2014 2:56:17 PM (10 years ago)
- Location:
- trunk
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r162553 r162559 1 2014-01-22 Zalan Bujtas <zalan@apple.com> 2 3 [CSS Shapes] shape-inside rectangle layout can fail 4 https://bugs.webkit.org/show_bug.cgi?id=124784 5 6 Reviewed by Darin Adler. 7 8 Early subpixel rounding/flooring/ceiling can have unwanted 9 side effect on the final pixel value. Delay pixel 10 conversions as much as possible. 11 12 Existing test is changed to reflect subpixel functionality. 13 14 * fast/shapes/shape-inside/shape-inside-subpixel-rectangle-top-expected.html: 15 * platform/mac/TestExpectations: 16 * platform/win/TestExpectations: 17 1 18 2014-01-22 Zalan Bujtas <zalan@apple.com> 2 19 -
trunk/LayoutTests/fast/shapes/shape-inside/shape-inside-subpixel-rectangle-top-expected.html
r159821 r162559 2 2 <html> 3 3 <head> 4 <script src="../resources/subpixel-utils.js"></script> 4 5 <style> 5 6 #shape-inside { … … 9 10 background-color: grey; 10 11 width: 200px; 11 height: 198 px;12 padding-top: 2px;12 height: 198.7px; 13 padding-top: 1.3px; 13 14 } 14 15 </style> … … 16 17 <body> 17 18 <div id="shape-inside">X</div> 19 <script> 20 if (!SubPixelLayout.isEnabled()) { 21 var divX = document.getElementById("shape-inside"); 22 divX.style.paddingTop = "2px"; 23 divX.offsetHeight; 24 } 25 </script> 18 26 </body> 19 27 </html> -
trunk/LayoutTests/platform/mac/TestExpectations
r162494 r162559 1335 1335 webkit.org/b/126889 fast/forms/number/number-size.html [ Failure ] 1336 1336 1337 # webkit.org/b/124784 needs revisiting.1338 webkit.org/b/124784 fast/shapes/shape-inside/shape-inside-subpixel-rectangle-top.html [ ImageOnlyFailure ]1339 1340 1337 # Subpixel: off-by-1 pixel rendering on mathml 1341 1338 webkit.org/b/126897 mathml/presentation/bug95015.html [ ImageOnlyFailure ] -
trunk/LayoutTests/platform/win/TestExpectations
r162425 r162559 2871 2871 2872 2872 # Subpixel failures 2873 # webkit.org/b/124784 needs revisiting.2874 webkit.org/b/124784 fast/shapes/shape-inside/shape-inside-subpixel-rectangle-top.html [ ImageOnlyFailure ]2875 2876 2873 # Subpixel: off-by-1 pixel rendering on mathml 2877 2874 webkit.org/b/126897 mathml/presentation/bug95015.html [ ImageOnlyFailure ] -
trunk/Source/WebCore/ChangeLog
r162555 r162559 1 2014-01-22 Zalan Bujtas <zalan@apple.com> 2 3 [CSS Shapes] shape-inside rectangle layout can fail 4 https://bugs.webkit.org/show_bug.cgi?id=124784 5 6 Reviewed by Darin Adler. 7 8 Early subpixel rounding/flooring/ceiling can have unwanted 9 side effect on the final pixel value. Delay pixel 10 conversions as much as possible. 11 12 Existing test is changed to reflect subpixel functionality. 13 14 * rendering/shapes/RectangleShape.cpp: 15 (WebCore::RectangleShape::firstIncludedIntervalLogicalTop): 16 1 17 2014-01-22 Jochen Eisinger <jochen@chromium.org> 2 18 -
trunk/Source/WebCore/rendering/shapes/RectangleShape.cpp
r161604 r162559 174 174 return false; 175 175 176 float minY = LayoutUnit::fromFloatCeil(std::max(bounds.y(), minIntervalTop));176 float minY = std::max(bounds.y(), minIntervalTop); 177 177 float maxY = minY + minIntervalHeight; 178 178 … … 187 187 188 188 if (!intervalOverlapsMinCorner && !intervalOverlapsMaxCorner) { 189 result = minY;189 result = ceiledLayoutUnit(minY); 190 190 return true; 191 191 } … … 198 198 if (intervalOverlapsMinCorner && (!intervalOverlapsMaxCorner || minCornerDefinesX)) { 199 199 if (intervalFitsWithinCorners || bounds.y() + cornerIntercept.y() < minY) { 200 result = minY;200 result = ceiledLayoutUnit(minY); 201 201 return true; 202 202 } 203 203 if (minIntervalHeight < bounds.height() - (2 * cornerIntercept.y())) { 204 result = LayoutUnit::fromFloatCeil(bounds.y() + cornerIntercept.y());204 result = ceiledLayoutUnit(bounds.y() + cornerIntercept.y()); 205 205 return true; 206 206 } … … 209 209 if (intervalOverlapsMaxCorner && (!intervalOverlapsMinCorner || !minCornerDefinesX)) { 210 210 if (intervalFitsWithinCorners || minY <= bounds.maxY() - cornerIntercept.y() - minIntervalHeight) { 211 result = minY;211 result = ceiledLayoutUnit(minY); 212 212 return true; 213 213 }
Note: See TracChangeset
for help on using the changeset viewer.