CSS Rendering Error when position:fixed element and page scrollable
Reported by
t...@timkremer.info,
Feb 11 2018
|
|||||||||
Issue descriptionUserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Steps to reproduce the problem: 1. See Minimal file example. A common approach for rendering a radial progress bar in CSS is now failing as of Chrome Version 64.0.3282.140 (Official Build) (64-bit) This occurs when there is a position:fixed element on the page (e.g. a fixed header) and the page is tall enough to scroll, and the fixed element height is >= radial progress element. What is the expected behavior? In the minimal example, the radial progress element should render the bar corresponding to the %, even for values over 50% What went wrong? It stops at 50% for all progress values above 50% Did this work before? Yes Earlier versions of chrome 64 Does this work in other browsers? Yes Chrome version: 64.0.3282.140 Channel: stable OS Version: 10.0 Flash Version:
,
Feb 12 2018
Able to reproduce the issue on chrome version 64.0.3282.140 and latest canary 66.0.3334.0 using Ubuntu 14.04, Windows-10 and Mac 10.12.6 hence providing Bisect Info Bisect Info: ================ Good build: 64.0.3249.0 Bad build: 64.0.3250.0 You are probably looking for a change made after 511578 (known good), but no later than 511579 (first known bad). https://chromium.googlesource.com/chromium/src/+log/8c7e87211aa02c337795f9260705c47d8a277e5b..eeaf4c2326de12c9b36324a805e46ab933057e54 Reviewed-on: https://chromium-review.googlesource.com/735751 @sunxd: Please confirm the issue and help in re-assigning if it is not related to your change. Adding ReleaseBlock-Stable as it seems recent break, feel free to remove it if not applicable. Thanks!
,
Feb 12 2018
Hi Chrome team, Here's a hosted copy of a minimal reproduction page: http://any.avaza.com/chromebug.html Thanks Tim
,
Feb 12 2018
,
Feb 12 2018
Looking at the bug... I previously had an occlusion bug regressed by the same change. The patch hasn't landed yet. I'll check if that fixes this as well.
,
Feb 12 2018
,
Feb 12 2018
,
Feb 13 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. Thank you.
,
Feb 14 2018
Moving this from M64 to M65.
,
Feb 15 2018
sunxd@ gentle ping to check if we have any update on the fix.
,
Feb 15 2018
The fix is in code review now: https://chromium-review.googlesource.com/c/chromium/src/+/916625
,
Feb 20 2018
Friendly ping to land the fix ASAP as M65 Stable promotion is coming VERY soon & this issue marked as M65 stable blocker. Thanks..!
,
Feb 20 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/cf699d7fef4e3f03743cc916209c7ebff5dc7b7a commit cf699d7fef4e3f03743cc916209c7ebff5dc7b7a Author: sunxd <sunxd@chromium.org> Date: Tue Feb 20 16:36:15 2018 cc: Make solid color mask layer ignore occlusion Mask layer's occlusion is actually its render surface's occlusion in the contributed parent surface space. However, when tiling a solid color mask layer, we used to adopt the logic from normal picture layers: overwrite the occlusion's transform with the layer's draw transform. This is problematic because mask layer's draw transform is to the render surface that owns the mask. In this way, we can generate the wrong visible quad rect and result in blanks when rendering. Since solid color mask layer does not do anything but cannot be fully avoided in the current code base, we should never apply an occlusion to it. Any occlusion to the masked content can still take effect by applying itself to the owning render surface. Bug: 811143 , 810820 , 808372 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel Change-Id: I821492c107c2abadb9b9e6986369c9f6262d0ad4 Reviewed-on: https://chromium-review.googlesource.com/916625 Commit-Queue: Xianda Sun <sunxd@chromium.org> Reviewed-by: enne <enne@chromium.org> Cr-Commit-Position: refs/heads/master@{#537794} [modify] https://crrev.com/cf699d7fef4e3f03743cc916209c7ebff5dc7b7a/cc/layers/picture_layer_impl.cc [modify] https://crrev.com/cf699d7fef4e3f03743cc916209c7ebff5dc7b7a/cc/layers/picture_layer_impl_unittest.cc
,
Feb 20 2018
Hello can you verify if this is fixed in Canary and if so we can merge this bug into 808372.
,
Feb 20 2018
Sorry the new patch is not baked in canary yet, maybe try it after a few hours.
,
Feb 21 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.
,
Feb 22 2018
Able to reproduce the issue on chrome reported version 64.0.3282.140 Verified the fix on Ubuntu 14.04, Windows-10 and Mac 10.12.6 on Chrome version #66.0.3352.0 as per the comment#0 Attaching screen cast for reference. Observed "Radial progress element got rendered the bar corresponding to the %" Hence, the fix is working as expected. Adding the verified label. Thanks!
,
Feb 22 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8b24864f6fb735764abf5e7f2cfd5d269a881b3b commit 8b24864f6fb735764abf5e7f2cfd5d269a881b3b Author: sunxd <sunxd@chromium.org> Date: Thu Feb 22 17:57:33 2018 cc: Make solid color mask layer ignore occlusion Mask layer's occlusion is actually its render surface's occlusion in the contributed parent surface space. However, when tiling a solid color mask layer, we used to adopt the logic from normal picture layers: overwrite the occlusion's transform with the layer's draw transform. This is problematic because mask layer's draw transform is to the render surface that owns the mask. In this way, we can generate the wrong visible quad rect and result in blanks when rendering. Since solid color mask layer does not do anything but cannot be fully avoided in the current code base, we should never apply an occlusion to it. Any occlusion to the masked content can still take effect by applying itself to the owning render surface. Bug: 811143 , 810820 , 808372 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel Change-Id: I821492c107c2abadb9b9e6986369c9f6262d0ad4 Reviewed-on: https://chromium-review.googlesource.com/916625 Commit-Queue: Xianda Sun <sunxd@chromium.org> Reviewed-by: enne <enne@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#537794}(cherry picked from commit cf699d7fef4e3f03743cc916209c7ebff5dc7b7a) Reviewed-on: https://chromium-review.googlesource.com/931903 Reviewed-by: Xianda Sun <sunxd@chromium.org> Cr-Commit-Position: refs/branch-heads/3325@{#549} Cr-Branched-From: bc084a8b5afa3744a74927344e304c02ae54189f-refs/heads/master@{#530369} [modify] https://crrev.com/8b24864f6fb735764abf5e7f2cfd5d269a881b3b/cc/layers/picture_layer_impl.cc [modify] https://crrev.com/8b24864f6fb735764abf5e7f2cfd5d269a881b3b/cc/layers/picture_layer_impl_unittest.cc
,
Feb 22 2018
|
|||||||||
►
Sign in to add a comment |
|||||||||
Comment 1 by krajshree@chromium.org
, Feb 12 2018