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

Issue 1215973002: Oilpan: improve ScrollableArea handling. (Closed)

Created:
5 years, 5 months ago by sof
Modified:
5 years, 5 months ago
Reviewers:
oilpan-reviews, haraken
CC:
blink-reviews, shans, dshwang, eae+blinkwatch, rwlbuis, pdr+graphicswatchlist_chromium.org, drott+blinkwatch_chromium.org, szager+layoutwatch_chromium.org, Justin Novosad, danakj, Rik, jchaffraix+rendering, blink-reviews-paint_chromium.org, Eric Willigers, kenneth.christiansen, rjwright, zoltan1, jbroman, krit, darktears, blink-reviews-rendering, blink-reviews-animation_chromium.org, pdr+renderingwatchlist_chromium.org, leviw+renderwatch, slimming-paint-reviews_chromium.org, blink-layers+watch_chromium.org, f(malita), Stephen Chennney
Target Ref:
refs/heads/master
Project:
blink
Visibility:
Public.

Description

Oilpan: improve ScrollableArea handling. Have all ScrollableArea objects reside on the Oilpan heap, making ScrollableArea be a GC mixin. Without it, some ScrollableAreas (FrameView) were on the heap whereas others (*Viewport) weren't, making for unpredictable and incorrect finalization as the lifetimes were skewed. Additionally, simplify Scrollbar's unregistration with its ScrollableArea (and its ScrollAnimator). The Oilpan-specific RefPtr<ScrollAnimator> that Scrollbar kept, no longer served a purpose, hence removed. As a result, ScrollAnimator can again be fully owned by ScrollableAreas & no longer be RefCounted<>. R=haraken BUG=504655 Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=198064

Patch Set 1 #

Patch Set 2 : remove too conservative null check #

Total comments: 27

Patch Set 3 : clear out animators on DeprecatedPaintLayerScrollableArea dispose #

Total comments: 17

Patch Set 4 : review-induced improvements #

Unified diffs Side-by-side diffs Delta from patch set Stats (+359 lines, -246 lines) Patch
M Source/core/frame/FrameHost.h View 1 chunk +1 line, -1 line 0 comments Download
M Source/core/frame/FrameHost.cpp View 1 chunk +1 line, -0 lines 0 comments Download
M Source/core/frame/FrameView.h View 4 chunks +5 lines, -4 lines 0 comments Download
M Source/core/frame/FrameView.cpp View 1 7 chunks +9 lines, -5 lines 0 comments Download
M Source/core/frame/PinchViewport.h View 2 chunks +9 lines, -8 lines 0 comments Download
M Source/core/frame/PinchViewport.cpp View 2 chunks +7 lines, -1 line 0 comments Download
M Source/core/frame/RootFrameViewport.h View 2 chunks +10 lines, -7 lines 0 comments Download
M Source/core/frame/RootFrameViewport.cpp View 1 2 1 chunk +6 lines, -0 lines 0 comments Download
M Source/core/frame/RootFrameViewportTest.cpp View 1 2 18 chunks +122 lines, -107 lines 0 comments Download
M Source/core/input/EventHandler.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/core/input/EventHandler.cpp View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M Source/core/layout/compositing/DeprecatedPaintLayerCompositor.cpp View 1 chunk +1 line, -1 line 0 comments Download
M Source/core/page/Page.h View 1 chunk +1 line, -1 line 0 comments Download
M Source/core/page/Page.cpp View 1 chunk +1 line, -0 lines 0 comments Download
M Source/core/page/scrolling/ScrollingCoordinator.h View 3 chunks +6 lines, -5 lines 0 comments Download
M Source/core/page/scrolling/ScrollingCoordinator.cpp View 1 2 3 2 chunks +12 lines, -2 lines 0 comments Download
M Source/core/paint/DeprecatedPaintLayer.h View 1 chunk +1 line, -1 line 0 comments Download
M Source/core/paint/DeprecatedPaintLayer.cpp View 1 2 3 2 chunks +6 lines, -5 lines 0 comments Download
M Source/core/paint/DeprecatedPaintLayerScrollableArea.h View 4 chunks +19 lines, -4 lines 0 comments Download
M Source/core/paint/DeprecatedPaintLayerScrollableArea.cpp View 1 2 4 chunks +22 lines, -1 line 0 comments Download
M Source/platform/graphics/GraphicsLayerTest.cpp View 2 chunks +16 lines, -5 lines 0 comments Download
M Source/platform/mac/ScrollAnimatorMac.mm View 2 chunks +3 lines, -3 lines 0 comments Download
M Source/platform/scroll/ScrollAnimator.h View 2 chunks +2 lines, -3 lines 0 comments Download
M Source/platform/scroll/ScrollAnimatorNone.cpp View 1 chunk +3 lines, -3 lines 0 comments Download
M Source/platform/scroll/ScrollableArea.h View 1 2 5 chunks +18 lines, -1 line 0 comments Download
M Source/platform/scroll/ScrollableArea.cpp View 1 2 2 chunks +8 lines, -0 lines 0 comments Download
M Source/platform/scroll/ScrollableAreaTest.cpp View 3 chunks +17 lines, -6 lines 0 comments Download
M Source/platform/scroll/Scrollbar.h View 1 2 3 3 chunks +8 lines, -9 lines 0 comments Download
M Source/platform/scroll/Scrollbar.cpp View 1 2 3 2 chunks +7 lines, -19 lines 0 comments Download
M Source/web/ViewportAnchor.h View 1 chunk +1 line, -1 line 0 comments Download
M Source/web/tests/PinchViewportTest.cpp View 2 chunks +0 lines, -6 lines 0 comments Download
M Source/web/tests/ScrollAnimatorNoneTest.cpp View 7 chunks +35 lines, -24 lines 0 comments Download
M Source/web/tests/WebFrameTest.cpp View 1 2 2 chunks +0 lines, -12 lines 0 comments Download

Messages

Total messages: 16 (3 generated)
sof
please take a look. need to understand/resolve the Mac unit test failures for root layer ...
5 years, 5 months ago (2015-06-29 11:56:15 UTC) #2
haraken
Thanks for working on this! Here is the first round of comments. https://codereview.chromium.org/1215973002/diff/20001/Source/core/page/scrolling/ScrollingCoordinator.h File Source/core/page/scrolling/ScrollingCoordinator.h ...
5 years, 5 months ago (2015-06-29 15:20:22 UTC) #4
sof
https://codereview.chromium.org/1215973002/diff/20001/Source/core/paint/DeprecatedPaintLayer.cpp File Source/core/paint/DeprecatedPaintLayer.cpp (right): https://codereview.chromium.org/1215973002/diff/20001/Source/core/paint/DeprecatedPaintLayer.cpp#newcode152 Source/core/paint/DeprecatedPaintLayer.cpp:152: DeprecatedPaintLayer::~DeprecatedPaintLayer() On 2015/06/29 15:20:21, haraken wrote: > > DeprecatedPaintLayer ...
5 years, 5 months ago (2015-06-29 15:59:42 UTC) #5
sof
http://build.chromium.org/p/tryserver.blink/builders/mac_blink_oilpan_dbg/builds/1225 has the all-green Mac Oilpan build.
5 years, 5 months ago (2015-06-30 07:46:50 UTC) #6
haraken
Mostly looks good. A final round of comments... https://chromiumcodereview.appspot.com/1215973002/diff/20001/Source/platform/scroll/Scrollbar.cpp File Source/platform/scroll/Scrollbar.cpp (right): https://chromiumcodereview.appspot.com/1215973002/diff/20001/Source/platform/scroll/Scrollbar.cpp#newcode85 Source/platform/scroll/Scrollbar.cpp:85: Scrollbar::~Scrollbar() ...
5 years, 5 months ago (2015-06-30 10:30:36 UTC) #7
sof
Thanks for the review; it doesn't help that the scroll abstractions straddle Oilpan and non-Oilpan ...
5 years, 5 months ago (2015-06-30 11:34:09 UTC) #8
haraken
LGTM Regarding pre-finalizers vs eager-sweeping, let's discuss in a separate thread. At the very least, ...
5 years, 5 months ago (2015-06-30 14:14:24 UTC) #9
sof
Thanks, let's try to arrive at a conclusion on that twisty topic separately. https://chromiumcodereview.appspot.com/1215973002/diff/40001/Source/core/paint/DeprecatedPaintLayerScrollableArea.cpp File ...
5 years, 5 months ago (2015-06-30 14:28:03 UTC) #10
haraken
https://chromiumcodereview.appspot.com/1215973002/diff/40001/Source/core/paint/DeprecatedPaintLayerScrollableArea.cpp File Source/core/paint/DeprecatedPaintLayerScrollableArea.cpp (right): https://chromiumcodereview.appspot.com/1215973002/diff/40001/Source/core/paint/DeprecatedPaintLayerScrollableArea.cpp#newcode154 Source/core/paint/DeprecatedPaintLayerScrollableArea.cpp:154: clearScrollAnimators(); On 2015/06/30 14:28:03, sof wrote: > On 2015/06/30 ...
5 years, 5 months ago (2015-06-30 14:30:24 UTC) #11
sof
https://chromiumcodereview.appspot.com/1215973002/diff/40001/Source/core/paint/DeprecatedPaintLayerScrollableArea.cpp File Source/core/paint/DeprecatedPaintLayerScrollableArea.cpp (right): https://chromiumcodereview.appspot.com/1215973002/diff/40001/Source/core/paint/DeprecatedPaintLayerScrollableArea.cpp#newcode154 Source/core/paint/DeprecatedPaintLayerScrollableArea.cpp:154: clearScrollAnimators(); On 2015/06/30 14:30:24, haraken wrote: > On 2015/06/30 ...
5 years, 5 months ago (2015-06-30 14:35:48 UTC) #12
haraken
https://chromiumcodereview.appspot.com/1215973002/diff/40001/Source/core/paint/DeprecatedPaintLayerScrollableArea.cpp File Source/core/paint/DeprecatedPaintLayerScrollableArea.cpp (right): https://chromiumcodereview.appspot.com/1215973002/diff/40001/Source/core/paint/DeprecatedPaintLayerScrollableArea.cpp#newcode154 Source/core/paint/DeprecatedPaintLayerScrollableArea.cpp:154: clearScrollAnimators(); On 2015/06/30 14:35:48, sof wrote: > On 2015/06/30 ...
5 years, 5 months ago (2015-06-30 14:37:21 UTC) #13
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1215973002/60001
5 years, 5 months ago (2015-06-30 14:41:20 UTC) #15
commit-bot: I haz the power
5 years, 5 months ago (2015-06-30 14:45:22 UTC) #16
Message was sent while issue was closed.
Committed patchset #4 (id:60001) as
https://src.chromium.org/viewvc/blink?view=rev&revision=198064

Powered by Google App Engine
This is Rietveld 408576698