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

Unified Diff: ios/chrome/browser/ui/overscroll_actions/overscroll_actions_controller.mm

Issue 2933123002: [ObjC ARC] Converts ios/chrome/browser/ui/overscroll_actions:overscroll_actions to ARC. (Closed)
Patch Set: Created 3 years, 6 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: ios/chrome/browser/ui/overscroll_actions/overscroll_actions_controller.mm
diff --git a/ios/chrome/browser/ui/overscroll_actions/overscroll_actions_controller.mm b/ios/chrome/browser/ui/overscroll_actions/overscroll_actions_controller.mm
index 0ed8f1b7d8599c3069181e26a9bb2b887a14f689..31ed4d67b0432ddf6fa10ef55129ee1975d6dfea 100644
--- a/ios/chrome/browser/ui/overscroll_actions/overscroll_actions_controller.mm
+++ b/ios/chrome/browser/ui/overscroll_actions/overscroll_actions_controller.mm
@@ -8,8 +8,6 @@
#include <algorithm>
#include "base/logging.h"
-#include "base/mac/objc_property_releaser.h"
-#include "base/mac/scoped_nsobject.h"
#include "base/metrics/histogram_macros.h"
#import "ios/chrome/browser/ui/browser_view_controller.h"
#import "ios/chrome/browser/ui/overscroll_actions/overscroll_actions_gesture_recognizer.h"
@@ -21,6 +19,10 @@
#import "ios/chrome/browser/ui/voice/voice_search_notification_names.h"
#import "ios/web/public/web_state/ui/crw_web_view_proxy.h"
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
namespace {
// This enum is used to record the overscroll actions performed by the user on
// the histogram named |OverscrollActions|.
@@ -150,7 +152,7 @@ NSString* const kOverscrollActionsDidEnd = @"OverscrollActionsDidStop";
// Store the set of notifications that did increment the overscroll actions
// lock. It is used in order to enforce the fact that the lock should only be
// incremented/decremented once for a given notification.
- base::scoped_nsobject<NSMutableSet> _lockIncrementNotifications;
+ NSMutableSet* _lockIncrementNotifications;
// Store the notification name counterpart of another notification name.
// Overscroll actions locking and unlocking works by listening to balanced
// notifications. One notification lock and it's counterpart unlock. This
@@ -158,21 +160,20 @@ NSString* const kOverscrollActionsDidEnd = @"OverscrollActionsDidStop";
// counterpart name. Exemple:
// UIKeyboardWillShowNotification trigger a lock. Its counterpart notification
// name is UIKeyboardWillHideNotification.
- base::scoped_nsobject<NSDictionary> _lockNotificationsCounterparts;
+ NSDictionary* _lockNotificationsCounterparts;
// A view used to catch touches on the webview.
- base::scoped_nsobject<UIView> _dummyView;
+ UIView* _dummyView;
// The proxy used to interact with the webview.
- base::scoped_nsprotocol<id<CRWWebViewProxy>> _webViewProxy;
+ id<CRWWebViewProxy> _webViewProxy;
// The proxy used to interact with the webview's scrollview.
- base::scoped_nsobject<CRWWebViewScrollViewProxy> _webViewScrollViewProxy;
+ CRWWebViewScrollViewProxy* _webViewScrollViewProxy;
// The scrollview driving the OverscrollActionsController when not using
// the scrollview from the CRWWebControllerObserver.
- base::scoped_nsobject<UIScrollView> _scrollview;
- base::mac::ObjCPropertyReleaser _propertyReleaser_OverscrollActionsController;
+ UIScrollView* _scrollview;
}
// The view displayed over the header view holding the actions.
-@property(nonatomic, retain) OverscrollActionsView* overscrollActionView;
+@property(nonatomic, strong) OverscrollActionsView* overscrollActionView;
// Initial top inset added to the scrollview for the header.
// This property is set from the delegate headerInset and cached on first
// call. The cached value is reset when the webview proxy is set.
@@ -191,7 +192,7 @@ NSString* const kOverscrollActionsDidEnd = @"OverscrollActionsDidStop";
// overscroll controller is in OverscrollStateActionReady.
@property(nonatomic, assign) CGPoint panPointScreenOrigin;
// Pan gesture recognizer used to track horizontal touches.
-@property(nonatomic, retain) UIPanGestureRecognizer* panGestureRecognizer;
+@property(nonatomic, strong) UIPanGestureRecognizer* panGestureRecognizer;
// Registers notifications to lock the overscroll actions on certain UI states.
- (void)registerNotifications;
@@ -246,18 +247,16 @@ NSString* const kOverscrollActionsDidEnd = @"OverscrollActionsDidStop";
- (instancetype)initWithScrollView:(UIScrollView*)scrollView {
self = [super init];
if (self) {
- _propertyReleaser_OverscrollActionsController.Init(
- self, [OverscrollActionsController class]);
_overscrollActionView =
[[OverscrollActionsView alloc] initWithFrame:CGRectZero];
_overscrollActionView.delegate = self;
- _scrollview.reset([scrollView retain]);
+ _scrollview = scrollView;
if (_scrollview) {
[self setup];
}
- _lockIncrementNotifications.reset([[NSMutableSet alloc] init]);
+ _lockIncrementNotifications = [[NSMutableSet alloc] init];
- _lockNotificationsCounterparts.reset([@{
+ _lockNotificationsCounterparts = @{
UIKeyboardWillHideNotification : UIKeyboardWillShowNotification,
kMenuWillHideNotification : kMenuWillShowNotification,
kTabHistoryPopupWillHideNotification :
@@ -271,7 +270,7 @@ NSString* const kOverscrollActionsDidEnd = @"OverscrollActionsDidStop";
ios_internal::kLocationBarBecomesFirstResponderNotification,
ios_internal::kSideSwipeDidStopNotification :
ios_internal::kSideSwipeWillStartNotification
- } retain]);
+ };
[self registerNotifications];
}
return self;
@@ -280,7 +279,6 @@ NSString* const kOverscrollActionsDidEnd = @"OverscrollActionsDidStop";
- (void)dealloc {
self.overscrollActionView.delegate = nil;
[self invalidate];
- [super dealloc];
}
- (void)scheduleInvalidate {
@@ -298,9 +296,9 @@ NSString* const kOverscrollActionsDidEnd = @"OverscrollActionsDidStop";
[[NSNotificationCenter defaultCenter] removeObserver:self];
[self setWebViewInteractionEnabled:YES];
_delegate = nil;
- _webViewProxy.reset();
+ _webViewProxy = nil;
[_webViewScrollViewProxy removeObserver:self];
- _webViewScrollViewProxy.reset();
+ _webViewScrollViewProxy = nil;
}
- (void)clear {
@@ -515,9 +513,9 @@ NSString* const kOverscrollActionsDidEnd = @"OverscrollActionsDidStop";
DCHECK([webViewProxy scrollViewProxy]);
_initialHeaderInset = 0;
_initialHeaderHeight = 0;
- _webViewProxy.reset([webViewProxy retain]);
+ _webViewProxy = webViewProxy;
[_webViewScrollViewProxy removeObserver:self];
- _webViewScrollViewProxy.reset([[webViewProxy scrollViewProxy] retain]);
+ _webViewScrollViewProxy = [webViewProxy scrollViewProxy];
[_webViewScrollViewProxy addObserver:self];
[self enableOverscrollActions];
}
@@ -525,7 +523,7 @@ NSString* const kOverscrollActionsDidEnd = @"OverscrollActionsDidStop";
- (void)webControllerWillClose:(CRWWebController*)webController {
[self disableOverscrollActions];
[_webViewScrollViewProxy removeObserver:self];
- _webViewScrollViewProxy.reset();
+ _webViewScrollViewProxy = nil;
}
#pragma mark - Private
@@ -558,7 +556,7 @@ NSString* const kOverscrollActionsDidEnd = @"OverscrollActionsDidStop";
- (void)registerNotifications {
NSNotificationCenter* center = [NSNotificationCenter defaultCenter];
for (NSString* counterpartNotificationName in _lockNotificationsCounterparts
- .get()) {
+ .allKeys) {
[center addObserver:self
selector:@selector(incrementOverscrollActionLockForNotification:)
name:[_lockNotificationsCounterparts
@@ -581,30 +579,30 @@ NSString* const kOverscrollActionsDidEnd = @"OverscrollActionsDidStop";
}
- (void)setup {
- base::scoped_nsobject<UIPanGestureRecognizer> panGesture;
+ UIPanGestureRecognizer* panGesture;
// Workaround a bug occuring when Speak Selection is enabled.
// See crbug.com/699655.
if (UIAccessibilityIsSpeakSelectionEnabled()) {
- panGesture.reset([[OverscrollActionsGestureRecognizer alloc]
+ panGesture = [[OverscrollActionsGestureRecognizer alloc]
initWithTarget:self
- action:@selector(panGesture:)]);
+ action:@selector(panGesture:)];
} else {
- panGesture.reset([[UIPanGestureRecognizer alloc]
- initWithTarget:self
- action:@selector(panGesture:)]);
+ panGesture =
+ [[UIPanGestureRecognizer alloc] initWithTarget:self
+ action:@selector(panGesture:)];
}
[panGesture setMaximumNumberOfTouches:1];
[panGesture setDelegate:self];
[[self scrollView] addGestureRecognizer:panGesture];
- self.panGestureRecognizer = panGesture.get();
+ self.panGestureRecognizer = panGesture;
}
- (id<OverscrollActionsScrollView>)scrollView {
if (_scrollview) {
- return static_cast<id<OverscrollActionsScrollView>>(_scrollview.get());
+ return static_cast<id<OverscrollActionsScrollView>>(_scrollview);
} else {
return static_cast<id<OverscrollActionsScrollView>>(
- _webViewScrollViewProxy.get());
+ _webViewScrollViewProxy);
}
}
@@ -788,7 +786,7 @@ NSString* const kOverscrollActionsDidEnd = @"OverscrollActionsDidStop";
// specific subviews.
if (!enabled) {
if (!_dummyView)
- _dummyView.reset([[UIView alloc] init]);
+ _dummyView = [[UIView alloc] init];
[_dummyView setFrame:[_webViewProxy bounds]];
[_webViewProxy addSubview:_dummyView];
} else {

Powered by Google App Engine
This is Rietveld 408576698