New issue
Advanced search Search tips

Issue 767352 link

Starred by 4 users

Issue metadata

Status: Assigned
Owner:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug



Sign in to add a comment

border image area can be painted even if 'border-style' of element is 'none'

Reported by goo...@gtalbot.org, Sep 21 2017

Issue description

UserAgent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0

Example URL:
http://test.csswg.org/suites/css-backgrounds-3_dev/nightly-unstable/html4/border-image-width-005.htm

Steps to reproduce the problem:
3 tests
*******

http://test.csswg.org/suites/css-backgrounds-3_dev/nightly-unstable/html4/border-image-width-005.htm

http://test.csswg.org/suites/css-backgrounds-3_dev/nightly-unstable/html4/border-image-width-006.htm

http://test.csswg.org/suites/css-backgrounds-3_dev/nightly-unstable/html4/border-image-width-007.htm

What is the expected behavior?
Filled green square and no red.

Reference file
************** 

http://test.csswg.org/suites/css-backgrounds-3_dev/nightly-unstable/html4/reference/ref-filled-green-100px-square.htm

What went wrong?
A small red square in 005 and 006 tests.

No filled green square in 007 test.

Does it occur on multiple sites: N/A

Is it a problem with a plugin? No 

Did this work before? No 

Does this work in other browsers? Yes

Chrome version: 63.0.3218.0  Channel: dev
OS Version: 
Flash Version: irrelevant

This issue spun from  issue 559258  comment 67 .

WebKit issue for these 3 tests:

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

- - - - - - - 

Explanations
************

When border-image-width is set to a positive and non-zero length (say 30px, 2em, etc.) or a positive and non-zero percentage, then the border image area exists and must be painted (assuming that border box is at least 1px by 1px) .

One important sentence of the spec to keep in mind is:

"
The border image is drawn inside an area called the border image area (...) whose boundaries by default correspond to the border box (...). 
"
6.3. Drawing Areas: the ‘border-image-width’ property
http://www.w3.org/TR/css3-background/#the-border-image-width

By definition, border image area is the border box of an element. border image area is *_not_* the border belt of an element. So, there can be a non-zero border image area to be painted if there is a non-zero content area and/or a non-zero padding belt (or area) and even though the border belt may be 0 px by 0px. The 3 tests are such precise code scenarios.

Furthermore, even the margin belt (or even beyond if there is no margin area) could be painted by the border image if border-image-outset is set to a positive non-zero length. This is the case in all 3 tests: the margin belt (or even beyond) is painted by the border image.

- - - - - - - 

Chrome 48.0.2564.10 and Chrome 63.0.3218.0 fail the 3 tests.

Firefox 42+, IE11 and Edge 12+ pass the 3 tests.
 
Labels: Needs-Triage-M63
Components: Blink>CSS
Labels: -Type-Compat Hotlist-Interop Type-Bug
Components: -Blink>CSS Blink>Layout
I can have a look on it.
Owner: cavalcantii@chromium.org

Comment 6 by e...@chromium.org, Sep 24 2017

Status: Assigned (was: Unconfirmed)

Comment 7 by goo...@gtalbot.org, Oct 31 2017

4 additional tests using value(s) with percentage unit for the border-image-width declaration:


border-image-width: 50%;
http://www.gtalbot.org/BrowserBugsSection/CSS3Backgrounds/border-image-width-008.xht
In this test, the border-image-width divide the border image area into four (4) parts, not nine parts. The center (fill) area is 0px wide by 0px tall.


border-image-width: 70% 30%;
http://www.gtalbot.org/BrowserBugsSection/CSS3Backgrounds/border-image-width-009.xht
In this test, the border-image-width divide the border image area into four (4) parts, not nine parts. The center (fill) area is 0px wide by 0px tall.


border-image-width: 70% 0% 30% 0%;
http://www.gtalbot.org/BrowserBugsSection/CSS3Backgrounds/border-image-width-010.xht
In this test, the border-image-width divide the border image area into two (2) parts, not nine parts. The center (fill) area is 0px wide by 0px tall.


border-image-width: 0% 70% 0% 30%;
http://www.gtalbot.org/BrowserBugsSection/CSS3Backgrounds/border-image-width-011.xht
In this test, the border-image-width divide the border image area into two (2) parts, not nine parts. The center (fill) area is 0px wide by 0px tall.


Firefox 52 passes these 4 tests.

I will eventually submit those tests to the CSS3 Backgrounds test suite.

Comment 8 by goo...@gtalbot.org, Oct 31 2017

Those 4 additional tests fail in the latest (today's) chromium snapshot: Chromium Version 64.0.3254.0.

Comment 9 by phistuck@gmail.com, Oct 31 2017

#8 - it would be great if you contributed tests you write to the web-platform-tests effort. :)

Comment 10 by f...@opera.com, Feb 14 2018

 Issue 811848  has been merged into this issue.

Sign in to add a comment