At DSF > 1.0, there is a transparent strip at bottom of floating windows that have web content |
||||||||||||||
Issue descriptionChrome Version : 54.0.2840.79 OS Version: 8743.76.0 Device: Elm What steps will reproduce the problem? 1. Use default screen resolution: 2. Start calculator app; it should start ~1/3 down from the top of the screen. 3. What is the expected result? Calculator app is always opaque. What happens instead of that? At 1536x864, the foreground window will have a transparent strip at the bottom, if the bottom y-coordinate is in a magic range on the screen. The actual range is app dependent (for example, the transparent range is lower on calculator than feedback). Note: this issue only exists at 1536x864. There are no transparent strips at larger or smaller screen resolutions. Please provide any additional information below. Attach a screenshot if possible. See the attached video showing the issue.
,
Oct 31 2016
Over to malaykeshav@ because scaling.
,
Oct 31 2016
,
Nov 2 2016
There is another report https://b.corp.google.com/issues/31737761. I haven't seen a report on other boards, and couldn't repro on peach-pi (on both this and ToT), so this is probably Elm specific. If this is working on 56, then it might have been fixed.
,
Nov 2 2016
Still broken on latest elm beta - 55.0.2883.29 / 8872.27.0.
,
Nov 11 2016
This's another report https://feedback.corp.google.com/#/Report/15693233293 Still happened on elm beta - 55.0.2883.35 / 8872.35.0 from the above user feedback
,
Nov 11 2016
marcheu@, I think this is Elm specific. Can someone in your team look into this from driver/kernel perspective?
,
Nov 14 2016
@#7 - no, this is not elm specific. I can repro on both peach_pi @ 8791.0 / 55.0.2857.0 Also, it is not fixed, I can repro on elm 56.0.2915.0 / 8975.0.0
,
Nov 17 2016
Thanks, I confirmed that I could repro on other as well as on linux desktop.
,
Dec 15 2016
Issue 674214 has been merged into this issue.
,
Jan 3 2017
#9 - I tried reproducing the error on linux with the following command line switches: ./chrome --enable-use-zoom-for-dsf --force-device-scale-factor=1.25 --ash-host-window-bounds="1920x1080" Was successfully able to produce the error once, but not on any of the subsequent runs. Anything I am missing?
,
Jan 4 2017
@#11: What version were you testing? What are your steps to try to repro?
,
Jan 4 2017
Was able to reproduce the issue. You need another window behind the clipping window to view the transparent strip. The transparent strip is not visible with the wallpaper.
,
Jan 4 2017
It also only happens if _atleast_ one of the windows is maximized.
,
Jan 25 2017
,
Feb 3 2017
Debugging the issue let to this problem existing on every scale factor > 1 and not just 2.0. There occurs a dead-strip on the screen that stretches end-to-end horizontally and has a height of approximately the shelf task bar. The problem has the following quirks and points that would help in debugging: - Happens only if at-least one of the window is maximized. - The Y-origin for the start of dead-strip depends on the height of the window that is being incorrectly clipped. - Playing youtube video in a window does not effect the clipping. It is still clipped incorrectly. - Only the active window is clipped. - If dev tools is active, only the content is clipped, not the dev tools.
,
Feb 3 2017
The underlying cause for this bug is due to occlusion. The call happens here: https://cs.chromium.org/chromium/src/cc/layers/surface_layer_impl.cc?rcl=2686c2ee9e80f445659632d5d507694c0e0f3fc4&l=81 Occlusion::GetUnoccludedContentRect(...) expects the size of the surface in DIP since it applies the layer root DrawTransform() to it. https://cs.chromium.org/chromium/src/cc/layers/layer_impl.cc?l=987 The draw transform moves the bounds to the actual screen location and also scales it. But in the case of surface_layer_impl the bounds we send are already scaled. This causes the rect to be scaled twice and get logically occluded by the shelf bar at the bottom. (This is also confirmed from the fact that the bug only occurs when atleast one of the window is maximized since that changes the taskbar to opaque from transparent. The fact that the Y-Origin on the dead strip is dependent on the height of the window also confirms this) @jaydasika, @weiliangc and @ajuma can better explain the working behind this.
,
Feb 3 2017
,
Feb 8 2017
Modifying the title to match the bug. Device: All CrOS devices with DSF > 1.0
,
Feb 10 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/9c7c49cb95b000cdaef78de90eb6a3cd46c663f9 commit 9c7c49cb95b000cdaef78de90eb6a3cd46c663f9 Author: malaykeshav <malaykeshav@chromium.org> Date: Fri Feb 10 22:14:21 2017 Changes the bounds being sent for occlusion from physical pixels to DIP Occlusion::GetUnoccludedContentRect() applies a draw transform to the bounds being sent. This draw transform already has the scaling applied to it which causes the physical pixel bounds to be scaled again leading to an incorrect visible rect result. Also adds unittest to check for this scenario in the future. BUG= 660744 COMPONENT=CC, Layer, Surface Layer Impl CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel Review-Url: https://codereview.chromium.org/2673813002 Cr-Commit-Position: refs/heads/master@{#449755} [modify] https://crrev.com/9c7c49cb95b000cdaef78de90eb6a3cd46c663f9/cc/layers/surface_layer_impl.cc [modify] https://crrev.com/9c7c49cb95b000cdaef78de90eb6a3cd46c663f9/cc/layers/surface_layer_impl_unittest.cc [modify] https://crrev.com/9c7c49cb95b000cdaef78de90eb6a3cd46c663f9/cc/test/layer_test_common.cc
,
Feb 10 2017
,
Mar 9 2017
What releases have this fix? Is it in M58? Can we please merge to M57 before it goes stable?
,
Mar 9 2017
This bug requires manual review: We are only 4 days from stable. Please contact the milestone owner if you have questions. Owners: amineer@(clank), cmasso@(bling), ketakid@(cros), govind@(desktop) For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Mar 9 2017
This patch first appears in: 58.0.3009.0, which for ChromeOS means any version newer than 9282.0.0.
,
May 30 2017
,
Aug 1 2017
,
Jan 22 2018
|
||||||||||||||
►
Sign in to add a comment |
||||||||||||||
Comment 1 by skuhne@chromium.org
, Oct 31 2016