New issue
Advanced search Search tips

Issue 716174 link

Starred by 12 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug-Regression

Blocking:
issue 719718



Sign in to add a comment

Contained elements do not fill the container's broder when scalling is different than 100%

Reported by spa...@omegatim.com, Apr 27 2017

Issue description

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

Example URL:
https://jsfiddle.net/phmuL7sh/1/

Steps to reproduce the problem:
1. Go to the above URL
2. Set browser zoom to 110%
3. Hover your mouse on the elements as written on the page
 

What is the expected behavior?

What went wrong?
1. The green line on the bottom of the element with gradient background image should not be present. It is a gradient rendering issue, sometimes even 2 pixels wide.

2. The cyan lines next to the border of gray element's top, bottom, left or right should not be present.

Does it occur on multiple sites: Yes

Is it a problem with a plugin? No 

Did this work before? Yes 57

Does this work in other browsers? Yes

Chrome version: 58.0.3029.81  Channel: stable
OS Version: 6.1 (Windows 7, Windows Server 2008 R2)
Flash Version:
 

Comment 1 by rbyers@chromium.org, Apr 27 2017

Description: Show this description

Comment 2 by rbyers@chromium.org, Apr 27 2017

Cc: rbyers@chromium.org
Components: -Blink Blink>Paint
Labels: -OS-Windows -Type-Bug Needs-Bisect OS-All Type-Bug-Regression
Status: Untriaged (was: Unconfirmed)
Reproduced on Chrome Linux 59.0.3063.4 
Verified fine on ChromeOS M57, broken on ChromeOS M58
Let's get a bisect between 57 and 58 to identify the culprit change.
Cc: ligim...@chromium.org
Labels: -Pri-2 Prestable-58.0.3029.81 Needs-Triage-M58 Pri-1
Cc: bsep@chromium.org
May be due to recent changes to force-device-scale-factor, issue :  714365 .
Components: Blink>CSS
Labels: -Needs-Bisect -Needs-Triage-M58 hasbisect-per-revision ReleaseBlock-Stable M-58
Owner: ka...@opera.com
Status: Assigned (was: Untriaged)
Able to reproduce the issue on Windows 10, Ubuntu 14.04 and Mac 10.12.4 using reported version #58.0.3029.81 and latest canary #60.0.3082.3.

Bisect Information:
=====================
Good build: 58.0.3011.0	 Revision(449903)
Bad Build : 58.0.3012.0	 Revision(450199)

Change Log URL: 
https://chromium.googlesource.com/chromium/src/+log/d6df828820be4b0f22b9bed959fb2bd93f84b331..934becac5daa91ea979fb66e4ae21761ca11ebc9

From the above change log suspecting below change
Review URL: https://codereview.chromium.org/2640143005

karlo@ - Could you please check whether this is caused with respect to your change, if not please help us in assigning it to the right owner.

Note: As it seems to be a recent regression hence, adding label ReleaseBlock-Stable.

Thanks...!!
Labels: -OS-All OS-Android OS-Chrome OS-Linux OS-Mac OS-Windows
The problem is probably the lack of zoom/DSF handling in the patch. It should not have been landed without such support due to the high prevalence of users with non-integer DPI settings for Win 10. The test failures in svg/zoom were important and showed this bug.

It is undoubtedly the case that borders are snapping one way and background painting rects are snapping another way. Maybe the "roundf" just need to be floor or ceil. That is, always move the border in.

Another paint team stable regression. I don't think we can easily revert this, but that would be my preference. If you can't fix it within the next couple of days, I'm going to try to revert.

Labels: BugSource-User PaintTeamTriaged-20170428
Labels: -M-58 RegressionFound-58 RegressedIn-58 M-59
I don't think this is a Stable release blocker for M-58, but it is for M-59. While it makes things very ugly, it does not affect the functionality of the sites.
Components: -Blink>CSS
Removing Blink>CSS as this is not Style related as per comments in #6.

Comment 10 by ka...@opera.com, May 1 2017

I'm on it.

This is a side effect of sub-pixel layout, which happens a lot more when zooming or running on a high DPI device.  The following example exhibits the issue without either:

<div style="margin-left: 0.25px">
<img style="border-left: 1.25px solid blue" src=image.png>

Going from left to right, this will render a 1px (rounded down from 1.25px) wide border at 0px (rounded down from 0.25px), while the image will be painted at 2px (rounded up from 1.5px). This will leave a one pixel gap at 1px, and the border won't actually touch the padding box.   I'll change the borders to be painted so that they always touch the padding box; I think this will give better results.
From what I can imagine, I think this won't work either - it will just move the problem from element's interior to the element's exterior, with potential 2px gap between adjacent non-absolute positioned elements with borders, and also double-width borders or even gaps between adjacent absolute positioned elements with borders.

The older rendering was rock solid on all this.

Comment 12 by ka...@opera.com, May 5 2017

This is an issue shared with Edge, which also supports sub pixel borders.  Test case and screenshots attached.  I implemented the solution mentioned above and at least initially it looks fine, but Emil suggested that it might be useful to discuss possible solutions with the Edge team as well.
MS_Edge.png
6.6 KB View Download
artifact.zip
619 bytes Download
chromium.png
11.2 KB View Download
The fix might be to modify the positioned area size in the BackgroundImageGeometry to snap correctly. The values may be coming in as ints too, indicating a need to move the rounding to later in the pipeline.

Comment 14 Deleted

I'm going to take a look at this tomorrow. I thunk we just need to modify the computation of the positioning_area in BackgroundImageGeometry. I'm in that code now and will try some things.
The computation/adjustment of the background must also affect the internal elements. Moreover, when element's width and height depends on internal elements width, height and position, they must be adjusted too. When there are internal absolutely positioned elements they must also be adjusted.

For example:
<div style="border: 1px solid black">
<div style="height:10em"><div>
<div>
Internal div element must not have any distance from it's container border.

Another example:
<div style="position:relative; height:5em; width:10em;border: 1px solid black">
<div style="position:absolute; top:0; bottom:0; left:0; right:0"></div>
</div>
Again - internal element should touch it's container's border without any distance/artifacts;

...or even:

<div style="position:absolute; width:10em; height:5em; border: 1px solid black">
<div style="width:100%; height:100%;"></div>
</div>
I don't know if tha last one was OK in the pre-58 releases, but it should be made to be, if at all possible.

The only way I can imagine doing it right is with several passes of geometry corrections. 

Maybe the issue started when you tried to remove/optimize this, I don't know.

And, last but not the least - it must return the correct (adjusted) values for "getComputedStyle", "offsetWidth", "offsetHeight" etc.


Comment 17 by ka...@opera.com, May 11 2017

positioning_area now aligns with the sub pixel border, which seems wrong, since the background is supposed to align with what's actually painted.  I tweaked that and ran a test in <https://codereview.chromium.org/2874203002#>.  This causes svg/zoom/page/zoom-background-images.html to render differently, but I haven't had time to dig into the exact cause of that yet.

FYI, the SnapSizeToPixel code in the change fixes subpixel padding issues, which can also crop up (albeit so rare that it could be omitted).

Note that this does not fix the issue where the border can detach from the content box (I'm waiting for Emil and MS to weigh in on how to resolve that).  As such, the change makes the gradient box in the test case look fine, but does not improve the second gray box.

Comment 18 by x...@chromium.org, May 11 2017

Blocking: 719718
Reminder that M59 Stable is launch is coming soon (less than 2 weeks)! Your bug is labelled as Stable ReleaseBlock, pls make sure to land the fix and get it merged into the release branch ASAP so it gets enough baking time in Beta (before Stable promotion). Thank you!

Comment 20 by ka...@opera.com, May 22 2017

schenney@ Can you take a quick look at the review and see if you think the changes make sense?  It was a pretty quick stab at it, and I'm not super happy with how it turned out.

Still waiting for proper input from the Microsoft guys, but they have apparently acknowledged the issue.
Microsoft browsers have this bug form IE10 upto the latest Edge. I suspect it will be a long waiting.

Please explain to me, what was the reason for it to become present in Chrome and to be so hard to rectify given that there was a version of Chrome perfect in this respect only a month ago?
Labels: -M-59 M-60

Comment 23 by ajha@chromium.org, May 31 2017

Friendly ping to get an update on the code under review: https://codereview.chromium.org/2874203002#
Cc: schenney@chromium.org
Your bug is tagged as Release block, please have a fix ASAP.We will take only critical merges when close to Stable.
Labels: -M-60 M-61
Let's not block the release on this. While annoying, it's not affecting usability in any significant way and there's too much change involved to be safe for M-60.
Status: Started (was: Assigned)
I'm thinking I might end up fixing this with my work on background image painting. Hence the lack of responsiveness on my part.
Cc: kkaluri@chromium.org
Just to Update,
               Able to reproduce this issue on Mac 10.12.5 with Chrome Stable #59.0.3071.115, Beta #60.0.3112.50, Dev #61.0.3141.7 & Canary #61.0.3152.0


A friendly reminder that M61 branch is coming soon on 07/20! Your bug is labelled as Stable ReleaseBlock, pls make sure to land the fix ASAP to trunk. This way we branch M61 from a high quality trunk. Thank you.
Just to Update,
               Able to reproduce this issue on Mac 10.12.5 with Chrome Stable #59.0.3071.115, Beta #60.0.3112.50, Dev #61.0.3153.4 & Canary #61.0.3155.0

karlo@ Could you please take a look at this issue as it is marked as RB-Stable.
Labels: -ReleaseBlock-Stable
Removing the release block. My thinking has changed on this.
Labels: -M-61
Labels: -Pri-1 Pri-2
Not a P1 at this stage. The issue is exhibited in other browsers and does not damage functionality of the product. It's annoying, certainly, to have all these sub-pixel snapping issues, and I do plan to try to fix the originally reported issue by modifying background image painting.
IE has similar issue, but Chrome didn't since 58. FF renders fine.

Chrome was the best rendering browser before 58 was released. No offence, but I think that another browser deficiencies is not the best reason to lower the priority of this. 
Owner: schenney@chromium.org
I've finally come to the obvious conclusion that we should use the exact same method for computing boxes for backgrounds as we use for computing the inner and/or outer border clips. Working on it now.
Project Member

Comment 35 by bugdroid1@chromium.org, Feb 9 2018

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

commit d0bdc3d320199055a00952199f82626b3869016b
Author: Stephen Chenney <schenney@chromium.org>
Date: Fri Feb 09 21:00:56 2018

Force backgrounds to fill to the border

Background geometry calculations snap the background painting
differently to the way borders snap. This patch forces the background
to match the border whenever possible.

In addition to the new test, our existing zoomed SVG-as-image tests
also improve (they previously did not fill to their border). Some sprite
background tests regress a little. They will be fixed by other
forthcoming changes to background painting.

Also factor the positioning area computation out of the primary
Calculate method.

R=fmalita@chromium.org
BUG=716174

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I42dfc3773655bf14640f67ba90b39e46b219f9ef
Reviewed-on: https://chromium-review.googlesource.com/909450
Commit-Queue: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Cr-Commit-Position: refs/heads/master@{#535823}
[modify] https://crrev.com/d0bdc3d320199055a00952199f82626b3869016b/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v175
[add] https://crrev.com/d0bdc3d320199055a00952199f82626b3869016b/third_party/WebKit/LayoutTests/css3/background/background-subpixel-gradient-fills-border.html
[add] https://crrev.com/d0bdc3d320199055a00952199f82626b3869016b/third_party/WebKit/LayoutTests/platform/mac-mac10.11/virtual/gpu-rasterization/images/color-profile-background-image-cover-expected.png
[add] https://crrev.com/d0bdc3d320199055a00952199f82626b3869016b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/css3/background/background-large-position-and-size-remains-stable-expected.png
[add] https://crrev.com/d0bdc3d320199055a00952199f82626b3869016b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/css3/background/background-subpixel-gradient-fills-border-expected.png
[add] https://crrev.com/d0bdc3d320199055a00952199f82626b3869016b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/css3/background/background-subpixel-gradient-fills-border-expected.txt
[add] https://crrev.com/d0bdc3d320199055a00952199f82626b3869016b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/fast/backgrounds/size/contain-and-cover-zoomed-expected.png
[add] https://crrev.com/d0bdc3d320199055a00952199f82626b3869016b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/images/color-profile-background-image-cover-expected.png
[add] https://crrev.com/d0bdc3d320199055a00952199f82626b3869016b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/svg/zoom/page/zoom-background-image-tiled-expected.png
[add] https://crrev.com/d0bdc3d320199055a00952199f82626b3869016b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/virtual/exotic-color-space/images/color-profile-background-image-cover-expected.png
[add] https://crrev.com/d0bdc3d320199055a00952199f82626b3869016b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/virtual/gpu-rasterization/images/color-profile-background-image-cover-expected.png
[modify] https://crrev.com/d0bdc3d320199055a00952199f82626b3869016b/third_party/WebKit/LayoutTests/platform/win/css3/background/background-large-position-and-size-remains-stable-expected.png
[add] https://crrev.com/d0bdc3d320199055a00952199f82626b3869016b/third_party/WebKit/LayoutTests/platform/win/css3/background/background-subpixel-gradient-fills-border-expected.png
[add] https://crrev.com/d0bdc3d320199055a00952199f82626b3869016b/third_party/WebKit/LayoutTests/platform/win/css3/background/background-subpixel-gradient-fills-border-expected.txt
[add] https://crrev.com/d0bdc3d320199055a00952199f82626b3869016b/third_party/WebKit/LayoutTests/platform/win/fast/backgrounds/size/contain-and-cover-zoomed-expected.png
[add] https://crrev.com/d0bdc3d320199055a00952199f82626b3869016b/third_party/WebKit/LayoutTests/platform/win/images/color-profile-background-image-cover-expected.png
[add] https://crrev.com/d0bdc3d320199055a00952199f82626b3869016b/third_party/WebKit/LayoutTests/platform/win/svg/zoom/page/zoom-background-image-tiled-expected.png
[modify] https://crrev.com/d0bdc3d320199055a00952199f82626b3869016b/third_party/WebKit/LayoutTests/platform/win/svg/zoom/page/zoom-background-images-expected.png
[modify] https://crrev.com/d0bdc3d320199055a00952199f82626b3869016b/third_party/WebKit/LayoutTests/platform/win/virtual/exotic-color-space/images/color-profile-background-image-cover-expected.png
[modify] https://crrev.com/d0bdc3d320199055a00952199f82626b3869016b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/images/color-profile-background-image-cover-expected.png
[modify] https://crrev.com/d0bdc3d320199055a00952199f82626b3869016b/third_party/WebKit/Source/core/paint/BackgroundImageGeometry.cpp
[modify] https://crrev.com/d0bdc3d320199055a00952199f82626b3869016b/third_party/WebKit/Source/core/paint/BackgroundImageGeometry.h

Project Member

Comment 36 by bugdroid1@chromium.org, Feb 9 2018

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

commit 33f8d267fa6c040049ba1c9690b1f5bdae81eb3d
Author: Megan Jablonski <megjablon@chromium.org>
Date: Fri Feb 09 22:49:06 2018

Revert "Force backgrounds to fill to the border"

This reverts commit d0bdc3d320199055a00952199f82626b3869016b.

Reason for revert: Causing buildbot failures

https://uberchromegw.corp.google.com/i/chromium.webkit/builders/WebKit%20Mac10.11

https://uberchromegw.corp.google.com/i/chromium.webkit/builders/WebKit%20Mac10.11/builds/28761

Original change's description:
> Force backgrounds to fill to the border
> 
> Background geometry calculations snap the background painting
> differently to the way borders snap. This patch forces the background
> to match the border whenever possible.
> 
> In addition to the new test, our existing zoomed SVG-as-image tests
> also improve (they previously did not fill to their border). Some sprite
> background tests regress a little. They will be fixed by other
> forthcoming changes to background painting.
> 
> Also factor the positioning area computation out of the primary
> Calculate method.
> 
> R=​fmalita@chromium.org
> BUG=716174
> 
> Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
> Change-Id: I42dfc3773655bf14640f67ba90b39e46b219f9ef
> Reviewed-on: https://chromium-review.googlesource.com/909450
> Commit-Queue: Stephen Chenney <schenney@chromium.org>
> Reviewed-by: Florin Malita <fmalita@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#535823}

TBR=fmalita@chromium.org,schenney@chromium.org

Change-Id: Ie879480be916dd62ab70644ce827e556af65e873
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 716174
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Reviewed-on: https://chromium-review.googlesource.com/911991
Reviewed-by: Megan Jablonski <megjablon@chromium.org>
Commit-Queue: Megan Jablonski <megjablon@chromium.org>
Cr-Commit-Position: refs/heads/master@{#535865}
[modify] https://crrev.com/33f8d267fa6c040049ba1c9690b1f5bdae81eb3d/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v175
[delete] https://crrev.com/4a693deb10de9ab3c4bf1ff929badc59887ef0a5/third_party/WebKit/LayoutTests/css3/background/background-subpixel-gradient-fills-border.html
[delete] https://crrev.com/4a693deb10de9ab3c4bf1ff929badc59887ef0a5/third_party/WebKit/LayoutTests/platform/mac-mac10.11/virtual/gpu-rasterization/images/color-profile-background-image-cover-expected.png
[delete] https://crrev.com/4a693deb10de9ab3c4bf1ff929badc59887ef0a5/third_party/WebKit/LayoutTests/platform/mac-mac10.12/css3/background/background-large-position-and-size-remains-stable-expected.png
[delete] https://crrev.com/4a693deb10de9ab3c4bf1ff929badc59887ef0a5/third_party/WebKit/LayoutTests/platform/mac-mac10.12/css3/background/background-subpixel-gradient-fills-border-expected.png
[delete] https://crrev.com/4a693deb10de9ab3c4bf1ff929badc59887ef0a5/third_party/WebKit/LayoutTests/platform/mac-mac10.12/css3/background/background-subpixel-gradient-fills-border-expected.txt
[delete] https://crrev.com/4a693deb10de9ab3c4bf1ff929badc59887ef0a5/third_party/WebKit/LayoutTests/platform/mac-mac10.12/fast/backgrounds/size/contain-and-cover-zoomed-expected.png
[delete] https://crrev.com/4a693deb10de9ab3c4bf1ff929badc59887ef0a5/third_party/WebKit/LayoutTests/platform/mac-mac10.12/images/color-profile-background-image-cover-expected.png
[delete] https://crrev.com/4a693deb10de9ab3c4bf1ff929badc59887ef0a5/third_party/WebKit/LayoutTests/platform/mac-mac10.12/svg/zoom/page/zoom-background-image-tiled-expected.png
[delete] https://crrev.com/4a693deb10de9ab3c4bf1ff929badc59887ef0a5/third_party/WebKit/LayoutTests/platform/mac-mac10.12/virtual/exotic-color-space/images/color-profile-background-image-cover-expected.png
[delete] https://crrev.com/4a693deb10de9ab3c4bf1ff929badc59887ef0a5/third_party/WebKit/LayoutTests/platform/mac-mac10.12/virtual/gpu-rasterization/images/color-profile-background-image-cover-expected.png
[modify] https://crrev.com/33f8d267fa6c040049ba1c9690b1f5bdae81eb3d/third_party/WebKit/LayoutTests/platform/win/css3/background/background-large-position-and-size-remains-stable-expected.png
[delete] https://crrev.com/4a693deb10de9ab3c4bf1ff929badc59887ef0a5/third_party/WebKit/LayoutTests/platform/win/css3/background/background-subpixel-gradient-fills-border-expected.png
[delete] https://crrev.com/4a693deb10de9ab3c4bf1ff929badc59887ef0a5/third_party/WebKit/LayoutTests/platform/win/css3/background/background-subpixel-gradient-fills-border-expected.txt
[delete] https://crrev.com/4a693deb10de9ab3c4bf1ff929badc59887ef0a5/third_party/WebKit/LayoutTests/platform/win/fast/backgrounds/size/contain-and-cover-zoomed-expected.png
[delete] https://crrev.com/4a693deb10de9ab3c4bf1ff929badc59887ef0a5/third_party/WebKit/LayoutTests/platform/win/images/color-profile-background-image-cover-expected.png
[delete] https://crrev.com/4a693deb10de9ab3c4bf1ff929badc59887ef0a5/third_party/WebKit/LayoutTests/platform/win/svg/zoom/page/zoom-background-image-tiled-expected.png
[modify] https://crrev.com/33f8d267fa6c040049ba1c9690b1f5bdae81eb3d/third_party/WebKit/LayoutTests/platform/win/svg/zoom/page/zoom-background-images-expected.png
[modify] https://crrev.com/33f8d267fa6c040049ba1c9690b1f5bdae81eb3d/third_party/WebKit/LayoutTests/platform/win/virtual/exotic-color-space/images/color-profile-background-image-cover-expected.png
[modify] https://crrev.com/33f8d267fa6c040049ba1c9690b1f5bdae81eb3d/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/images/color-profile-background-image-cover-expected.png
[modify] https://crrev.com/33f8d267fa6c040049ba1c9690b1f5bdae81eb3d/third_party/WebKit/Source/core/paint/BackgroundImageGeometry.cpp
[modify] https://crrev.com/33f8d267fa6c040049ba1c9690b1f5bdae81eb3d/third_party/WebKit/Source/core/paint/BackgroundImageGeometry.h

Project Member

Comment 37 by bugdroid1@chromium.org, Feb 12 2018

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

commit 8430ff876f5da79f02ac1de280d00f52f22d03bc
Author: Stephen Chenney <schenney@chromium.org>
Date: Mon Feb 12 15:04:33 2018

[PE] Reland: Force backgrounds to fill to the border

Background geometry calculations snap the background painting
differently to the way borders snap. This patch forces the background
to match the border whenever possible.

In addition to the new test, our existing zoomed SVG-as-image tests
also improve (they previously did not fill to their border). Some sprite
background tests regress a little. They will be fixed by other
forthcoming changes to background painting.

Also factor the positioning area computation out of the primary
Calculate method.

TBR=fmalita@chromium.org
BUG=716174

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Reviewed-on: https://chromium-review.googlesource.com/909450
Commit-Queue: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#535823}
Change-Id: I0165da6a4448e1452626fc0045011a8216ed33b4
Reviewed-on: https://chromium-review.googlesource.com/913588
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#536076}
[modify] https://crrev.com/8430ff876f5da79f02ac1de280d00f52f22d03bc/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v175
[modify] https://crrev.com/8430ff876f5da79f02ac1de280d00f52f22d03bc/third_party/WebKit/LayoutTests/TestExpectations
[add] https://crrev.com/8430ff876f5da79f02ac1de280d00f52f22d03bc/third_party/WebKit/LayoutTests/css3/background/background-subpixel-gradient-fills-border.html
[add] https://crrev.com/8430ff876f5da79f02ac1de280d00f52f22d03bc/third_party/WebKit/LayoutTests/platform/mac-mac10.11/virtual/gpu-rasterization/images/color-profile-background-image-cover-expected.png
[add] https://crrev.com/8430ff876f5da79f02ac1de280d00f52f22d03bc/third_party/WebKit/LayoutTests/platform/mac-mac10.12/css3/background/background-large-position-and-size-remains-stable-expected.png
[add] https://crrev.com/8430ff876f5da79f02ac1de280d00f52f22d03bc/third_party/WebKit/LayoutTests/platform/mac-mac10.12/css3/background/background-subpixel-gradient-fills-border-expected.png
[add] https://crrev.com/8430ff876f5da79f02ac1de280d00f52f22d03bc/third_party/WebKit/LayoutTests/platform/mac-mac10.12/css3/background/background-subpixel-gradient-fills-border-expected.txt
[add] https://crrev.com/8430ff876f5da79f02ac1de280d00f52f22d03bc/third_party/WebKit/LayoutTests/platform/mac-mac10.12/fast/backgrounds/size/contain-and-cover-zoomed-expected.png
[add] https://crrev.com/8430ff876f5da79f02ac1de280d00f52f22d03bc/third_party/WebKit/LayoutTests/platform/mac-mac10.12/images/color-profile-background-image-cover-expected.png
[add] https://crrev.com/8430ff876f5da79f02ac1de280d00f52f22d03bc/third_party/WebKit/LayoutTests/platform/mac-mac10.12/svg/zoom/page/zoom-background-image-tiled-expected.png
[add] https://crrev.com/8430ff876f5da79f02ac1de280d00f52f22d03bc/third_party/WebKit/LayoutTests/platform/mac-mac10.12/virtual/exotic-color-space/images/color-profile-background-image-cover-expected.png
[add] https://crrev.com/8430ff876f5da79f02ac1de280d00f52f22d03bc/third_party/WebKit/LayoutTests/platform/mac-mac10.12/virtual/gpu-rasterization/images/color-profile-background-image-cover-expected.png
[modify] https://crrev.com/8430ff876f5da79f02ac1de280d00f52f22d03bc/third_party/WebKit/LayoutTests/platform/win/css3/background/background-large-position-and-size-remains-stable-expected.png
[add] https://crrev.com/8430ff876f5da79f02ac1de280d00f52f22d03bc/third_party/WebKit/LayoutTests/platform/win/css3/background/background-subpixel-gradient-fills-border-expected.png
[add] https://crrev.com/8430ff876f5da79f02ac1de280d00f52f22d03bc/third_party/WebKit/LayoutTests/platform/win/css3/background/background-subpixel-gradient-fills-border-expected.txt
[add] https://crrev.com/8430ff876f5da79f02ac1de280d00f52f22d03bc/third_party/WebKit/LayoutTests/platform/win/fast/backgrounds/size/contain-and-cover-zoomed-expected.png
[add] https://crrev.com/8430ff876f5da79f02ac1de280d00f52f22d03bc/third_party/WebKit/LayoutTests/platform/win/images/color-profile-background-image-cover-expected.png
[add] https://crrev.com/8430ff876f5da79f02ac1de280d00f52f22d03bc/third_party/WebKit/LayoutTests/platform/win/svg/zoom/page/zoom-background-image-tiled-expected.png
[modify] https://crrev.com/8430ff876f5da79f02ac1de280d00f52f22d03bc/third_party/WebKit/LayoutTests/platform/win/svg/zoom/page/zoom-background-images-expected.png
[modify] https://crrev.com/8430ff876f5da79f02ac1de280d00f52f22d03bc/third_party/WebKit/LayoutTests/platform/win/virtual/exotic-color-space/images/color-profile-background-image-cover-expected.png
[modify] https://crrev.com/8430ff876f5da79f02ac1de280d00f52f22d03bc/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/images/color-profile-background-image-cover-expected.png
[modify] https://crrev.com/8430ff876f5da79f02ac1de280d00f52f22d03bc/third_party/WebKit/Source/core/paint/BackgroundImageGeometry.cpp
[modify] https://crrev.com/8430ff876f5da79f02ac1de280d00f52f22d03bc/third_party/WebKit/Source/core/paint/BackgroundImageGeometry.h

Components: -Blink>Paint Blink>Layout
Owner: ----
Status: Available (was: Started)
Summary: Contained elements do not fill the container's broder when scalling is different than 100% (was: Rendering artifacts when scalling is different than 100%)
I'm done with the background case for this, but the element inside element case is still unresolved, and that is layout, I think, as it reflects the size of the element itself, not just its painted size.

Comment 39 by e...@chromium.org, Feb 14 2018

Cc: mstensho@chromium.org ikilpatrick@chromium.org
Is what I attach here a good test case for that?
tc.html
280 bytes View Download
"zoom=1.25" is useless. It becomes visible only in some zoom settings, depending on default zoom on the machine you are running it. For example on my machine I must set zoom to 90% for it to become visible. System zoom is 125%, Chrome default zoom is 100%.

Fiddle in the first post shows it much better IMHO.
Labels: -OS-Linux -OS-Android -OS-Windows -OS-Chrome -OS-Mac
I'm trying to narrow down the test case. The fiddle contains seemingly irrelevant things for the remaining problem, such as hover effects. I can reproduce *a* problem with my test (and I hope it's the right one), when I load it in content_shell, and that's what we need, both when debugging to figure out how to fix it, and also for automatic regression testing.
schenney@chromium.org, is it available in Chrome 65? Because in 65 now background filling behaves exactly like inside element, so it is again wrong. It is clearly visible in the fiddle in the first post (red lines between the gradient and the borders of the first element that changes size on hover).
The background fill patch is in M-66 and was not merged back. You should see the improvement in the M-66 release which is coming up this month.
Project Member

Comment 45 by bugdroid1@chromium.org, Jun 20 2018

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

commit aae829ecb980744bfc0c69323da928775aca2b47
Author: Stephen Chenney <schenney@chromium.org>
Date: Wed Jun 20 17:38:47 2018

Revert "[PE] Reland: Force backgrounds to fill to the border"

This reverts commit 8430ff876f5da79f02ac1de280d00f52f22d03bc.

Reason for revert: breaks background-position with percentage lengths
and large sprite maps.  http://crbug.com/825239 

This is a manual revert that only covers some portions of the change.
Also adds a test for the case that was broken.

Original change's description:
> [PE] Reland: Force backgrounds to fill to the border
>
> Background geometry calculations snap the background painting
> differently to the way borders snap. This patch forces the background
> to match the border whenever possible.
>
> In addition to the new test, our existing zoomed SVG-as-image tests
> also improve (they previously did not fill to their border). Some sprite
> background tests regress a little. They will be fixed by other
> forthcoming changes to background painting.
>
> Also factor the positioning area computation out of the primary
> Calculate method.
>
> TBR=fmalita@chromium.org
> BUG=716174
>
> Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
> Reviewed-on: https://chromium-review.googlesource.com/909450
> Commit-Queue: Stephen Chenney <schenney@chromium.org>
> Reviewed-by: Florin Malita <fmalita@chromium.org>
> Cr-Original-Commit-Position: refs/heads/master@{#535823}
> Change-Id: I0165da6a4448e1452626fc0045011a8216ed33b4
> Reviewed-on: https://chromium-review.googlesource.com/913588
> Reviewed-by: Stephen Chenney <schenney@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#536076}

R=fmalita@chromium.org

Bug: 716174,  825239 
Change-Id: Iaf972e6963bbc578b0600b295e679ae987a9a5cd
Reviewed-on: https://chromium-review.googlesource.com/1106517
Commit-Queue: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568906}
[delete] https://crrev.com/b62aafe923b1c7b6ce4b0bbb5218aad27d149976/third_party/WebKit/LayoutTests/css3/background/background-subpixel-gradient-fills-border-expected.txt
[delete] https://crrev.com/b62aafe923b1c7b6ce4b0bbb5218aad27d149976/third_party/WebKit/LayoutTests/css3/background/background-subpixel-gradient-fills-border.html
[add] https://crrev.com/aae829ecb980744bfc0c69323da928775aca2b47/third_party/WebKit/LayoutTests/css3/background/resources/tall-narrow-spritemap.png
[rename] https://crrev.com/aae829ecb980744bfc0c69323da928775aca2b47/third_party/WebKit/LayoutTests/css3/background/zoomed-background-position-accuracy-2-expected.png
[add] https://crrev.com/aae829ecb980744bfc0c69323da928775aca2b47/third_party/WebKit/LayoutTests/css3/background/zoomed-background-position-accuracy-2-expected.txt
[add] https://crrev.com/aae829ecb980744bfc0c69323da928775aca2b47/third_party/WebKit/LayoutTests/css3/background/zoomed-background-position-accuracy-2.html
[modify] https://crrev.com/aae829ecb980744bfc0c69323da928775aca2b47/third_party/WebKit/LayoutTests/fast/backgrounds/size/contain-and-cover-zoomed-expected.png
[modify] https://crrev.com/aae829ecb980744bfc0c69323da928775aca2b47/third_party/WebKit/LayoutTests/images/color-profile-background-image-cover-expected.png
[modify] https://crrev.com/aae829ecb980744bfc0c69323da928775aca2b47/third_party/WebKit/LayoutTests/platform/mac/css3/background/background-large-position-and-size-remains-stable-expected.png
[modify] https://crrev.com/aae829ecb980744bfc0c69323da928775aca2b47/third_party/WebKit/LayoutTests/platform/win/css3/background/background-large-position-and-size-remains-stable-expected.png
[modify] https://crrev.com/aae829ecb980744bfc0c69323da928775aca2b47/third_party/WebKit/LayoutTests/platform/win/svg/zoom/page/zoom-background-images-expected.png
[modify] https://crrev.com/aae829ecb980744bfc0c69323da928775aca2b47/third_party/WebKit/LayoutTests/svg/zoom/page/zoom-background-image-tiled-expected.png
[modify] https://crrev.com/aae829ecb980744bfc0c69323da928775aca2b47/third_party/WebKit/LayoutTests/virtual/exotic-color-space/images/color-profile-background-image-cover-expected.png
[modify] https://crrev.com/aae829ecb980744bfc0c69323da928775aca2b47/third_party/WebKit/LayoutTests/virtual/gpu-rasterization/images/color-profile-background-image-cover-expected.png
[modify] https://crrev.com/aae829ecb980744bfc0c69323da928775aca2b47/third_party/blink/renderer/core/paint/background_image_geometry.cc
[modify] https://crrev.com/aae829ecb980744bfc0c69323da928775aca2b47/third_party/blink/renderer/core/paint/background_image_geometry.h

Project Member

Comment 46 by bugdroid1@chromium.org, Jun 26 2018

Labels: merge-merged-3440
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8848dd04661b32432eeb7adbeed4d62e98c50389

commit 8848dd04661b32432eeb7adbeed4d62e98c50389
Author: Stephen Chenney <schenney@chromium.org>
Date: Tue Jun 26 20:40:24 2018

Revert "[PE] Reland: Force backgrounds to fill to the border"

This reverts commit 8430ff876f5da79f02ac1de280d00f52f22d03bc.

Reason for revert: breaks background-position with percentage lengths
and large sprite maps.  http://crbug.com/825239 

This is a manual revert that only covers some portions of the change.
Also adds a test for the case that was broken.

Original change's description:
> [PE] Reland: Force backgrounds to fill to the border
>
> Background geometry calculations snap the background painting
> differently to the way borders snap. This patch forces the background
> to match the border whenever possible.
>
> In addition to the new test, our existing zoomed SVG-as-image tests
> also improve (they previously did not fill to their border). Some sprite
> background tests regress a little. They will be fixed by other
> forthcoming changes to background painting.
>
> Also factor the positioning area computation out of the primary
> Calculate method.
>
> TBR=fmalita@chromium.org
> BUG=716174
>
> Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
> Reviewed-on: https://chromium-review.googlesource.com/909450
> Commit-Queue: Stephen Chenney <schenney@chromium.org>
> Reviewed-by: Florin Malita <fmalita@chromium.org>
> Cr-Original-Commit-Position: refs/heads/master@{#535823}
> Change-Id: I0165da6a4448e1452626fc0045011a8216ed33b4
> Reviewed-on: https://chromium-review.googlesource.com/913588
> Reviewed-by: Stephen Chenney <schenney@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#536076}

R=fmalita@chromium.org
TBR=schenney@chromium.org

(cherry picked from commit aae829ecb980744bfc0c69323da928775aca2b47)

Bug: 716174,  825239 
Change-Id: Iaf972e6963bbc578b0600b295e679ae987a9a5cd
Reviewed-on: https://chromium-review.googlesource.com/1106517
Commit-Queue: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#568906}
Reviewed-on: https://chromium-review.googlesource.com/1115563
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/branch-heads/3440@{#538}
Cr-Branched-From: 010ddcfda246975d194964ccf20038ebbdec6084-refs/heads/master@{#561733}
[delete] https://crrev.com/8062ce20f2b0409ac74c68bfa42e665456f92598/third_party/WebKit/LayoutTests/css3/background/background-subpixel-gradient-fills-border-expected.txt
[delete] https://crrev.com/8062ce20f2b0409ac74c68bfa42e665456f92598/third_party/WebKit/LayoutTests/css3/background/background-subpixel-gradient-fills-border.html
[add] https://crrev.com/8848dd04661b32432eeb7adbeed4d62e98c50389/third_party/WebKit/LayoutTests/css3/background/resources/tall-narrow-spritemap.png
[rename] https://crrev.com/8848dd04661b32432eeb7adbeed4d62e98c50389/third_party/WebKit/LayoutTests/css3/background/zoomed-background-position-accuracy-2-expected.png
[add] https://crrev.com/8848dd04661b32432eeb7adbeed4d62e98c50389/third_party/WebKit/LayoutTests/css3/background/zoomed-background-position-accuracy-2-expected.txt
[add] https://crrev.com/8848dd04661b32432eeb7adbeed4d62e98c50389/third_party/WebKit/LayoutTests/css3/background/zoomed-background-position-accuracy-2.html
[modify] https://crrev.com/8848dd04661b32432eeb7adbeed4d62e98c50389/third_party/WebKit/LayoutTests/fast/backgrounds/size/contain-and-cover-zoomed-expected.png
[modify] https://crrev.com/8848dd04661b32432eeb7adbeed4d62e98c50389/third_party/WebKit/LayoutTests/images/color-profile-background-image-cover-expected.png
[modify] https://crrev.com/8848dd04661b32432eeb7adbeed4d62e98c50389/third_party/WebKit/LayoutTests/platform/mac/css3/background/background-large-position-and-size-remains-stable-expected.png
[modify] https://crrev.com/8848dd04661b32432eeb7adbeed4d62e98c50389/third_party/WebKit/LayoutTests/platform/win/css3/background/background-large-position-and-size-remains-stable-expected.png
[modify] https://crrev.com/8848dd04661b32432eeb7adbeed4d62e98c50389/third_party/WebKit/LayoutTests/platform/win/svg/zoom/page/zoom-background-images-expected.png
[modify] https://crrev.com/8848dd04661b32432eeb7adbeed4d62e98c50389/third_party/WebKit/LayoutTests/svg/zoom/page/zoom-background-image-tiled-expected.png
[modify] https://crrev.com/8848dd04661b32432eeb7adbeed4d62e98c50389/third_party/WebKit/LayoutTests/virtual/exotic-color-space/images/color-profile-background-image-cover-expected.png
[modify] https://crrev.com/8848dd04661b32432eeb7adbeed4d62e98c50389/third_party/WebKit/LayoutTests/virtual/gpu-rasterization/images/color-profile-background-image-cover-expected.png
[modify] https://crrev.com/8848dd04661b32432eeb7adbeed4d62e98c50389/third_party/blink/renderer/core/paint/background_image_geometry.cc
[modify] https://crrev.com/8848dd04661b32432eeb7adbeed4d62e98c50389/third_party/blink/renderer/core/paint/background_image_geometry.h

Sign in to add a comment