| Index: ios/chrome/browser/payments/shipping_address_selection_coordinator.mm
 | 
| diff --git a/ios/chrome/browser/payments/shipping_address_selection_coordinator.mm b/ios/chrome/browser/payments/shipping_address_selection_coordinator.mm
 | 
| index e3dfcb5680721d950866bf1b8777bf6dae8d714d..57c2efdda94d97c50d81a52708d01fe3ee61fdd7 100644
 | 
| --- a/ios/chrome/browser/payments/shipping_address_selection_coordinator.mm
 | 
| +++ b/ios/chrome/browser/payments/shipping_address_selection_coordinator.mm
 | 
| @@ -4,18 +4,19 @@
 | 
|  
 | 
|  #import "ios/chrome/browser/payments/shipping_address_selection_coordinator.h"
 | 
|  
 | 
| -#import "base/ios/weak_nsobject.h"
 | 
| -#include "base/mac/scoped_nsobject.h"
 | 
|  #include "base/strings/sys_string_conversions.h"
 | 
|  #include "components/autofill/core/browser/autofill_profile.h"
 | 
|  #include "ios/chrome/browser/payments/payment_request.h"
 | 
|  #import "ios/chrome/browser/payments/payment_request_util.h"
 | 
|  
 | 
| -@interface ShippingAddressSelectionCoordinator () {
 | 
| -  base::WeakNSProtocol<id<ShippingAddressSelectionCoordinatorDelegate>>
 | 
| -      _delegate;
 | 
| -  base::scoped_nsobject<ShippingAddressSelectionViewController> _viewController;
 | 
| -}
 | 
| +#if !defined(__has_feature) || !__has_feature(objc_arc)
 | 
| +#error "This file requires ARC support."
 | 
| +#endif
 | 
| +
 | 
| +@interface ShippingAddressSelectionCoordinator ()
 | 
| +
 | 
| +@property(nonatomic, strong)
 | 
| +    ShippingAddressSelectionViewController* viewController;
 | 
|  
 | 
|  // Called when the user selects a shipping address. The cell is checked, the
 | 
|  // UI is locked so that the user can't interact with it, then the delegate is
 | 
| @@ -29,18 +30,12 @@
 | 
|  @implementation ShippingAddressSelectionCoordinator
 | 
|  
 | 
|  @synthesize paymentRequest = _paymentRequest;
 | 
| -
 | 
| -- (id<ShippingAddressSelectionCoordinatorDelegate>)delegate {
 | 
| -  return _delegate.get();
 | 
| -}
 | 
| -
 | 
| -- (void)setDelegate:(id<ShippingAddressSelectionCoordinatorDelegate>)delegate {
 | 
| -  _delegate.reset(delegate);
 | 
| -}
 | 
| +@synthesize delegate = _delegate;
 | 
| +@synthesize viewController = _viewController;
 | 
|  
 | 
|  - (void)start {
 | 
| -  _viewController.reset([[ShippingAddressSelectionViewController alloc]
 | 
| -      initWithPaymentRequest:_paymentRequest]);
 | 
| +  _viewController = [[ShippingAddressSelectionViewController alloc]
 | 
| +      initWithPaymentRequest:_paymentRequest];
 | 
|    [_viewController setDelegate:self];
 | 
|    [_viewController loadModel];
 | 
|  
 | 
| @@ -52,13 +47,13 @@
 | 
|  
 | 
|  - (void)stop {
 | 
|    [self.baseViewController.navigationController popViewControllerAnimated:YES];
 | 
| -  _viewController.reset();
 | 
| +  _viewController = nil;
 | 
|  }
 | 
|  
 | 
|  - (void)stopSpinnerAndDisplayError {
 | 
|    // Re-enable user interactions that were disabled earlier in
 | 
|    // delayedNotifyDelegateOfSelection.
 | 
| -  _viewController.get().view.userInteractionEnabled = YES;
 | 
| +  _viewController.view.userInteractionEnabled = YES;
 | 
|  
 | 
|    [_viewController setIsLoading:NO];
 | 
|    NSString* errorMessage =
 | 
| @@ -85,25 +80,20 @@
 | 
|  
 | 
|  - (void)delayedNotifyDelegateOfSelection:
 | 
|      (autofill::AutofillProfile*)shippingAddress {
 | 
| -  _viewController.get().view.userInteractionEnabled = NO;
 | 
| -  base::WeakNSObject<ShippingAddressSelectionCoordinator> weakSelf(self);
 | 
| -  dispatch_after(
 | 
| -      dispatch_time(DISPATCH_TIME_NOW,
 | 
| -                    static_cast<int64_t>(0.2 * NSEC_PER_SEC)),
 | 
| -      dispatch_get_main_queue(), ^{
 | 
| -        base::scoped_nsobject<ShippingAddressSelectionCoordinator> strongSelf(
 | 
| -            [weakSelf retain]);
 | 
| -        // Early return if the coordinator has been deallocated.
 | 
| -        if (!strongSelf)
 | 
| -          return;
 | 
| -
 | 
| -        [_viewController setIsLoading:YES];
 | 
| -        [_viewController loadModel];
 | 
| -        [[_viewController collectionView] reloadData];
 | 
| -
 | 
| -        [_delegate shippingAddressSelectionCoordinator:self
 | 
| -                              didSelectShippingAddress:shippingAddress];
 | 
| -      });
 | 
| +  _viewController.view.userInteractionEnabled = NO;
 | 
| +  __weak ShippingAddressSelectionCoordinator* weakSelf = self;
 | 
| +  dispatch_after(dispatch_time(DISPATCH_TIME_NOW,
 | 
| +                               static_cast<int64_t>(0.2 * NSEC_PER_SEC)),
 | 
| +                 dispatch_get_main_queue(), ^{
 | 
| +                   ShippingAddressSelectionCoordinator* strongSelf = weakSelf;
 | 
| +                   [strongSelf.viewController setIsLoading:YES];
 | 
| +                   [strongSelf.viewController loadModel];
 | 
| +                   [[strongSelf.viewController collectionView] reloadData];
 | 
| +
 | 
| +                   [strongSelf.delegate
 | 
| +                       shippingAddressSelectionCoordinator:strongSelf
 | 
| +                                  didSelectShippingAddress:shippingAddress];
 | 
| +                 });
 | 
|  }
 | 
|  
 | 
|  @end
 | 
| 
 |