Index: Source/core/paint/DeprecatedPaintLayerScrollableArea.h |
diff --git a/Source/core/paint/DeprecatedPaintLayerScrollableArea.h b/Source/core/paint/DeprecatedPaintLayerScrollableArea.h |
index b268b8a29b1e4278312ba038ffc2d7b461115080..47e3cdea3df8ac9cb39853ed0a731ddb889e9390 100644 |
--- a/Source/core/paint/DeprecatedPaintLayerScrollableArea.h |
+++ b/Source/core/paint/DeprecatedPaintLayerScrollableArea.h |
@@ -47,6 +47,7 @@ |
#include "core/CoreExport.h" |
#include "core/layout/LayoutBox.h" |
#include "core/paint/DeprecatedPaintLayerFragment.h" |
+#include "platform/heap/Handle.h" |
#include "platform/scroll/ScrollableArea.h" |
namespace blink { |
@@ -61,14 +62,20 @@ class LayoutBox; |
class DeprecatedPaintLayer; |
class LayoutScrollbarPart; |
-class CORE_EXPORT DeprecatedPaintLayerScrollableArea final : public ScrollableArea { |
+class CORE_EXPORT DeprecatedPaintLayerScrollableArea final : public NoBaseWillBeGarbageCollectedFinalized<DeprecatedPaintLayerScrollableArea>, public ScrollableArea { |
+ WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(DeprecatedPaintLayerScrollableArea); |
friend class Internals; |
public: |
// FIXME: We should pass in the LayoutBox but this opens a window |
// for crashers during DeprecatedPaintLayer setup (see crbug.com/368062). |
- DeprecatedPaintLayerScrollableArea(DeprecatedPaintLayer&); |
+ static PassOwnPtrWillBeRawPtr<DeprecatedPaintLayerScrollableArea> create(DeprecatedPaintLayer& layer) |
+ { |
+ return adoptPtrWillBeNoop(new DeprecatedPaintLayerScrollableArea(layer)); |
+ } |
+ |
virtual ~DeprecatedPaintLayerScrollableArea(); |
+ void dispose(); |
bool hasHorizontalScrollbar() const { return horizontalScrollbar(); } |
bool hasVerticalScrollbar() const { return verticalScrollbar(); } |
@@ -215,7 +222,11 @@ public: |
IntRect rectForHorizontalScrollbar(const IntRect& borderBoxRect) const; |
IntRect rectForVerticalScrollbar(const IntRect& borderBoxRect) const; |
+ DECLARE_VIRTUAL_TRACE(); |
+ |
private: |
+ explicit DeprecatedPaintLayerScrollableArea(DeprecatedPaintLayer&); |
+ |
bool hasHorizontalOverflow() const; |
bool hasVerticalOverflow() const; |
bool hasScrollableHorizontalOverflow() const; |
@@ -276,14 +287,18 @@ private: |
IntPoint m_cachedOverlayScrollbarOffset; |
// For areas with overflow, we have a pair of scrollbars. |
- RefPtrWillBePersistent<Scrollbar> m_hBar; |
- RefPtrWillBePersistent<Scrollbar> m_vBar; |
+ RefPtrWillBeMember<Scrollbar> m_hBar; |
+ RefPtrWillBeMember<Scrollbar> m_vBar; |
// LayoutObject to hold our custom scroll corner. |
LayoutScrollbarPart* m_scrollCorner; |
// LayoutObject to hold our custom resizer. |
LayoutScrollbarPart* m_resizer; |
+ |
+#if ENABLE(ASSERT) |
+ bool m_hasBeenDisposed; |
+#endif |
}; |
} // namespace blink |