DescriptionRevert of Avoid scrollbar construction/destruction thrashing during flex layout. (patchset #4 id:60001 of https://codereview.chromium.org/1357423007/ )
Reason for revert:
Broke oilpan:
../../third_party/WebKit/Source/core/paint/DeprecatedPaintLayerScrollableArea.h:71:5: error: [blink-gc] Class 'ScrollbarManager' contains invalid fields.
class ScrollbarManager {
^
../../third_party/WebKit/Source/core/paint/DeprecatedPaintLayerScrollableArea.h:110:9: note: [blink-gc] Member field 'm_hBar' in unmanaged class declared here:
RefPtrWillBeMember<Scrollbar> m_hBar;
^
../../third_party/WebKit/Source/platform/heap/Handle.h:919:28: note: expanded from macro 'RefPtrWillBeMember'
#define RefPtrWillBeMember blink::Member
^
../../third_party/WebKit/Source/core/paint/DeprecatedPaintLayerScrollableArea.h:111:9: note: [blink-gc] Member field 'm_vBar' in unmanaged class declared here:
RefPtrWillBeMember<Scrollbar> m_vBar;
^
../../third_party/WebKit/Source/platform/heap/Handle.h:919:28: note: expanded from macro 'RefPtrWillBeMember'
#define RefPtrWillBeMember blink::Member
^
1 error generated.
Original issue's description:
> Avoid scrollbar construction/destruction thrashing during flex layout.
>
> BUG=528940
> R=skobes@chromium.org,pdr@chromium.org
>
> Before this change:
>
> https://codereview.chromium.org/1295933003
>
> ... blocks with overflow:auto would delay updating their scrollbars until
> after all flex layout was finished. After the change, scrollbar info is
> updated immediately during the course of layout. Flex items may run
> layout multiple times during flex layout; if a flex item has auto scrollbars,
> it may create and destroy its scrollbars multiple times.
>
> Aside from being a performance problem, this can cause WebScrollbarThemePainter
> to point to a stale Scrollbar object. If a flex item has scrollbars prior to
> layout; then the flex item destroys and creates scrollbars during layout; and
> at the end of layout, it still has a scrollbar; then
> CompositedDeprecatedPaintLayerMapping::updateOverflowControlsLayers will not
> update the WebScrollbarThemePainter with the final Scrollbar object.
>
> We could fix this in updateOverflowControlsLayers, but that wouldn't address
> the performance issue of needlessly creating and destroying scrollbars during
> flex layout. This patch avoids destroying scrollbars that are no longer
> deemed necessary, until after all flexing is finished.
>
> Committed: https://crrev.com/662a21f7bbebca99b8d968a8104da7fb53af820c
> Cr-Commit-Position: refs/heads/master@{#351130}
TBR=pdr@chromium.org,skobes@chromium.org,szager@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=528940
Committed: https://crrev.com/1a157eb11dda435aefcad65d3e49ecc36112c02b
Cr-Commit-Position: refs/heads/master@{#351223}
Patch Set 1 #
Messages
Total messages: 7 (0 generated)
|