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

Issue 882322 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Sep 28
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

[css-contain] Paint containment clips overflow completely

Project Member Reported by r...@igalia.com, Sep 10

Issue description


If you open the following test case in a small window:
http://w3c-test.org/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-clip-002.html
You'll see scrollbars.

These scrollbars shouldn't be present, as the overflow should be completely clipped
and it should have no effect on the ancestors.

Spec (https://drafts.csswg.org/css-contain/#containment-paint):
  "The contents of the element including both the paint of the descendants
   and their geometry must be clipped to the padding edge
   of the element’s principal box, taking corner clipping into account.
   This does not include the creation of any mechanism to access or
   indicate the presence of the clipped content;
   nor does it inhibit the creation of any such mechanism
   through other properties, such as overflow, resize, or text-overflow.
   This is as if overflow: visible was changed to overflow: clip at used value."

 
Can I take this issue if there is no one working on this?
Cc: chrishtr@chromium.org zx6...@gmail.com vmp...@chromium.org
Labels: -Pri-3 Pri-2
Owner: vmp...@chromium.org
Status: Assigned (was: Available)
@2, Yep feel free to take this one. Just as an FYI, we consider this to be a pretty important issue, so I think it should be fixed within a week or so. Let us know if you have questions

I'd start by looking at OverflowClip code in layout box or layout block and find where the difference is between what we do in overflow hidden case and what we do in contain paint case. Also, ComputeOverflow might be a good function to start looking at when investigating this.

I'm assigning to myself for tracking.
zx6658@, I haven't heard back from you. If you're still interested in doing this, please let me know by end of day. Otherwise, I'll work on this.
Project Member

Comment 5 by bugdroid1@chromium.org, Sep 28

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

commit 2bca53a619b70c36e45fa80825f3ac2f275e848c
Author: Vladimir Levin <vmpstr@chromium.org>
Date: Fri Sep 28 20:43:17 2018

Ensure that we establish an overflow clip on paint containment.

This patch ensures that we don't leak geometry outside of paint
contained element, which may incorrectly affect layout oveflow
of other elements.

Added a WPT with a tall clipped div which causes scrollbars without
this patch, and passes with the patch.

R=chrishtr@chromium.org

Bug:  882322 
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I929542d4ad643df8dad1ab388a878bd0892c0c69
Reviewed-on: https://chromium-review.googlesource.com/1246922
Commit-Queue: vmpstr <vmpstr@chromium.org>
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#595201}
[add] https://crrev.com/2bca53a619b70c36e45fa80825f3ac2f275e848c/third_party/WebKit/LayoutTests/external/wpt/css/css-contain/contain-paint-clip-019.html
[add] https://crrev.com/2bca53a619b70c36e45fa80825f3ac2f275e848c/third_party/WebKit/LayoutTests/external/wpt/css/css-contain/reference/contain-paint-clip-019-ref.html
[modify] https://crrev.com/2bca53a619b70c36e45fa80825f3ac2f275e848c/third_party/blink/renderer/core/layout/layout_box.cc

Status: Fixed (was: Assigned)
Project Member

Comment 7 by bugdroid1@chromium.org, Oct 2

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

commit 394a062543f465d94f7e5b177f839389d2bcfe84
Author: Manuel Rego Casasnovas <rego@igalia.com>
Date: Tue Oct 02 08:01:25 2018

[css-contain] Remove tests from TestExpectations that are passing now

r595201 fixed how overflow is clipped in paint containment,
there were two tests failing because of that so we can now unskip them.

TBR=eae@chromium.org,vmpstr@chromium.org

BUG= 882322 

Change-Id: I029cad3f873f90894bd66a531aee2e2e94b62eb0
Reviewed-on: https://chromium-review.googlesource.com/1256682
Commit-Queue: Manuel Rego <rego@igalia.com>
Reviewed-by: Manuel Rego <rego@igalia.com>
Cr-Commit-Position: refs/heads/master@{#595755}
[modify] https://crrev.com/394a062543f465d94f7e5b177f839389d2bcfe84/third_party/WebKit/LayoutTests/TestExpectations

Sign in to add a comment