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..6b77e3d40f5e0bbf5bf7141cfaa18f7f1da9f1f9 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) |
+ScrollAnimatorBase* ScrollAnimatorBase::create(ScrollableArea* scrollableArea) |
{ |
- return adoptPtr(new ScrollAnimatorMac(scrollableArea)); |
+ return new ScrollAnimatorMac(scrollableArea); |
} |
ScrollAnimatorMac::ScrollAnimatorMac(ScrollableArea* scrollableArea) |
@@ -704,6 +703,11 @@ ScrollAnimatorMac::ScrollAnimatorMac(ScrollableArea* scrollableArea) |
ScrollAnimatorMac::~ScrollAnimatorMac() |
{ |
+ cleanup(); |
+} |
+ |
+void ScrollAnimatorMac::cleanup() |
+{ |
if (ScrollbarThemeMacCommon::isOverlayAPIAvailable()) { |
BEGIN_BLOCK_OBJC_EXCEPTIONS; |
[m_scrollbarPainterControllerDelegate.get() invalidate]; |
@@ -713,6 +717,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) |