Chromium Code Reviews| Index: ios/chrome/browser/ui/authentication/signin_interaction_controller.mm |
| diff --git a/ios/chrome/browser/ui/authentication/signin_interaction_controller.mm b/ios/chrome/browser/ui/authentication/signin_interaction_controller.mm |
| index 1f693f817abf71fb9e411a7811ed9a8ef4add697..c1fc64dcd3f2538f4f30b1e36d724e5d30de31ef 100644 |
| --- a/ios/chrome/browser/ui/authentication/signin_interaction_controller.mm |
| +++ b/ios/chrome/browser/ui/authentication/signin_interaction_controller.mm |
| @@ -4,7 +4,6 @@ |
| #import "ios/chrome/browser/ui/authentication/signin_interaction_controller.h" |
| -#include "base/ios/weak_nsobject.h" |
| #include "base/logging.h" |
| #include "base/mac/scoped_block.h" |
| #include "base/mac/scoped_nsobject.h" |
| @@ -27,6 +26,10 @@ |
| #import "ios/public/provider/chrome/browser/signin/chrome_identity_interaction_manager.h" |
| #import "ios/public/provider/chrome/browser/signin/chrome_identity_service.h" |
| +#if !defined(__has_feature) || !__has_feature(objc_arc) |
| +#error "This file requires ARC support." |
| +#endif |
| + |
| using signin_ui::CompletionCallback; |
| @interface SigninInteractionController ()< |
| @@ -35,17 +38,16 @@ using signin_ui::CompletionCallback; |
| ios::ChromeBrowserState* browserState_; |
| signin_metrics::AccessPoint accessPoint_; |
| signin_metrics::PromoAction promoAction_; |
| - base::scoped_nsobject<UIViewController> presentingViewController_; |
| + UIViewController* presentingViewController_; |
| BOOL isPresentedOnSettings_; |
| BOOL isCancelling_; |
| BOOL isDismissing_; |
| BOOL interactionManagerDismissalIgnored_; |
| - base::scoped_nsobject<AlertCoordinator> alertCoordinator_; |
| - base::mac::ScopedBlock<CompletionCallback> completionCallback_; |
| - base::scoped_nsobject<ChromeSigninViewController> signinViewController_; |
| - base::scoped_nsobject<ChromeIdentityInteractionManager> |
| - identityInteractionManager_; |
| - base::scoped_nsobject<ChromeIdentity> signInIdentity_; |
| + AlertCoordinator* alertCoordinator_; |
| + CompletionCallback completionCallback_; |
| + ChromeSigninViewController* signinViewController_; |
| + ChromeIdentityInteractionManager* identityInteractionManager_; |
| + ChromeIdentity* signInIdentity_; |
| BOOL identityAdded_; |
| } |
| @end |
| @@ -67,7 +69,7 @@ using signin_ui::CompletionCallback; |
| DCHECK(browserState); |
| DCHECK(presentingViewController); |
| browserState_ = browserState; |
| - presentingViewController_.reset([presentingViewController retain]); |
| + presentingViewController_ = presentingViewController; |
| isPresentedOnSettings_ = isPresentedOnSettings; |
| accessPoint_ = accessPoint; |
| promoAction_ = promoAction; |
| @@ -79,7 +81,7 @@ using signin_ui::CompletionCallback; |
| // Cancelling and dismissing the |identityInteractionManager_| may call the |
| // |completionCallback_| which could lead to |self| being released before the |
| // end of this method. |self| is retained here to prevent this from happening. |
| - base::scoped_nsobject<SigninInteractionController> strongSelf([self retain]); |
| + base::scoped_nsobject<SigninInteractionController> strongSelf(self); |
|
msarda
2017/06/12 12:49:13
Is this correct? I t there should not be any usage
marq (ping after 24h)
2017/06/12 14:20:40
I had kept it there because I didn't know what the
|
| isCancelling_ = YES; |
| [alertCoordinator_ executeCancelHandler]; |
| [alertCoordinator_ stop]; |
| @@ -98,7 +100,7 @@ using signin_ui::CompletionCallback; |
| identity:(ChromeIdentity*)identity |
| completion:(signin_ui::CompletionCallback)completion { |
| signin_metrics::LogSigninAccessPointStarted(accessPoint_, promoAction_); |
| - completionCallback_.reset(completion, base::scoped_policy::RETAIN); |
| + completionCallback_ = completion; |
|
msarda
2017/06/12 12:49:13
Here and everywhere else we use ScopedBlock with R
marq (ping after 24h)
2017/06/12 14:20:40
Changed all simple assignments to [foo copy].
|
| ios::ChromeIdentityService* identityService = |
| ios::GetChromeBrowserProvider()->GetChromeIdentityService(); |
| if (identity) { |
| @@ -119,7 +121,7 @@ using signin_ui::CompletionCallback; |
| return; |
| } |
| - base::WeakNSObject<SigninInteractionController> weakSelf(self); |
| + __weak SigninInteractionController* weakSelf = self; |
| [identityInteractionManager_ |
| addAccountWithCompletion:^(ChromeIdentity* identity, NSError* error) { |
| [weakSelf handleIdentityAdded:identity |
| @@ -133,7 +135,7 @@ using signin_ui::CompletionCallback; |
| - (void)reAuthenticateWithCompletion:(CompletionCallback)completion |
| viewController:(UIViewController*)viewController { |
| signin_metrics::LogSigninAccessPointStarted(accessPoint_, promoAction_); |
| - completionCallback_.reset(completion, base::scoped_policy::RETAIN); |
| + completionCallback_ = completion; |
| AccountInfo accountInfo = |
| ios::SigninManagerFactory::GetForBrowserState(browserState_) |
| ->GetAuthenticatedAccountInfo(); |
| @@ -158,7 +160,7 @@ using signin_ui::CompletionCallback; |
| ios::GetChromeBrowserProvider() |
| ->GetChromeIdentityService() |
| ->NewChromeIdentityInteractionManager(browserState_, self); |
| - base::WeakNSObject<SigninInteractionController> weakSelf(self); |
| + __weak SigninInteractionController* weakSelf = self; |
| [identityInteractionManager_ |
| reauthenticateUserWithID:base::SysUTF8ToNSString(idToReauthenticate) |
| email:base::SysUTF8ToNSString(emailToReauthenticate) |
| @@ -172,12 +174,12 @@ using signin_ui::CompletionCallback; |
| - (void)addAccountWithCompletion:(CompletionCallback)completion |
| viewController:(UIViewController*)viewController { |
| - completionCallback_.reset(completion, base::scoped_policy::RETAIN); |
| + completionCallback_ = completion; |
| identityInteractionManager_ = |
| ios::GetChromeBrowserProvider() |
| ->GetChromeIdentityService() |
| ->NewChromeIdentityInteractionManager(browserState_, self); |
| - base::WeakNSObject<SigninInteractionController> weakSelf(self); |
| + __weak SigninInteractionController* weakSelf = self; |
| [identityInteractionManager_ |
| addAccountWithCompletion:^(ChromeIdentity* identity, NSError* error) { |
| [weakSelf handleIdentityAdded:identity |
| @@ -203,15 +205,14 @@ using signin_ui::CompletionCallback; |
| return; |
| } |
| - base::WeakNSObject<SigninInteractionController> weakSelf(self); |
| + __weak SigninInteractionController* weakSelf = self; |
| ProceduralBlock dismissAction = ^{ |
| [weakSelf runCompletionCallbackWithSuccess:NO executeCommand:nil]; |
| }; |
| - alertCoordinator_.reset([ios_internal::ErrorCoordinator( |
| + alertCoordinator_ = ios_internal::ErrorCoordinator( |
| error, dismissAction, |
| - top_view_controller::TopPresentedViewControllerFrom(viewController)) |
| - retain]); |
| + top_view_controller::TopPresentedViewControllerFrom(viewController)); |
| [alertCoordinator_ start]; |
| return; |
| } |
| @@ -266,18 +267,18 @@ using signin_ui::CompletionCallback; |
| - (void)showSigninViewControllerWithIdentity:(ChromeIdentity*)signInIdentity |
| identityAdded:(BOOL)identityAdded { |
| - signinViewController_.reset([[ChromeSigninViewController alloc] |
| + signinViewController_ = [[ChromeSigninViewController alloc] |
| initWithBrowserState:browserState_ |
| isPresentedOnSettings:isPresentedOnSettings_ |
| accessPoint:accessPoint_ |
| promoAction:promoAction_ |
| - signInIdentity:signInIdentity]); |
| + signInIdentity:signInIdentity]; |
| [signinViewController_ setDelegate:self]; |
| [signinViewController_ |
| setModalPresentationStyle:UIModalPresentationFormSheet]; |
| [signinViewController_ |
| setModalTransitionStyle:UIModalTransitionStyleCoverVertical]; |
| - signInIdentity_.reset([signInIdentity retain]); |
| + signInIdentity_ = signInIdentity; |
| identityAdded_ = identityAdded; |
| UIViewController* presentingViewController = presentingViewController_; |
| @@ -315,27 +316,27 @@ using signin_ui::CompletionCallback; |
| #pragma mark - ChromeSigninViewControllerDelegate |
| - (void)willStartSignIn:(ChromeSigninViewController*)controller { |
| - DCHECK_EQ(controller, signinViewController_.get()); |
| + DCHECK_EQ(controller, signinViewController_); |
| } |
| - (void)willStartAddAccount:(ChromeSigninViewController*)controller { |
| - DCHECK_EQ(controller, signinViewController_.get()); |
| + DCHECK_EQ(controller, signinViewController_); |
| } |
| - (void)didSkipSignIn:(ChromeSigninViewController*)controller { |
| - DCHECK_EQ(controller, signinViewController_.get()); |
| + DCHECK_EQ(controller, signinViewController_); |
| [self dismissSigninViewControllerWithSignInSuccess:NO executeCommand:nil]; |
| } |
| - (void)didSignIn:(ChromeSigninViewController*)controller { |
| - DCHECK_EQ(controller, signinViewController_.get()); |
| + DCHECK_EQ(controller, signinViewController_); |
| } |
| - (void)didUndoSignIn:(ChromeSigninViewController*)controller |
| identity:(ChromeIdentity*)identity { |
| - DCHECK_EQ(controller, signinViewController_.get()); |
| - if ([signInIdentity_.get() isEqual:identity]) { |
| - signInIdentity_.reset(); |
| + DCHECK_EQ(controller, signinViewController_); |
| + if ([signInIdentity_ isEqual:identity]) { |
| + signInIdentity_ = nil; |
| if (identityAdded_) { |
| // This is best effort. If the operation fails, the account will be left |
| // on the device. The user will not be warned either as this call is |
| @@ -350,13 +351,13 @@ using signin_ui::CompletionCallback; |
| } |
| - (void)didFailSignIn:(ChromeSigninViewController*)controller { |
| - DCHECK_EQ(controller, signinViewController_.get()); |
| + DCHECK_EQ(controller, signinViewController_); |
| [self dismissSigninViewControllerWithSignInSuccess:NO executeCommand:nil]; |
| } |
| - (void)didAcceptSignIn:(ChromeSigninViewController*)controller |
| executeCommand:(GenericChromeCommand*)command { |
| - DCHECK_EQ(controller, signinViewController_.get()); |
| + DCHECK_EQ(controller, signinViewController_); |
| [self dismissSigninViewControllerWithSignInSuccess:YES |
| executeCommand:command]; |
| } |
| @@ -373,16 +374,16 @@ using signin_ui::CompletionCallback; |
| [self dismissPresentedViewControllersAnimated:YES completion:nil]; |
| } |
| - identityInteractionManager_.reset(); |
| - signinViewController_.reset(); |
| + identityInteractionManager_ = nil; |
| + signinViewController_ = nil; |
| UIViewController* presentingViewController = presentingViewController_; |
| // Ensure self is not destroyed in the callbacks. |
| - base::scoped_nsobject<SigninInteractionController> strongSelf([self retain]); |
| + SigninInteractionController* strongSelf = self; |
| if (completionCallback_) { |
| - completionCallback_.get()(success); |
| - completionCallback_.reset(); |
| + completionCallback_(success); |
| + completionCallback_ = nil; |
| } |
| - strongSelf.reset(); |
| + strongSelf = nil; |
| if (command) { |
| [presentingViewController chromeExecuteCommand:command]; |
| } |