Ignore:
Timestamp:
Jun 29, 2012, 4:26:06 PM (13 years ago)
Author:
[email protected]
Message:

Allow non-borders to be adjusted to less than 1 when zoomed out
https://bugs.webkit.org/show_bug.cgi?id=90104

Reviewed by Eric Seidel.

Source/WebCore:

Change CSSPrimitiveValue::computeLengthDouble to allow values to be
adjusted to less than 1.0 when zoomed out. This avoids an off by one
error for floats with margins when zoomed out that can cause floats to
wrap and break pages.

The logic that prevents the value from being adjusted to less than 1 was
added to ensure that borders are still painted even when zoomed out.
By moving the logic to ApplyPropertyComputeLength::applyValue, which is
used for borders and outlines, that functionality is preserved.

Test: fast/sub-pixel/float-with-margin-in-container.html

  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::computeLengthDouble):

  • css/StyleBuilder.cpp:

(WebCore::ApplyPropertyComputeLength::applyValue):

LayoutTests:

Add test ensuring that floats with margins do not wrap in fixed sized
containers and update existing results as needed.

  • fast/css/zoom-background-repeat-x.html:
  • fast/sub-pixel/float-with-margin-in-container-expected.txt: Added.
  • fast/sub-pixel/float-with-margin-in-container.html: Added.
  • platform/chromium-linux/fast/reflections/reflection-with-zoom-expected.png:
  • platform/chromium-linux/fast/transforms/bounding-rect-zoom-expected.png:
  • platform/chromium-linux/svg/zoom/page/zoom-img-preserveAspectRatio-support-1-expected.png:
  • platform/chromium-linux/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.png:
  • platform/chromium-mac/fast/transforms/bounding-rect-zoom-expected.txt:
  • platform/chromium-mac/svg/zoom/page/zoom-img-preserveAspectRatio-support-1-expected.txt:
  • platform/chromium-mac/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.txt:
  • platform/chromium-win/fast/transforms/bounding-rect-zoom-expected.txt:
  • platform/chromium-win/svg/zoom/page/zoom-img-preserveAspectRatio-support-1-expected.txt:
  • platform/chromium-win/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.txt:
  • platform/mac/fast/transforms/bounding-rect-zoom-expected.txt:
  • platform/mac/http/tests/misc/object-embedding-svg-delayed-size-negotiation-2-expected.txt:
  • platform/mac/svg/zoom/page/zoom-img-preserveAspectRatio-support-1-expected.txt:
  • platform/mac/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.txt:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/css/CSSPrimitiveValue.cpp

    r121289 r121599  
    558558        return result;
    559559
    560     // Any original result that was >= 1 should not be allowed to fall below 1.  This keeps border lines from
    561     // vanishing.
    562     double zoomedResult = result * multiplier;
    563     if (zoomedResult < 1.0 && result >= 1.0)
    564         return 1.0;
    565     return zoomedResult;
     560    return result * multiplier;
    566561}
    567562
Note: See TracChangeset for help on using the changeset viewer.