Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(120)

Issue 2292133002: [compositor-worker] root scrolling layer is associated with document scrolling element

Created:
4 years, 3 months ago by majidvp
Modified:
3 years, 9 months ago
Reviewers:
flackr
CC:
chromium-reviews, szager+layoutwatch_chromium.org, zoltan1, blink-reviews-layout_chromium.org, pdr+renderingwatchlist_chromium.org, eae+blinkwatch, leviw+renderwatch, jchaffraix+rendering, blink-reviews, kinuko+watch
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

[compositor-worker] compositor proxy can have different element ids for main and scroll layer This is needed to allow us to correctly proxy |document.scrollingElement| and have it properly mutate transform/opacity and scroll offset. Root Frame scroll layers are attached to the document element which is different from the actual scrolling element. BUG=430155 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Patch Set 1 #

Patch Set 2 : Only add if we have scrolling layer #

Patch Set 3 : Use two element ids (one for main, one for scrolling) in compositorproxy #

Patch Set 4 : Fix test #

Patch Set 5 : Use document instead of documentElement() #

Total comments: 5
Unified diffs Side-by-side diffs Delta from patch set Stats (+182 lines, -24 lines) Patch
A third_party/WebKit/LayoutTests/virtual/threaded/fast/compositorworker/resources/root-scroller.js View 1 2 1 chunk +19 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/virtual/threaded/fast/compositorworker/root-scroller.html View 1 2 1 chunk +51 lines, -0 lines 3 comments Download
M third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueDeserializer.cpp View 1 2 1 chunk +4 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueSerializer.cpp View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/core/dom/CompositorProxy.h View 1 2 3 chunks +11 lines, -3 lines 0 comments Download
M third_party/WebKit/Source/core/dom/CompositorProxy.cpp View 1 2 3 4 2 chunks +22 lines, -4 lines 1 comment Download
M third_party/WebKit/Source/platform/graphics/CompositorMutableStateProvider.h View 1 2 1 chunk +2 lines, -1 line 0 comments Download
M third_party/WebKit/Source/platform/graphics/CompositorMutableStateProvider.cpp View 1 2 1 chunk +6 lines, -3 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/CompositorMutableStateTest.cpp View 1 2 3 5 chunks +52 lines, -6 lines 1 comment Download
M third_party/WebKit/Source/web/CompositorWorkerProxyClientImpl.cpp View 1 2 1 chunk +2 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/web/tests/CompositorWorkerTest.cpp View 1 2 3 4 4 chunks +12 lines, -3 lines 0 comments Download

Messages

Total messages: 38 (34 generated)
majidvp
4 years, 3 months ago (2016-08-30 15:46:02 UTC) #7
Ian Vollick
On 2016/08/30 15:46:02, majidvp wrote: Some of these failures look real, sadly.
4 years, 3 months ago (2016-08-30 19:53:27 UTC) #10
majidvp
flackr@ PTAL. I think we have discussed using two element Ids before to better handle ...
3 years, 9 months ago (2017-02-27 13:36:59 UTC) #37
flackr
3 years, 9 months ago (2017-03-01 16:31:27 UTC) #38
https://codereview.chromium.org/2292133002/diff/80001/third_party/WebKit/Layo...
File
third_party/WebKit/LayoutTests/virtual/threaded/fast/compositorworker/root-scroller.html
(right):

https://codereview.chromium.org/2292133002/diff/80001/third_party/WebKit/Layo...
third_party/WebKit/LayoutTests/virtual/threaded/fast/compositorworker/root-scroller.html:7:
overflow: scroll;
Why do we need to apply overflow: scroll / limit the size of the body? Looking
at the page locally it doesn't seem to change the document.scrollingElement or
the way the page scrolls, does it change something internally?

https://codereview.chromium.org/2292133002/diff/80001/third_party/WebKit/Layo...
third_party/WebKit/LayoutTests/virtual/threaded/fast/compositorworker/root-scroller.html:32:
internals.settings.setPreferCompositingToLCDTextEnabled(true);
The root scroller is always composited isn't it? It seems like this shouldn't be
necessary.

https://codereview.chromium.org/2292133002/diff/80001/third_party/WebKit/Layo...
third_party/WebKit/LayoutTests/virtual/threaded/fast/compositorworker/root-scroller.html:50:

nit: collapse newlines

https://codereview.chromium.org/2292133002/diff/80001/third_party/WebKit/Sour...
File third_party/WebKit/Source/core/dom/CompositorProxy.cpp (right):

https://codereview.chromium.org/2292133002/diff/80001/third_party/WebKit/Sour...
third_party/WebKit/Source/core/dom/CompositorProxy.cpp:127: scrollingNode =
document;
It seems like the proper fix would be for cc to set the document scrolling layer
to be the body element's scrolling layer to reflect that this scrolling layer is
the scrolling element's scrolling layer. Then we wouldn't need to have a
separate id and it would match blink's concept of the scrolling element right?

I think this would mean changing the element id for the root scrolling contents
layer to be the document.scrollingElement's id in CompositedLayerMapping.cpp

https://codereview.chromium.org/2292133002/diff/80001/third_party/WebKit/Sour...
File third_party/WebKit/Source/platform/graphics/CompositorMutableStateTest.cpp
(right):

https://codereview.chromium.org/2292133002/diff/80001/third_party/WebKit/Sour...
third_party/WebKit/Source/platform/graphics/CompositorMutableStateTest.cpp:103:
int scrollId = 13;
To be accurate to the real implementation, isn't the scrolling layer the outer
(root) layer?

Powered by Google App Engine
This is Rietveld 408576698