Index: third_party/WebKit/Source/platform/mac/ScrollAnimatorMac.mm |
diff --git a/third_party/WebKit/Source/platform/mac/ScrollAnimatorMac.mm b/third_party/WebKit/Source/platform/mac/ScrollAnimatorMac.mm |
index 02e5cd16ca8d0bc0450683472f6791cd634a0701..75e07f053296c653c3c318018bc2e5dd757c799b 100644 |
--- a/third_party/WebKit/Source/platform/mac/ScrollAnimatorMac.mm |
+++ b/third_party/WebKit/Source/platform/mac/ScrollAnimatorMac.mm |
@@ -40,7 +40,6 @@ |
#include "platform/scroll/ScrollbarThemeMacCommon.h" |
#include "platform/scroll/ScrollbarThemeMacOverlayAPI.h" |
#include "wtf/MainThread.h" |
-#include "wtf/PassOwnPtr.h" |
using namespace blink; |
@@ -679,9 +678,9 @@ private: |
namespace blink { |
-PassOwnPtr<ScrollAnimatorBase> ScrollAnimatorBase::create(ScrollableArea* scrollableArea) |
+PassOwnPtrWillBeRawPtr<ScrollAnimatorBase> ScrollAnimatorBase::create(ScrollableArea* scrollableArea) |
{ |
- return adoptPtr(new ScrollAnimatorMac(scrollableArea)); |
+ return adoptPtrWillBeNoop(new ScrollAnimatorMac(scrollableArea)); |
} |
ScrollAnimatorMac::ScrollAnimatorMac(ScrollableArea* scrollableArea) |
@@ -691,6 +690,10 @@ ScrollAnimatorMac::ScrollAnimatorMac(ScrollableArea* scrollableArea) |
, m_haveScrolledSincePageLoad(false) |
, m_needsScrollerStyleUpdate(false) |
{ |
+#if ENABLE(OILPAN) |
+ ThreadState::current()->registerPreFinalizer(this); |
+#endif |
+ |
m_scrollAnimationHelperDelegate.adoptNS([[WebScrollAnimationHelperDelegate alloc] initWithScrollAnimator:this]); |
m_scrollAnimationHelper.adoptNS([[NSClassFromString(@"NSScrollAnimationHelper") alloc] initWithDelegate:m_scrollAnimationHelperDelegate.get()]); |
@@ -704,6 +707,10 @@ ScrollAnimatorMac::ScrollAnimatorMac(ScrollableArea* scrollableArea) |
ScrollAnimatorMac::~ScrollAnimatorMac() |
{ |
+} |
+ |
+void ScrollAnimatorMac::cleanup() |
+{ |
if (ScrollbarThemeMacCommon::isOverlayAPIAvailable()) { |
BEGIN_BLOCK_OBJC_EXCEPTIONS; |
[m_scrollbarPainterControllerDelegate.get() invalidate]; |
@@ -713,6 +720,8 @@ ScrollAnimatorMac::~ScrollAnimatorMac() |
[m_scrollAnimationHelperDelegate.get() invalidate]; |
END_BLOCK_OBJC_EXCEPTIONS; |
} |
+ m_initialScrollbarPaintTimer.stop(); |
+ m_sendContentAreaScrolledTimer.stop(); |
} |
ScrollResultOneDimensional ScrollAnimatorMac::userScroll(ScrollbarOrientation orientation, ScrollGranularity granularity, float step, float delta) |