[Webkit-unassigned] [Bug 116146] New: Handling of background-size auto may lead to no background-image being displayed

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed May 15 04:31:24 PDT 2013


https://bugs.webkit.org/show_bug.cgi?id=116146

           Summary: Handling of background-size auto may lead to no
                    background-image being displayed
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: Unspecified
        OS/Version: Unspecified
            Status: UNCONFIRMED
          Severity: Normal
          Priority: P2
         Component: CSS
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: dtrebbien at gmail.com
                CC: dtrebbien at gmail.com


Created an attachment (id=201816)
 --> (https://bugs.webkit.org/attachment.cgi?id=201816&action=review)
Test case

Attached is a test case. In Safari 6.0.4, Firefox 21.0, and Opera 12.15, all four boxes have a gradient background. In Chrome 26.0.1410.65, Chromium 29.0.1507.0 (199664), and WebKit r150098 built on 15 May 2013, the first two boxes have a gray background.

The problem is that the gradient image is 1x40 and because background-size is set to auto for the width (which causes the intrinsic ratio to be preserved along the width), the width is scaled to less than 1px logically in order to fit the height to 20px and 39px. Later versions of WebKit must be truncating the scaled width so that WebKit resolves the width to 0 and the background image is not displayed.

Alexey Proskuryakov determined that the change in behavior was introduced in r121296:  https://lists.webkit.org/pipermail/webkit-help/2013-May/003504.html

As mentioned in the commit message for r121296, the spec http://www.w3.org/TR/css3-background/#background-size says: "If the background image's width or height resolves to zero, this causes the image not to be displayed. (The effect is the same as if it had been a transparent image.)" This does not say, though, how dimensions are to be resolved if a dimension needs to be rounded.

If a dimension must be rounded, I think that it makes sense to truncate the value, but ensure that the truncated value is greater than or equal to 1 so that something is always displayed. My reasoning is that if I wanted not to display a background image, I could have set the background-size for one of the dimensions to 0. If WebKit has to err because of the inability to tile images of non-integral dimensions, I think that it should err on the side of displaying something rather than nothing.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list