Chromium Code Reviews| Index: ios/chrome/browser/native_app_launcher/native_app_navigation_controller.mm |
| diff --git a/ios/chrome/browser/native_app_launcher/native_app_navigation_controller.mm b/ios/chrome/browser/native_app_launcher/native_app_navigation_controller.mm |
| index bbb3976667f023a06d4003a77bf1d6498255a62e..7aa8b2c979ea57ad039d0086c24d09b4ee6bfd6c 100644 |
| --- a/ios/chrome/browser/native_app_launcher/native_app_navigation_controller.mm |
| +++ b/ios/chrome/browser/native_app_launcher/native_app_navigation_controller.mm |
| @@ -20,9 +20,14 @@ |
| #import "ios/public/provider/chrome/browser/native_app_launcher/native_app_types.h" |
| #import "ios/public/provider/chrome/browser/native_app_launcher/native_app_whitelist_manager.h" |
| #include "ios/web/public/web_state/web_state.h" |
| +#import "ios/web/web_state/ui/crw_web_controller.h" |
| #import "net/base/mac/url_conversions.h" |
| #include "net/url_request/url_request_context_getter.h" |
| +#if !defined(__has_feature) || !__has_feature(objc_arc) |
| +#error "This file requires ARC support." |
| +#endif |
| + |
| using base::UserMetricsAction; |
| @interface NativeAppNavigationController () |
| @@ -49,9 +54,9 @@ using base::UserMetricsAction; |
| // states such as navigation manager and whether it is a pre-rendered tab. |
| // Use |webState| whenever possible. |
| __unsafe_unretained Tab* _tab; // weak |
|
stkhapugin
2017/01/31 14:17:54
This can now become a __weak.
|
| - base::scoped_nsprotocol<id<NativeAppMetadata>> _metadata; |
| + id<NativeAppMetadata> _metadata; |
| // A set of appIds encoded as NSStrings. |
| - base::scoped_nsobject<NSMutableSet> _appsPossiblyBeingInstalled; |
| + NSMutableSet* _appsPossiblyBeingInstalled; |
| } |
| // Designated initializer. Use this instead of -init. |
| @@ -68,16 +73,16 @@ using base::UserMetricsAction; |
| // same webState. |
| DCHECK(!tab || [tab webState] == webState); |
| _tab = tab; |
| - _appsPossiblyBeingInstalled.reset([[NSMutableSet alloc] init]); |
| + _appsPossiblyBeingInstalled = [[NSMutableSet alloc] init]; |
| } |
| return self; |
| } |
| - (void)copyStateFrom:(NativeAppNavigationController*)controller { |
| DCHECK(controller); |
| - _appsPossiblyBeingInstalled.reset([[NSMutableSet alloc] |
| - initWithSet:[controller appsPossiblyBeingInstalled]]); |
| - for (NSString* appIdString in _appsPossiblyBeingInstalled.get()) { |
| + _appsPossiblyBeingInstalled = [[NSMutableSet alloc] |
| + initWithSet:[controller appsPossiblyBeingInstalled]]; |
| + for (NSString* appIdString in _appsPossiblyBeingInstalled) { |
| DCHECK([appIdString isKindOfClass:[NSString class]]); |
| NSURL* appURL = |
| [ios::GetChromeBrowserProvider()->GetNativeAppWhitelistManager() |
| @@ -92,7 +97,6 @@ using base::UserMetricsAction; |
| - (void)dealloc { |
| [[InstallationNotifier sharedInstance] unregisterForNotifications:self]; |
| - [super dealloc]; |
| } |
| - (NSMutableSet*)appsPossiblyBeingInstalled { |
| @@ -102,9 +106,8 @@ using base::UserMetricsAction; |
| - (void)showInfoBarIfNecessary { |
| // Find a potential matching native app. |
| GURL pageURL = _webState->GetLastCommittedURL(); |
| - _metadata.reset( |
| - [ios::GetChromeBrowserProvider()->GetNativeAppWhitelistManager() |
| - newNativeAppForURL:pageURL]); |
| + _metadata = [ios::GetChromeBrowserProvider()->GetNativeAppWhitelistManager() |
| + nativeAppForURL:pageURL]; |
| if (!_metadata || [_metadata shouldBypassInfoBars]) |
| return; |