Index: chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm |
diff --git a/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm b/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm |
index 0c6614676dc11a1bc2147fdea57d15fa338fa94c..afa54de6efeb1adb274d4d1adee7dac60a3205b0 100644 |
--- a/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm |
+++ b/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm |
@@ -293,7 +293,7 @@ private: |
// to let it know that |controller_| is ready to be removed from the model. |
// Since we only maintain weak references, the tab strip must call -invalidate: |
// to prevent the use of dangling pointers. |
-@interface TabCloseAnimationDelegate : NSObject { |
+@interface TabCloseAnimationDelegate : NSObject <CAAnimationDelegate> { |
@private |
TabStripController* strip_; // weak; owns us indirectly |
TabController* controller_; // weak |
@@ -309,7 +309,8 @@ private: |
// prevent attempts to call into the released object. |
- (void)invalidate; |
-// CAAnimation delegate method |
+// CAAnimation delegate methods |
+- (void)animationDidStart:(CAAnimation*)animation; |
- (void)animationDidStop:(CAAnimation*)animation finished:(BOOL)finished; |
@end |
@@ -331,6 +332,9 @@ private: |
controller_ = nil; |
} |
+- (void)animationDidStart:(CAAnimation*)theAnimation { |
+ // CAAnimationDelegate method added on OSX 10.12. |
+} |
- (void)animationDidStop:(CAAnimation*)animation finished:(BOOL)finished { |
[strip_ animationDidStop:animation |
forController:controller_ |
@@ -1406,7 +1410,7 @@ private: |
- (void)animationDidStop:(CAAnimation*)animation |
forController:(TabController*)controller |
finished:(BOOL)finished{ |
- [[animation delegate] invalidate]; |
+ [(TabCloseAnimationDelegate *)[animation delegate] invalidate]; |
[closingControllers_ removeObject:controller]; |
[self removeTab:controller]; |
} |