New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 918243 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Jan 4
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Mac
Pri: 1
Type: Bug-Regression



Sign in to add a comment

CSS border-image-slice longhand not overridden by default value in border-image shorthand

Reported by andersg...@gmail.com, Dec 29

Issue description

UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36

Steps to reproduce the problem:
1. Visit https://jsfiddle.net/pt8cdm7k/ (or see the attached HTML test page)
2. See the result
3. Inspect the rendered result using the Chrome Developer Tools

What is the expected behavior?
Test case: The browser should render a <button> element surrounded by four dots, one dot at each corner.

Details: A `border-image` shorthand without explicitly declaring a `border-image-slice` value should use the default `border-image-slice` value of '100%'.

What went wrong?
Test case: The <button> is rendered with a full border.

Details: It seems Chrome doesn't properly override/revert the already applied `border-image-slice` value when the `border-image` shorthand is declared without a `border-image-slice` value. Or the fullhand value wrongly cascades into the shorthand.

Using the Developer Tools, the `border-image-slice:1` ruleset appears overridden as it's struck through. In the computed values, however, the <button> still has a `border-image-slice` value of '1'. Clicking this value to see where in the CSS it's declared, points at the `border-image` shorthand, and expands this ruleset with the default value of '100%'.

Did this work before? Yes 67

Does this work in other browsers? N/A

Chrome version: 71.0.3578.98  Channel: stable
OS Version: 10.0
Flash Version: 

Chrome up until Chrome 67 displays the expected behavior, as well as other browsers like Firefox 64 and Edge 17 (which is based on Chrome 64). Chrome 68, 69, 70 and 71 appears to be affected by this bug, as well as Opera 57 (which is based on Chrome 70).
 
chrome-css-border-image-slice-bug.html
919 bytes View Download
Cc: swarnasree.mukkala@chromium.org
Labels: Triaged-ET Needs-Triage-M71 Needs-Bisect
Status: Untriaged (was: Unconfirmed)
Able to reproduce the issue on reported chrome version #71.0.3578.98 and latest chrome #73.0.3656.0 using Windows 10 and issue is not seen on chrome version #60.0.3112.113. Working on bisect info, will update the other OS behaviour and bisect info soon. Hence marking this issue as Untriaged and adding Needs-Bisect label to it.

Thanks!
Cc: rob.b...@samsung.com
Labels: -Pri-2 -Needs-Bisect hasbisect-per-revision FoundIn-73 Target-71 Target-72 Target-73 M-73 FoundIn-71 FoundIn-72 RegressedIn-68 OS-Linux OS-Mac Pri-1
Owner: timloh@chromium.org
Status: Assigned (was: Untriaged)
Able to reproduce the issue on the reported chrome version #71.0.3578.98 and latest chrome #73.0.3656.0 using Windows 10, Ubuntu 17.10 and Mac OS 10.13.6 by following steps as per comment#0. The following is the bisect information.

Bisect Information:
===================
Good Build: 68.0.3401.0
Bad Build: 68.0.3402.0

You are probably looking for a change made after 552305 (known good), but no later than 552306 (first known bad).
CHANGELOG URL:https://chromium.googlesource.com/chromium/src/+log/0d41b261e10706d8eed652f198778864401b5ae0..fa1a40ae240b768f36d3a98ae028f4a35acc01e1
Reviewed-on: https://chromium-review.googlesource.com/1013806

As we are not able to assign to the author of the CL "rob.buis@samsung.com", hence assigning to the reviewer "timloh@chromium.org".
@Timothy Loh: Please help us in reassigning the issue if it is not related to your change.
Thanks.!
Cc: timloh@chromium.org
Owner: futhark@chromium.org
Rune, can you triage this? It looks like BorderImageSlice::InitialValue() doesn't match the types that BorderImageSlice::ParseSingleValue() creates and it gets silently dropped by CSSToStyleMap::MapNinePieceImageSlice(). It isn't obvious to me whether the early return there and elsewhere in CSSToStyleMap are still relevant.
Status: Started (was: Assigned)
Project Member

Comment 5 by bugdroid1@chromium.org, Jan 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9153af5e85eca2980b7522886a30368f630c2853

commit 9153af5e85eca2980b7522886a30368f630c2853
Author: Rune Lillesveen <futhark@chromium.org>
Date: Fri Jan 04 15:04:39 2019

Use expected CSSValue type for initial border-image-slice.

The apply code early returns if the type is not a
CSSBorderImageSliceValue. Create an initial value which matches the
expected type.

Bug:  918243 
Change-Id: I3228d2410789306d915db892ad54e918631b8864
Reviewed-on: https://chromium-review.googlesource.com/c/1396118
Reviewed-by: Xida Chen <xidachen@chromium.org>
Commit-Queue: Rune Lillesveen <futhark@chromium.org>
Cr-Commit-Position: refs/heads/master@{#619951}
[modify] https://crrev.com/9153af5e85eca2980b7522886a30368f630c2853/third_party/blink/renderer/core/css/properties/longhands/border_image_slice_custom.cc
[add] https://crrev.com/9153af5e85eca2980b7522886a30368f630c2853/third_party/blink/web_tests/external/wpt/css/css-backgrounds/border-image-slice-shorthand-reset.html

Status: Fixed (was: Started)

Sign in to add a comment