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

Unified Diff: Source/platform/scroll/Scrollbar.h

Issue 603193005: Move the Widget hierarchy to the Oilpan heap. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Support renderer-less plugin disposal Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/platform/scroll/Scrollbar.h
diff --git a/Source/platform/scroll/Scrollbar.h b/Source/platform/scroll/Scrollbar.h
index 5ca42619101317b5a3ea0b9ca5a6352e2913379f..e8a99081cf871b462daafdeb72b781cb4658a22a 100644
--- a/Source/platform/scroll/Scrollbar.h
+++ b/Source/platform/scroll/Scrollbar.h
@@ -28,6 +28,7 @@
#include "platform/Timer.h"
#include "platform/Widget.h"
+#include "platform/heap/Handle.h"
#include "platform/scroll/ScrollTypes.h"
#include "platform/scroll/ScrollbarThemeClient.h"
#include "wtf/MathExtras.h"
@@ -39,14 +40,14 @@ class GraphicsContext;
class IntRect;
class PlatformGestureEvent;
class PlatformMouseEvent;
+class ScrollAnimator;
class ScrollableArea;
class ScrollbarTheme;
-class PLATFORM_EXPORT Scrollbar : public Widget,
- public ScrollbarThemeClient {
+class PLATFORM_EXPORT Scrollbar : public Widget, public ScrollbarThemeClient {
public:
- static PassRefPtr<Scrollbar> create(ScrollableArea*, ScrollbarOrientation, ScrollbarControlSize);
+ static PassRefPtrWillBeRawPtr<Scrollbar> create(ScrollableArea*, ScrollbarOrientation, ScrollbarControlSize);
virtual ~Scrollbar();
@@ -96,7 +97,7 @@ public:
// Called by the ScrollableArea when the scroll offset changes.
void offsetDidChange();
- void disconnectFromScrollableArea() { m_scrollableArea = 0; }
+ void disconnectFromScrollableArea();
ScrollableArea* scrollableArea() const { return m_scrollableArea; }
int pressedPos() const { return m_pressedPos; }
@@ -165,6 +166,13 @@ protected:
ScrollbarControlSize m_controlSize;
ScrollbarTheme* m_theme;
+#if ENABLE(OILPAN)
+ // To simplify Oilpan finalization, keep a copy of the ScrollableArea's
+ // scroll animator. Scrollbar is responsible for notifying the animator
+ // when it is destructed.
+ RefPtr<ScrollAnimator> m_animator;
+#endif
+
int m_visibleSize;
int m_totalSize;
float m_currentPos;

Powered by Google App Engine
This is Rietveld 408576698