New issue
Advanced search Search tips

Issue 715699 link

Starred by 1 user

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Feature

Blocked on:
issue 745727



Sign in to add a comment

SubtreeReasonsForCompositing should not promote position: fixed elements unless they move with scroll

Project Member Reported by smcgruer@chromium.org, Apr 26 2017

Issue description

See https://codereview.chromium.org/2754983002/ for the discussion on position: fixed elements. Currently SubtreeReasonsForCompositing in CompositingRequirementsUpdater.cpp will promote *any* fixed position elements. This is overzealous - unless the fixed element can scroll, it doesn't need a layer.
 
Project Member

Comment 1 by bugdroid1@chromium.org, May 5 2017

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

commit 9b503962a017a8d69adfdae9300684c299922640
Author: smcgruer <smcgruer@chromium.org>
Date: Fri May 05 03:23:34 2017

Don't promote position: fixed elements with composited descendants if they don't scroll

BUG=715699
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2839263002
Cr-Commit-Position: refs/heads/master@{#469584}

[modify] https://crrev.com/9b503962a017a8d69adfdae9300684c299922640/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/9b503962a017a8d69adfdae9300684c299922640/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2
[modify] https://crrev.com/9b503962a017a8d69adfdae9300684c299922640/third_party/WebKit/LayoutTests/FlagExpectations/root-layer-scrolls
[rename] https://crrev.com/9b503962a017a8d69adfdae9300684c299922640/third_party/WebKit/LayoutTests/compositing/composite-scrollable-fixed-position-when-descendants-composite-expected.txt
[rename] https://crrev.com/9b503962a017a8d69adfdae9300684c299922640/third_party/WebKit/LayoutTests/compositing/composite-scrollable-fixed-position-when-descendants-composite.html
[modify] https://crrev.com/9b503962a017a8d69adfdae9300684c299922640/third_party/WebKit/Source/core/layout/compositing/CompositingReasonFinder.h
[modify] https://crrev.com/9b503962a017a8d69adfdae9300684c299922640/third_party/WebKit/Source/core/layout/compositing/CompositingRequirementsUpdater.cpp

Status: Fixed (was: Started)
Status: Assigned (was: Fixed)
This behavior was reverted in https://codereview.chromium.org/2977273002/ due to issue 742213. It is not the root cause of that bug, but reverting this was the quickest way to fix the stable-blocking bug.

I'm re-opening this issue, and will mark it blocked on the root cause fix once I open a bug for that.
Blockedon: 745727
Cc: smcgruer@chromium.org
Owner: ----
Status: Available (was: Assigned)
I am not currently working on this, dropping to Available
Labels: -Type-Bug Type-Feature
Owner: smcgruer@chromium.org
Status: Started (was: Available)
It appears that the downstream issue with WebView and FullScreen has been fixed (we think; no longer able to reproduce), so I'm going to try re-landing this.
Project Member

Comment 8 by bugdroid1@chromium.org, Jun 28 2018

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

commit 9ca72e1af3da3d582edd7e35b12881acd32eeff5
Author: Stephen McGruer <smcgruer@chromium.org>
Date: Thu Jun 28 15:52:58 2018

Don't promote position: fixed elements with composited descendants if they don't scroll

This is a re-land of an old CL, which was reverted in https://codereview.chromium.org/2977273002
due to a WebView issue. We believe the underlying issue may have been resolved, so should try
re-landing this.

Bug: 715699
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I0da6ab6f55d0fb4ba0760378f182217e8c4546c1
Reviewed-on: https://chromium-review.googlesource.com/1112387
Reviewed-by: Robert Flack <flackr@chromium.org>
Commit-Queue: Robert Flack <flackr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#571143}
[modify] https://crrev.com/9ca72e1af3da3d582edd7e35b12881acd32eeff5/third_party/blink/renderer/core/paint/compositing/compositing_requirements_updater.cc

Status: Fixed (was: Started)
Project Member

Comment 10 by bugdroid1@chromium.org, Aug 17

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

commit 365973dba9c887bb8cfd8b0d1edba41166fb094b
Author: Stephen McGruer <smcgruer@chromium.org>
Date: Fri Aug 17 15:53:08 2018

Revert "Don't promote position: fixed elements with composited descendants if they don't scroll"

This reverts commit 9ca72e1af3da3d582edd7e35b12881acd32eeff5.

Reason for revert: Suspected cause of crbug.com/863361 - it seems that scrolling the viewport is still possible.

Bug: 715699, 863361

Original change's description:
> Don't promote position: fixed elements with composited descendants if they don't scroll
> 
> This is a re-land of an old CL, which was reverted in https://codereview.chromium.org/2977273002
> due to a WebView issue. We believe the underlying issue may have been resolved, so should try
> re-landing this.
> 
> Bug: 715699
> Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
> Change-Id: I0da6ab6f55d0fb4ba0760378f182217e8c4546c1
> Reviewed-on: https://chromium-review.googlesource.com/1112387
> Reviewed-by: Robert Flack <flackr@chromium.org>
> Commit-Queue: Robert Flack <flackr@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#571143}

TBR=flackr@chromium.org,smcgruer@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 715699
Change-Id: I6a9e969a4118b75819dcd297d18d9a2ae1c9abca
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Reviewed-on: https://chromium-review.googlesource.com/1179921
Reviewed-by: Stephen McGruer <smcgruer@chromium.org>
Commit-Queue: Stephen McGruer <smcgruer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#584087}
[modify] https://crrev.com/365973dba9c887bb8cfd8b0d1edba41166fb094b/third_party/blink/renderer/core/paint/compositing/compositing_requirements_updater.cc

Owner: ----
Status: Available (was: Fixed)
Project Member

Comment 12 by bugdroid1@chromium.org, Aug 20

Labels: merge-merged-3497
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5525c8022f28870d0165ef34582a3ea12873622d

commit 5525c8022f28870d0165ef34582a3ea12873622d
Author: Stephen McGruer <smcgruer@chromium.org>
Date: Mon Aug 20 18:25:21 2018

Revert "Don't promote position: fixed elements with composited descendants if they don't scroll"

This reverts commit 9ca72e1af3da3d582edd7e35b12881acd32eeff5.

Reason for revert: Suspected cause of crbug.com/863361 - it seems that scrolling the viewport is still possible.

Bug: 715699, 863361

Original change's description:
> Don't promote position: fixed elements with composited descendants if they don't scroll
> 
> This is a re-land of an old CL, which was reverted in https://codereview.chromium.org/2977273002
> due to a WebView issue. We believe the underlying issue may have been resolved, so should try
> re-landing this.
> 
> Bug: 715699
> Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
> Change-Id: I0da6ab6f55d0fb4ba0760378f182217e8c4546c1
> Reviewed-on: https://chromium-review.googlesource.com/1112387
> Reviewed-by: Robert Flack <flackr@chromium.org>
> Commit-Queue: Robert Flack <flackr@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#571143}

TBR=flackr@chromium.org,smcgruer@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 715699
Change-Id: I6a9e969a4118b75819dcd297d18d9a2ae1c9abca
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Reviewed-on: https://chromium-review.googlesource.com/1179921
Reviewed-by: Stephen McGruer <smcgruer@chromium.org>
Commit-Queue: Stephen McGruer <smcgruer@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#584087}(cherry picked from commit 365973dba9c887bb8cfd8b0d1edba41166fb094b)
Reviewed-on: https://chromium-review.googlesource.com/1181801
Reviewed-by: Alex Mineer <amineer@chromium.org>
Cr-Commit-Position: refs/branch-heads/3497@{#719}
Cr-Branched-From: 271eaf50594eb818c9295dc78d364aea18c82ea8-refs/heads/master@{#576753}
[modify] https://crrev.com/5525c8022f28870d0165ef34582a3ea12873622d/third_party/blink/renderer/core/paint/compositing/compositing_requirements_updater.cc

Sadly, looks like the underlying code wasn't fixed yet, and so this had to be reverted again to avoid breaking WebView :(. See issue 863361 for the latest reproduction (on cnn.com).

I'm opening this up to available as I won't be working on it, but there is real benefit to this change it seems. The evidence is these three separate memory perf regression bugs that I had opened against me when the above revert went in! Issue 876037, 876101, 876036.
Make that four memory perf regressions from the revert: issue 876022
Make that five memory perf regressions from the revert:  issue 880899 

Sign in to add a comment