|
Delay scrollContents until the next paint
Fix a ChickenAndEgg issue by delaying scroll until the
next paint when the compositing layers are up to date.
The amount scrolled but not painted is stored in
ScrollView::m_pendingScrollDelta.
Rearrange the code such that if there are fixed position
elements, do the following before painting:
1. Walk the tree and do updateLayerPosition
2. Mark that we need to update compositing layers since
layers may have changed as a result of scrolling if
there are fixed elements.
3. Update compositing layers.
4. Invalidate fixed position elements.
5. Update repaint rects for fixed position elements to
reflect the new scroll position.
Also, when calculating repaint rects for fixed elements,
take into account both the scroll position and the
scroll delta. This way we can invalidate the previous
scroll position for the fixed element if it is
promoted to a layer as a result of scrolling.
BUG= 343766
BUG= 343767
Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=170086
Total comments: 9
Total comments: 25
Total comments: 4
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+540 lines, -212 lines) |
Patch |
 |
M |
LayoutTests/compositing/absolute-inside-out-of-view-fixed.html
|
View
|
1
2
3
4
5
6
|
2 chunks |
+13 lines, -6 lines |
0 comments
|
Download
|
 |
M |
LayoutTests/compositing/iframes/resources/fixed-position-transformed-subframe.html
|
View
|
1
2
3
|
1 chunk |
+8 lines, -6 lines |
0 comments
|
Download
|
 |
M |
LayoutTests/compositing/layer-creation/fixed-position-out-of-view-positioning.html
|
View
|
1
2
|
2 chunks |
+6 lines, -1 line |
0 comments
|
Download
|
 |
M |
LayoutTests/compositing/repaint/fixed-pos-inside-composited-intermediate-layer.html
|
View
|
1
2
3
4
5
6
|
1 chunk |
+6 lines, -4 lines |
0 comments
|
Download
|
 |
M |
LayoutTests/compositing/repaint/fixed-pos-with-composited-child.html
|
View
|
1
2
3
4
5
6
|
1 chunk |
+7 lines, -5 lines |
0 comments
|
Download
|
 |
M |
LayoutTests/compositing/rtl/rtl-fixed-overflow-scrolled.html
|
View
|
1
2
|
2 chunks |
+6 lines, -3 lines |
0 comments
|
Download
|
 |
M |
LayoutTests/compositing/squashing/squash-above-fixed-1.html
|
View
|
1
2
3
4
5
|
3 chunks |
+74 lines, -24 lines |
0 comments
|
Download
|
 |
M |
LayoutTests/compositing/squashing/squash-above-fixed-2.html
|
View
|
1
2
|
3 chunks |
+10 lines, -2 lines |
0 comments
|
Download
|
 |
M |
LayoutTests/compositing/squashing/squash-above-fixed-3.html
|
View
|
1
2
|
3 chunks |
+22 lines, -12 lines |
0 comments
|
Download
|
 |
M |
LayoutTests/fast/repaint/absolute-position-changed.html
|
View
|
1
2
3
4
|
1 chunk |
+22 lines, -6 lines |
0 comments
|
Download
|
 |
M |
LayoutTests/fast/repaint/fixed.html
|
View
|
1
2
3
4
|
1 chunk |
+18 lines, -7 lines |
0 comments
|
Download
|
 |
M |
LayoutTests/fast/repaint/fixed-after-scroll.html
|
View
|
1
2
3
4
|
2 chunks |
+14 lines, -5 lines |
0 comments
|
Download
|
 |
M |
LayoutTests/fast/repaint/fixed-and-absolute-position-scrolled.html
|
View
|
1
2
3
4
|
1 chunk |
+16 lines, -5 lines |
0 comments
|
Download
|
 |
M |
LayoutTests/fast/repaint/fixed-child-move-after-scroll.html
|
View
|
1
2
3
|
1 chunk |
+10 lines, -1 line |
0 comments
|
Download
|
 |
M |
LayoutTests/fast/repaint/fixed-child-of-fixed-move-after-scroll.html
|
View
|
1
2
3
|
1 chunk |
+10 lines, -1 line |
0 comments
|
Download
|
 |
M |
LayoutTests/fast/repaint/fixed-move-after-scroll.html
|
View
|
1
2
3
|
1 chunk |
+10 lines, -1 line |
0 comments
|
Download
|
 |
M |
LayoutTests/fast/repaint/fixed-scale.html
|
View
|
1
2
3
4
|
2 chunks |
+15 lines, -5 lines |
0 comments
|
Download
|
 |
M |
LayoutTests/fast/repaint/fixed-table-cell.html
|
View
|
1
2
3
4
|
2 chunks |
+16 lines, -5 lines |
0 comments
|
Download
|
 |
M |
LayoutTests/fast/repaint/fixed-table-overflow.html
|
View
|
1
2
3
4
|
2 chunks |
+15 lines, -5 lines |
0 comments
|
Download
|
 |
M |
LayoutTests/fast/repaint/fixed-table-overflow-zindex.html
|
View
|
1
2
3
4
5
|
2 chunks |
+15 lines, -5 lines |
0 comments
|
Download
|
 |
M |
LayoutTests/fast/repaint/fixed-tranformed.html
|
View
|
1
2
3
|
1 chunk |
+37 lines, -29 lines |
0 comments
|
Download
|
 |
M |
LayoutTests/fast/repaint/overflow-auto-in-overflow-auto-scrolled.html
|
View
|
1
2
3
4
|
2 chunks |
+25 lines, -13 lines |
0 comments
|
Download
|
 |
M |
LayoutTests/fast/repaint/resources/fixed-move-after-keyboard-scroll-iframe.html
|
View
|
1
2
3
|
2 chunks |
+11 lines, -1 line |
0 comments
|
Download
|
 |
M |
LayoutTests/fast/repaint/scroll-fixed-layer-with-no-visible-content.html
|
View
|
1
2
3
4
|
2 chunks |
+15 lines, -5 lines |
0 comments
|
Download
|
 |
M |
LayoutTests/fast/repaint/scroll-fixed-layer-with-reflection.html
|
View
|
1
2
3
4
|
3 chunks |
+15 lines, -5 lines |
0 comments
|
Download
|
 |
M |
LayoutTests/fast/repaint/scroll-fixed-reflected-layer.html
|
View
|
1
2
3
4
|
3 chunks |
+15 lines, -5 lines |
0 comments
|
Download
|
 |
M |
LayoutTests/fast/repaint/scroll-in-fixed-layer.html
|
View
|
1
2
3
4
|
3 chunks |
+15 lines, -5 lines |
0 comments
|
Download
|
 |
M |
Source/core/frame/FrameView.h
|
View
|
1
2
3
4
|
4 chunks |
+5 lines, -2 lines |
0 comments
|
Download
|
 |
M |
Source/core/frame/FrameView.cpp
|
View
|
1
2
3
4
5
6
|
9 chunks |
+68 lines, -23 lines |
0 comments
|
Download
|
 |
M |
Source/core/rendering/RenderLayer.cpp
|
View
|
1
2
3
4
5
6
|
2 chunks |
+2 lines, -7 lines |
0 comments
|
Download
|
 |
M |
Source/core/rendering/RenderView.cpp
|
View
|
1
2
3
4
5
6
|
1 chunk |
+6 lines, -1 line |
0 comments
|
Download
|
 |
M |
Source/platform/scroll/ScrollView.h
|
View
|
1
2
3
|
4 chunks |
+3 lines, -4 lines |
0 comments
|
Download
|
 |
M |
Source/platform/scroll/ScrollView.cpp
|
View
|
1
2
3
|
2 chunks |
+10 lines, -3 lines |
0 comments
|
Download
|
Total messages: 18 (0 generated)
|