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

"overflow:scroll" does not clip transform scaled iframe

Reported by babata...@gmail.com, Feb 21 2018

Issue description

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

Example URL:
https://jsfiddle.net/01m6bvb4/11/

Steps to reproduce the problem:
1. Open https://jsfiddle.net/01m6bvb4/11/

What is the expected behavior?
The scaled iframe does not overflow the <div> element.

What went wrong?
The iframe visually overflows.

Does it occur on multiple sites: N/A

Is it a problem with a plugin? No 

Did this work before? Yes Version 64.0.3282.167 (Official Build) (64-bit)

Does this work in other browsers? Yes

Chrome version: 66.0.3350.0  Channel: canary
OS Version: 10.0
Flash Version: 

This issue seems not happen when the system dpi scaling is larger than 150%.
 
result.png
33.7 KB View Download
Labels: Needs-Bisect Needs-Triage-M66
Labels: Needs-Triage-M64
Components: Blink>Paint
Labels: -Pri-2 -Type-Compat -Needs-Bisect hasbisect-per-revision ReleaseBlock-Stable Triaged-ET RegressedIn-65 M-65 FoundIn-66 Target-66 Target-65 FoundIn-65 OS-Linux Pri-1 Type-Bug-Regression
Owner: schenney@chromium.org
Status: Assigned (was: Unconfirmed)
Able to reproduce the issue on Windows 10 and Ubuntu 14.04 using chrome reported version #66.0.3350.0 and latest beta #65.0.3325.88. Issue is not seen in OS-mac.

Bisect Information:
=====================
Good build: 65.0.3287.0
Bad Build : 65.0.3288.0

Change Log URL: 
https://chromium.googlesource.com/chromium/src/+log/afccf64114b233fe65af7526b2f015efb2d1e7c1..88986f832c463a210324d7d9cf9b5213f7b69f63

From the above change log suspecting below change
Change-Id: I5af847e68aa2d3ee8e76dbbd25eef087dbac4060
Reviewed-on: https://chromium-review.googlesource.com/772779

schenney@ - 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: Adding stable blocker for M-65 as it seems to be a recent regression. Please feel free to remove the same if not appropriate.
Thanks...!!
Labels: -Needs-Triage-M64 -Needs-Triage-M66
It's plausibly me. I'll look into it shortly.

Comment 5 by gov...@chromium.org, Feb 22 2018

M65 Stable promotion is coming VERY soon. Your bug is labelled as Stable ReleaseBlock, pls make sure to land the fix and request a merge into the release branch ASAP. Merge has to happen latest by 4:00 PM PT Monday (02/26/18) in order to make it to last M65 beta release next week. Thank you.
Gentle ping !!
It is marked as stable blocker for M65. Please merge fix ASAP as M65 stable promotion is scheduled today night.

Thanks..!
Labels: -ReleaseBlock-Stable
I don't think this should block the release. Based on the time for it to be reported, and the special circumstances to make it happen, it's safe to promote M-65 without the fix.

Removing ReleaseBlock label.

Comment 8 by chrishtr@google.com, Feb 26 2018

Labels: -Target-65 ReleaseBlock-Stable
Let's aim to fix for 66.

Comment 9 by gov...@chromium.org, Feb 26 2018

Labels: -M-65
Removing "M-65" per comment #7 & #8.
Project Member

Comment 10 by sheriffbot@chromium.org, Feb 27 2018

Cc: chrishtr@google.com krajshree@chromium.org
This issue is marked as a release blocker with no milestone associated. Please add an appropriate milestone.

All release blocking issues should have milestones associated to it, so that the issue can tracked and the fixes can be pushed promptly.

Thanks for your time! To disable nags, add the Disable-Nags label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: M-66
This was working in a local tip of trunk build, but bisect results still show it broken. I'm trying to figure out what is happening, though I suspect SPv1.75 has fixed it.
175 is turned off at ToT..
Scrolling is not necessary. I think we just have the ordering of the clip and the transform wrong, so that the clip is being transformed when it should not.
composited-iframe-inside-overflow-scroller.html
353 bytes View Download
And the iframe doesn't even need content.
composited-iframe-inside-overflow-scroller.html
245 bytes View Download
Actually, no clip at all.
Status: Started (was: Assigned)
Project Member

Comment 18 by bugdroid1@chromium.org, Mar 8 2018

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

commit d03257dd6231949a244fea41890a35b7707f5f08
Author: Stephen Chenney <schenney@chromium.org>
Date: Thu Mar 08 23:21:15 2018

Fix clipping for iframes

The clip for iframes was missing when the iframe did not have its
own composited layer. Fix the overly aggressive "NeedsClip"
code to not return false for all LayoutEmbeddedContent in most
paint modes.

R=chrishtr@chromium.org
BUG=814177

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Iae77a367839f8dfccda817a31ab1cc988ecd0436
Reviewed-on: https://chromium-review.googlesource.com/956031
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Commit-Queue: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#541927}
[add] https://crrev.com/d03257dd6231949a244fea41890a35b7707f5f08/third_party/WebKit/LayoutTests/paint/overflow/transformed-iframe-clipping-expected.html
[add] https://crrev.com/d03257dd6231949a244fea41890a35b7707f5f08/third_party/WebKit/LayoutTests/paint/overflow/transformed-iframe-clipping.html
[modify] https://crrev.com/d03257dd6231949a244fea41890a35b7707f5f08/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp

Labels: Merge-Request-66
This bug only affects M-65 and M-66 because M-67 has Slimming Paint V1.75 turned on. Requesting merge to the affected versions, starting with M-66.

This is a safe fix and in fact we can't get Canary data on it due to the launch of SPv175. So I strongly advocate an M-66 merge then a pause to see if anything breaks.
Project Member

Comment 20 by sheriffbot@chromium.org, Mar 10 2018

Labels: -Merge-Request-66 Merge-Approved-66 Hotlist-Merge-Approved
Your change meets the bar and is auto-approved for M66. Please go ahead and merge the CL to branch 3359 manually. Please contact milestone owner if you have questions.
Owners: cmasso@(Android), cmasso@(iOS), josafat@(ChromeOS), abdulsyed@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 21 by bugdroid1@chromium.org, Mar 12 2018

Labels: -merge-approved-66 merge-merged-3359
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/73e29941f0fa7aeadb0dcbf07422942c31cb7354

commit 73e29941f0fa7aeadb0dcbf07422942c31cb7354
Author: Stephen Chenney <schenney@chromium.org>
Date: Mon Mar 12 13:21:03 2018

Fix clipping for iframes

M-66 Merge.

The clip for iframes was missing when the iframe did not have its
own composited layer. Fix the overly aggressive "NeedsClip"
code to not return false for all LayoutEmbeddedContent in most
paint modes.

TBR=​chrishtr@chromium.org
BUG=814177

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Iae77a367839f8dfccda817a31ab1cc988ecd0436
Reviewed-on: https://chromium-review.googlesource.com/956031
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Commit-Queue: Stephen Chenney <schenney@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#541927}(cherry picked from commit d03257dd6231949a244fea41890a35b7707f5f08)
Reviewed-on: https://chromium-review.googlesource.com/958983
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/branch-heads/3359@{#159}
Cr-Branched-From: 66afc5e5d10127546cc4b98b9117aff588b5e66b-refs/heads/master@{#540276}
[add] https://crrev.com/73e29941f0fa7aeadb0dcbf07422942c31cb7354/third_party/WebKit/LayoutTests/paint/overflow/transformed-iframe-clipping-expected.html
[add] https://crrev.com/73e29941f0fa7aeadb0dcbf07422942c31cb7354/third_party/WebKit/LayoutTests/paint/overflow/transformed-iframe-clipping.html
[modify] https://crrev.com/73e29941f0fa7aeadb0dcbf07422942c31cb7354/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp

Status: Fixed (was: Started)
Cc: schenney@chromium.org vamshi.kommuri@chromium.org
 Issue 822180  has been merged into this issue.
Cc: sindhu.chelamcherla@chromium.org
 Issue 823615  has been merged into this issue.
Cc: wangxianzhu@chromium.org pbomm...@chromium.org
 Issue 823676  has been merged into this issue.
 Issue 824696  has been merged into this issue.
Now we've had 5 reports for this, including this one. I regret not M-65 merging it way back when I first fixed it, but at that point we had seen no M-65 beta or canary reports and only 1 M-66 report, so my belief was that the issue was rare. And I was too slow to fix it for external reasons.

Now that we're almost half way through the M-65 lifetime, I still don't feel comfortable arguing for a M-65 merge given all the challenges we've already had with M-65.

Release managers could argue otherwise if so inclined.
Cc: susan.boorgula@chromium.org
 Issue 824788  has been merged into this issue.
Labels: Merge-Request-65
Status: Assigned (was: Fixed)
Re-opening this bug.

I think this bug is quite bad. Overflow clipping of non-composited embedded
content is pretty badly broken. It affects iframes, videos, plugins, and objects containing
SVG.

It doesn't always trigger for iframes, due to some redundancy in the code for clipping,
but the use-cases are common enough.

I would like to request merging this to M65 and re-spinning if possible. I suggest at least
merging it, with some testing, to get it ready for re-spin if necessary.
Labels: Target-65
Labels: M-65 OS-Android OS-Chrome OS-Mac
Approving merge to M65 branch 3325 based on comment #29 and per offline chat with  chrishtr@. There is no plan to respin M65 just for this as of now.
Labels: -Merge-Request-65 Merge-Approved-65
Cc: gov...@chromium.org
Thank you chrishtr@ for offer to write a postmortem. Please see go/chrome-postmortems for the process to follow.
Merged as https://chromium.googlesource.com/chromium/src/+/96e6c03055b5309abc5d078f8ea2e3d636a50957

Stephen, can you please write the postmortem?

Also, please add testcases for the various situations that lead to this bug so we can avoid
future regression, including SVG/video.
Labels: -Merge-Approved-65 merge-merged-3325
Thank you chrishtr@. Already merge to M65 at comment #35.

Testers: please test the examples in all of the bugs dup'ed into this one,
plus the main example.
Project Member

Comment 38 by bugdroid1@chromium.org, Mar 23 2018

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

commit 96e6c03055b5309abc5d078f8ea2e3d636a50957
Author: Chris Harrelson <chrishtr@chromium.org>
Date: Fri Mar 23 18:18:49 2018

Fix clipping for iframes

The clip for iframes was missing when the iframe did not have its
own composited layer. Fix the overly aggressive "NeedsClip"
code to not return false for all LayoutEmbeddedContent in most
paint modes.

R=chrishtr@chromium.org
TBR=schenney@chromium.org
BUG=814177

(cherry picked from commit d03257dd6231949a244fea41890a35b7707f5f08)

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Iae77a367839f8dfccda817a31ab1cc988ecd0436
Reviewed-on: https://chromium-review.googlesource.com/956031
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Commit-Queue: Stephen Chenney <schenney@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#541927}
Reviewed-on: https://chromium-review.googlesource.com/978520
Cr-Commit-Position: refs/branch-heads/3325@{#735}
Cr-Branched-From: bc084a8b5afa3744a74927344e304c02ae54189f-refs/heads/master@{#530369}
[add] https://crrev.com/96e6c03055b5309abc5d078f8ea2e3d636a50957/third_party/WebKit/LayoutTests/paint/overflow/transformed-iframe-clipping-expected.html
[add] https://crrev.com/96e6c03055b5309abc5d078f8ea2e3d636a50957/third_party/WebKit/LayoutTests/paint/overflow/transformed-iframe-clipping.html
[modify] https://crrev.com/96e6c03055b5309abc5d078f8ea2e3d636a50957/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp

 Issue 823638  has been merged into this issue.
Cc: jmukthavaram@chromium.org
Tested this issue on Windows 7, Mac 10.13.3 and Linux(Debian Rodate) using #  65.0.3325.189 (Windows Chrome clang build) as per the  test instructions mentioned in below document .

https://docs.google.com/document/d/1KJwvDY5fcvdP0RnZvZueZb2ZYDGmmYRxkrFG4r8libY/edit

Observation:
-----------

Tested all the html files provided in the document (6 issues html files) & observed that the scaled iframe does not overflow dev element. Seems issue working as intended. 

Please find the screencast of all OS except CROS in the below link.

https://drive.google.com/drive/folders/1yeIv9BfUZaTEhdtlHGqvNDpI3_wZlxbE?usp=sharing

Note: Unable to test on Chrome OS as  65.0.3325.189 build is not available.

Thanks,

Labels: Restrict-View-Google
Adding RSVG ,please remove if not required for this issue.
Labels: -Restrict-View-Google -Pri-1 -ReleaseBlock-Stable Pri-2
The bug has been merged back to M-65 in the event we spin again, and fixed in M-66 and M-67.

It remains open to add additional tests to avoid regressions again.

It is no longer release blocking.
Cc: -chrishtr@google.com chrishtr@chromium.org
Tried to test this fix on Android (Pixel XL/N) using file from comment#14 but I dont see any difference before and after the fix. Can you please provide details to check this on Android?
 Issue 826523  has been merged into this issue.
Labels: Postmortem-Followup
 Issue 832620  has been merged into this issue.
It has been fixed, but there's another issue emerged, it now flickers at the start of the animation and at the end of it.

See it here ...
https://www.hindawi.org/

Chrome version is 66.0.3359.117 (Official Build) (64-bit)
Windows 10

But this also happens on iMac.

Regards,
Shaker
shaker.hamdi@: Please file a new bug for the animation flickering issue. And please try to generate a reduced test case.

Are you describing the slight change in size as the animation starts and stops? That's what I see on Windows, but not Linux.
@schenney: This was working fine before the original issue of this post, and it still works fine on Firefox.

I will open a new issue regarding this.
Bulk edit**

This bug has the label Postmortem-Followup but has not been updated in 3+ weeks. We are working on a new workflow to improve postmortem followthrough. Postmortems and postmortem bugs are very important in making sure we don't repeat prior mistakes and for making Chrome better for all.

We will be taking a closer look at these bugs in the coming weeks. Please take some time to work on this, reassign, or close if the issue has been fixed. Thank you.
Stephen - did you add the tests?
I don't think I added the SVG/Video test cases. I'll get to it as soon as I get a window of time.

Sign in to add a comment