Changeset 271738 in webkit


Ignore:
Timestamp:
Jan 21, 2021 10:22:56 PM (18 months ago)
Author:
commit-queue@webkit.org
Message:

Handle shapeMargin becoming NaN
https://bugs.webkit.org/show_bug.cgi?id=220352

Patch by Rob Buis <rbuis@igalia.com> on 2021-01-21
Reviewed by Zalan Bujtas.

Source/WebCore:

For large zoom factors shapeMargin can become NaN, in that case treat
it as zero.

Test: fast/shapes/shape-outside-floats/shape-outside-large-zoom.html

  • rendering/shapes/ShapeOutsideInfo.cpp:

(WebCore::ShapeOutsideInfo::computedShape const):

LayoutTests:

Add test for this.

  • fast/shapes/shape-outside-floats/shape-outside-large-zoom-expected.txt: Added.
  • fast/shapes/shape-outside-floats/shape-outside-large-zoom.html: Added.
Location:
trunk
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r271736 r271738  
     12021-01-21  Rob Buis  <rbuis@igalia.com>
     2
     3        Handle shapeMargin becoming NaN
     4        https://bugs.webkit.org/show_bug.cgi?id=220352
     5
     6        Reviewed by Zalan Bujtas.
     7
     8        Add test for this.
     9
     10        * fast/shapes/shape-outside-floats/shape-outside-large-zoom-expected.txt: Added.
     11        * fast/shapes/shape-outside-floats/shape-outside-large-zoom.html: Added.
     12
    1132021-01-21  Tim Horton  <timothy_horton@apple.com>
    214
  • trunk/Source/WebCore/ChangeLog

    r271735 r271738  
     12021-01-21  Rob Buis  <rbuis@igalia.com>
     2
     3        Handle shapeMargin becoming NaN
     4        https://bugs.webkit.org/show_bug.cgi?id=220352
     5
     6        Reviewed by Zalan Bujtas.
     7
     8        For large zoom factors shapeMargin can become NaN, in that case treat
     9        it as zero.
     10
     11        Test: fast/shapes/shape-outside-floats/shape-outside-large-zoom.html
     12
     13        * rendering/shapes/ShapeOutsideInfo.cpp:
     14        (WebCore::ShapeOutsideInfo::computedShape const):
     15
    1162021-01-21  Devin Rousso  <drousso@apple.com>
    217
  • trunk/Source/WebCore/rendering/shapes/ShapeOutsideInfo.cpp

    r266691 r271738  
    171171
    172172    WritingMode writingMode = containingBlockStyle.writingMode();
    173     float margin = floatValueForLength(m_renderer.style().shapeMargin(), m_renderer.containingBlock() ? m_renderer.containingBlock()->contentWidth() : 0_lu);
     173    auto margin = [&] {
     174        auto shapeMargin = floatValueForLength(m_renderer.style().shapeMargin(), m_renderer.containingBlock() ? m_renderer.containingBlock()->contentWidth() : 0_lu);
     175        return isnan(shapeMargin) ? 0.0f : shapeMargin;
     176    }();
    174177    float shapeImageThreshold = style.shapeImageThreshold();
    175178    const ShapeValue& shapeValue = *style.shapeOutside();
Note: See TracChangeset for help on using the changeset viewer.