| Index: ios/chrome/browser/ui/contextual_search/touch_to_search_permissions_mediator.mm | 
| diff --git a/ios/chrome/browser/ui/contextual_search/touch_to_search_permissions_mediator.mm b/ios/chrome/browser/ui/contextual_search/touch_to_search_permissions_mediator.mm | 
| index ce48928e87d6e4f2240e1c138de329cf95c1e112..7a2598c6ad439360bbc488f0ca1527a4b163d35d 100644 | 
| --- a/ios/chrome/browser/ui/contextual_search/touch_to_search_permissions_mediator.mm | 
| +++ b/ios/chrome/browser/ui/contextual_search/touch_to_search_permissions_mediator.mm | 
| @@ -7,7 +7,6 @@ | 
| #import <UIKit/UIKit.h> | 
|  | 
| #include "base/command_line.h" | 
| -#import "base/ios/weak_nsobject.h" | 
| #include "base/logging.h" | 
| #include "components/prefs/pref_change_registrar.h" | 
| #include "components/prefs/pref_service.h" | 
| @@ -22,6 +21,10 @@ | 
| #include "ios/chrome/browser/sync/sync_setup_service_factory.h" | 
| #include "net/base/network_change_notifier.h" | 
|  | 
| +#if !defined(__has_feature) || !__has_feature(objc_arc) | 
| +#error "This file requires ARC support." | 
| +#endif | 
| + | 
| namespace { | 
| // Maps pref string values to state enum. | 
| const struct { | 
| @@ -37,8 +40,7 @@ const struct { | 
| @interface TouchToSearchPermissionsMediator ()<PrefObserverDelegate> { | 
| ios::ChromeBrowserState* _browserState; | 
| SyncSetupService* _syncService; | 
| -  base::WeakNSProtocol<NSObject<TouchToSearchPermissionsChangeAudience>*> | 
| -      _audience; | 
| +  __weak NSObject<TouchToSearchPermissionsChangeAudience>* _audience; | 
| // Pref observer to track changes to the touch-to-search and search engine | 
| // prefs. | 
| std::unique_ptr<PrefObserverBridge> _prefObserverBridge; | 
| @@ -89,7 +91,6 @@ const struct { | 
| if ((self = [super init])) { | 
| if (browserState && browserState->IsOffTheRecord()) { | 
| // Discard the allocated object and return a nil object. | 
| -      [self release]; | 
| return nil; | 
| } | 
| [self setUpBrowserState:browserState]; | 
| @@ -105,7 +106,6 @@ const struct { | 
| - (void)dealloc { | 
| // Set audience to nil to stop observation. | 
| self.audience = nil; | 
| -  [super dealloc]; | 
| } | 
|  | 
| - (void)setUpBrowserState:(ios::ChromeBrowserState*)browserState { | 
| @@ -146,7 +146,7 @@ const struct { | 
| - (void)setAudience: | 
| (NSObject<TouchToSearchPermissionsChangeAudience>*)audience { | 
| [self stopObserving]; | 
| -  _audience.reset(audience); | 
| +  _audience = audience; | 
| [self startObserving]; | 
| } | 
|  | 
| @@ -270,8 +270,8 @@ const struct { | 
| if (self.audience) { | 
| if ([self.audience | 
| respondsToSelector:@selector(touchToSearchPermissionsUpdated)]) { | 
| -      base::WeakNSProtocol<NSObject<TouchToSearchPermissionsChangeAudience>*> | 
| -          audience(self.audience); | 
| +      __weak NSObject<TouchToSearchPermissionsChangeAudience>* audience = | 
| +          self.audience; | 
| dispatch_async(dispatch_get_main_queue(), ^{ | 
| [audience touchToSearchPermissionsUpdated]; | 
| }); | 
|  |