| Index: ios/chrome/app/application_delegate/user_activity_handler_unittest.mm | 
| diff --git a/ios/chrome/app/application_delegate/user_activity_handler_unittest.mm b/ios/chrome/app/application_delegate/user_activity_handler_unittest.mm | 
| index d1125e122751442b4592e584d7fe1ffa39ad59ec..6cedf957dcb29b1a54a09892a843a4a61cc59e27 100644 | 
| --- a/ios/chrome/app/application_delegate/user_activity_handler_unittest.mm | 
| +++ b/ios/chrome/app/application_delegate/user_activity_handler_unittest.mm | 
| @@ -10,7 +10,6 @@ | 
|  | 
| #include "base/ios/ios_util.h" | 
| #include "base/mac/scoped_block.h" | 
| -#include "base/mac/scoped_nsobject.h" | 
| #include "base/strings/sys_string_conversions.h" | 
| #include "base/test/scoped_command_line.h" | 
| #include "components/handoff/handoff_utility.h" | 
| @@ -38,13 +37,17 @@ | 
| #include "ui/base/page_transition_types.h" | 
| #include "url/gurl.h" | 
|  | 
| +#if !defined(__has_feature) || !__has_feature(objc_arc) | 
| +#error "This file requires ARC support." | 
| +#endif | 
| + | 
| #pragma mark - Tab Mock | 
|  | 
| // Tab mock for using in UserActivity tests. | 
| @interface UserActivityHandlerTabMock : NSObject | 
|  | 
| @property(nonatomic, readonly) GURL url; | 
| -@property(nonatomic, readonly) NSString* tabId; | 
| +@property(nonatomic, copy, readonly) NSString* tabId; | 
|  | 
| @end | 
|  | 
| @@ -63,7 +66,7 @@ | 
| // TabModel mock for using in UserActivity tests. | 
| @interface UserActivityHandlerTabModelMock : NSObject<NSFastEnumeration> { | 
| @private | 
| -  base::scoped_nsobject<NSMutableArray> _tabs; | 
| +  NSMutableArray* _tabs; | 
| } | 
|  | 
| - (void)addTab:(Tab*)tab; | 
| @@ -76,13 +79,14 @@ | 
|  | 
| - (instancetype)init { | 
| if ((self = [super init])) { | 
| -    _tabs.reset([[NSMutableArray alloc] init]); | 
| +    _tabs = [[NSMutableArray alloc] init]; | 
| } | 
| return self; | 
| } | 
|  | 
| - (NSUInteger)countByEnumeratingWithState:(NSFastEnumerationState*)state | 
| -                                  objects:(id*)stackbuf | 
| +                                  objects: | 
| +                                      (__unsafe_unretained id _Nonnull*)stackbuf | 
| count:(NSUInteger)len { | 
| return [_tabs countByEnumeratingWithState:state objects:stackbuf count:len]; | 
| } | 
| @@ -117,9 +121,9 @@ class UserActivityHandlerTest : public PlatformTest { | 
| protected: | 
| void swizzleHandleStartupParameters() { | 
| handle_startup_parameters_has_been_called_ = NO; | 
| -    swizzle_block_.reset([^(id self) { | 
| +    swizzle_block_ = [^(id self) { | 
| handle_startup_parameters_has_been_called_ = YES; | 
| -    } copy]); | 
| +    } copy]; | 
| user_activity_handler_swizzler_.reset(new ScopedBlockSwizzler( | 
| [UserActivityHandler class], | 
| @selector(handleStartupParametersWithTabOpener: | 
| @@ -139,10 +143,10 @@ class UserActivityHandlerTest : public PlatformTest { | 
| conditionBlock getCompletionHandler() { | 
| if (!completion_block_) { | 
| block_executed_ = NO; | 
| -      completion_block_.reset([^(BOOL arg) { | 
| +      completion_block_ = [^(BOOL arg) { | 
| block_executed_ = YES; | 
| block_argument_ = arg; | 
| -      } copy]); | 
| +      } copy]; | 
| } | 
| return completion_block_; | 
| } | 
| @@ -155,8 +159,8 @@ class UserActivityHandlerTest : public PlatformTest { | 
| __block BOOL block_executed_; | 
| __block BOOL block_argument_; | 
| std::unique_ptr<ScopedBlockSwizzler> user_activity_handler_swizzler_; | 
| -  base::mac::ScopedBlock<startupParameterBlock> swizzle_block_; | 
| -  base::mac::ScopedBlock<conditionBlock> completion_block_; | 
| +  startupParameterBlock swizzle_block_; | 
| +  conditionBlock completion_block_; | 
| __block BOOL handle_startup_parameters_has_been_called_; | 
| }; | 
|  | 
| @@ -203,8 +207,8 @@ TEST(UserActivityHandlerNoFixtureTest, continueUserActivityFromGarbage) { | 
| @"thisIsGarbage", @"it.does.not.work", handoffWithSuffix, handoffWithPrefix | 
| ]; | 
| for (NSString* userActivityType in userActivityTypes) { | 
| -    base::scoped_nsobject<NSUserActivity> userActivity( | 
| -        [[NSUserActivity alloc] initWithActivityType:userActivityType]); | 
| +    NSUserActivity* userActivity = | 
| +        [[NSUserActivity alloc] initWithActivityType:userActivityType]; | 
| [userActivity setWebpageURL:[NSURL URLWithString:@"http://www.google.com"]]; | 
|  | 
| // The test will fail is a method of those objects is called. | 
| @@ -228,8 +232,8 @@ TEST(UserActivityHandlerNoFixtureTest, continueUserActivityFromGarbage) { | 
| // set. | 
| TEST(UserActivityHandlerNoFixtureTest, continueUserActivityNoWebpage) { | 
| // Setup. | 
| -  base::scoped_nsobject<NSUserActivity> userActivity([[NSUserActivity alloc] | 
| -      initWithActivityType:handoff::kChromeHandoffActivityType]); | 
| +  NSUserActivity* userActivity = [[NSUserActivity alloc] | 
| +      initWithActivityType:handoff::kChromeHandoffActivityType]; | 
|  | 
| // The test will fail is a method of those objects is called. | 
| id tabOpenerMock = [OCMockObject mockForProtocol:@protocol(TabOpening)]; | 
| @@ -256,8 +260,8 @@ TEST(UserActivityHandlerNoFixtureTest, | 
| return; | 
| } | 
| // Setup. | 
| -  base::scoped_nsobject<NSUserActivity> userActivity( | 
| -      [[NSUserActivity alloc] initWithActivityType:CSSearchableItemActionType]); | 
| +  NSUserActivity* userActivity = | 
| +      [[NSUserActivity alloc] initWithActivityType:CSSearchableItemActionType]; | 
| NSString* invalidAction = | 
| [NSString stringWithFormat:@"%@.invalidAction", | 
| spotlight::StringFromSpotlightDomain( | 
| @@ -290,8 +294,8 @@ TEST(UserActivityHandlerNoFixtureTest, | 
| // by saving the url to startupParameters. | 
| TEST(UserActivityHandlerNoFixtureTest, continueUserActivityBackground) { | 
| // Setup. | 
| -  base::scoped_nsobject<NSUserActivity> userActivity([[NSUserActivity alloc] | 
| -      initWithActivityType:handoff::kChromeHandoffActivityType]); | 
| +  NSUserActivity* userActivity = [[NSUserActivity alloc] | 
| +      initWithActivityType:handoff::kChromeHandoffActivityType]; | 
| NSURL* nsurl = [NSURL URLWithString:@"http://www.google.com"]; | 
| [userActivity setWebpageURL:nsurl]; | 
|  | 
| @@ -325,20 +329,19 @@ TEST(UserActivityHandlerNoFixtureTest, continueUserActivityBackground) { | 
| // by opening a new tab. | 
| TEST(UserActivityHandlerNoFixtureTest, continueUserActivityForeground) { | 
| // Setup. | 
| -  base::scoped_nsobject<NSUserActivity> userActivity([[NSUserActivity alloc] | 
| -      initWithActivityType:handoff::kChromeHandoffActivityType]); | 
| +  NSUserActivity* userActivity = [[NSUserActivity alloc] | 
| +      initWithActivityType:handoff::kChromeHandoffActivityType]; | 
| NSURL* nsurl = [NSURL URLWithString:@"http://www.google.com"]; | 
| [userActivity setWebpageURL:nsurl]; | 
|  | 
| -  base::scoped_nsobject<MockTabOpener> tabOpener([[MockTabOpener alloc] init]); | 
| +  MockTabOpener* tabOpener = [[MockTabOpener alloc] init]; | 
|  | 
| id startupInformationMock = | 
| [OCMockObject mockForProtocol:@protocol(StartupInformation)]; | 
| [[[startupInformationMock stub] andReturnValue:@NO] isPresentingFirstRunUI]; | 
|  | 
| -  base::scoped_nsobject<AppStartupParameters> startupParams( | 
| -      [[AppStartupParameters alloc] | 
| -          initWithExternalURL:(GURL("http://www.google.com"))]); | 
| +  AppStartupParameters* startupParams = [[AppStartupParameters alloc] | 
| +      initWithExternalURL:(GURL("http://www.google.com"))]; | 
| [[[startupInformationMock stub] andReturn:startupParams] startupParameters]; | 
|  | 
| // Action. | 
| @@ -356,18 +359,18 @@ TEST(UserActivityHandlerNoFixtureTest, continueUserActivityForeground) { | 
| // Tests that a new tab is created when application is started via Universal | 
| // Link. | 
| TEST_F(UserActivityHandlerTest, continueUserActivityBrowsingWeb) { | 
| -  base::scoped_nsobject<NSUserActivity> userActivity([[NSUserActivity alloc] | 
| -      initWithActivityType:NSUserActivityTypeBrowsingWeb]); | 
| +  NSUserActivity* userActivity = [[NSUserActivity alloc] | 
| +      initWithActivityType:NSUserActivityTypeBrowsingWeb]; | 
| // This URL is passed to application by iOS but is not used in this part | 
| // of application logic. | 
| NSURL* nsurl = [NSURL URLWithString:@"http://goo.gl/foo/bar"]; | 
| [userActivity setWebpageURL:nsurl]; | 
|  | 
| -  base::scoped_nsobject<MockTabOpener> tabOpener([[MockTabOpener alloc] init]); | 
| +  MockTabOpener* tabOpener = [[MockTabOpener alloc] init]; | 
|  | 
| // Use an object to capture the startup paramters set by UserActivityHandler. | 
| -  base::scoped_nsobject<FakeStartupInformation> fakeStartupInformation( | 
| -      [[FakeStartupInformation alloc] init]); | 
| +  FakeStartupInformation* fakeStartupInformation = | 
| +      [[FakeStartupInformation alloc] init]; | 
| [fakeStartupInformation setIsPresentingFirstRunUI:NO]; | 
|  | 
| BOOL result = | 
| @@ -395,8 +398,8 @@ TEST_F(UserActivityHandlerTest, continueUserActivityShortcutActions) { | 
| } | 
| // Setup. | 
| GURL gurlNewTab(kChromeUINewTabURL); | 
| -  base::scoped_nsobject<FakeStartupInformation> fakeStartupInformation( | 
| -      [[FakeStartupInformation alloc] init]); | 
| +  FakeStartupInformation* fakeStartupInformation = | 
| +      [[FakeStartupInformation alloc] init]; | 
|  | 
| NSArray* parametersToTest = @[ | 
| @[ | 
| @@ -422,8 +425,8 @@ TEST_F(UserActivityHandlerTest, continueUserActivityShortcutActions) { | 
| switches::kEnableSpotlightActions); | 
|  | 
| for (id parameters in parametersToTest) { | 
| -    base::scoped_nsobject<NSUserActivity> userActivity([[NSUserActivity alloc] | 
| -        initWithActivityType:CSSearchableItemActionType]); | 
| +    NSUserActivity* userActivity = [[NSUserActivity alloc] | 
| +        initWithActivityType:CSSearchableItemActionType]; | 
| NSString* action = [NSString | 
| stringWithFormat:@"%@.%@", spotlight::StringFromSpotlightDomain( | 
| spotlight::DOMAIN_ACTIONS), | 
| @@ -458,8 +461,8 @@ TEST(UserActivityHandlerNoFixtureTest, handleStartupParamsNonU2F) { | 
| // Setup. | 
| GURL gurl("http://www.google.com"); | 
|  | 
| -  base::scoped_nsobject<AppStartupParameters> startupParams( | 
| -      [[AppStartupParameters alloc] initWithExternalURL:gurl]); | 
| +  AppStartupParameters* startupParams = | 
| +      [[AppStartupParameters alloc] initWithExternalURL:gurl]; | 
| [startupParams setLaunchInIncognito:YES]; | 
|  | 
| id startupInformationMock = | 
| @@ -468,7 +471,7 @@ TEST(UserActivityHandlerNoFixtureTest, handleStartupParamsNonU2F) { | 
| [[[startupInformationMock stub] andReturn:startupParams] startupParameters]; | 
| [[startupInformationMock expect] setStartupParameters:nil]; | 
|  | 
| -  base::scoped_nsobject<MockTabOpener> tabOpener([[MockTabOpener alloc] init]); | 
| +  MockTabOpener* tabOpener = [[MockTabOpener alloc] init]; | 
|  | 
| // The test will fail is a method of this object is called. | 
| id browserViewMock = | 
| @@ -493,18 +496,18 @@ TEST(UserActivityHandlerNoFixtureTest, handleStartupParamsU2F) { | 
| GURL gurl("chromium://u2f-callback?isU2F=1&tabID=B05B1860"); | 
| NSString* tabID = [U2FController tabIDFromResponseURL:gurl]; | 
|  | 
| -  base::scoped_nsobject<AppStartupParameters> startupParams( | 
| -      [[AppStartupParameters alloc] initWithExternalURL:gurl]); | 
| +  AppStartupParameters* startupParams = | 
| +      [[AppStartupParameters alloc] initWithExternalURL:gurl]; | 
| [startupParams setLaunchInIncognito:YES]; | 
|  | 
| -  base::scoped_nsobject<UserActivityHandlerTabMock> tabMock( | 
| -      [[UserActivityHandlerTabMock alloc] init]); | 
| +  UserActivityHandlerTabMock* tabMock = | 
| +      [[UserActivityHandlerTabMock alloc] init]; | 
| id tabOCMock = [OCMockObject partialMockForObject:tabMock]; | 
| [[[tabOCMock stub] andReturn:tabID] tabId]; | 
|  | 
| -  base::scoped_nsobject<UserActivityHandlerTabModelMock> tabModel( | 
| -      [[UserActivityHandlerTabModelMock alloc] init]); | 
| -  [tabModel addTab:(Tab*)tabMock.get()]; | 
| +  UserActivityHandlerTabModelMock* tabModel = | 
| +      [[UserActivityHandlerTabModelMock alloc] init]; | 
| +  [tabModel addTab:(Tab*)tabMock]; | 
|  | 
| id startupInformationMock = | 
| [OCMockObject mockForProtocol:@protocol(StartupInformation)]; | 
| @@ -514,12 +517,12 @@ TEST(UserActivityHandlerNoFixtureTest, handleStartupParamsU2F) { | 
|  | 
| id browserViewInformationMock = | 
| [OCMockObject mockForProtocol:@protocol(BrowserViewInformation)]; | 
| -  [[[browserViewInformationMock stub] andReturn:(TabModel*)tabModel.get()] | 
| +  [[[browserViewInformationMock stub] andReturn:(TabModel*)tabModel] | 
| mainTabModel]; | 
| -  [[[browserViewInformationMock stub] andReturn:(TabModel*)tabModel.get()] | 
| +  [[[browserViewInformationMock stub] andReturn:(TabModel*)tabModel] | 
| otrTabModel]; | 
|  | 
| -  base::scoped_nsobject<MockTabOpener> tabOpener([[MockTabOpener alloc] init]); | 
| +  MockTabOpener* tabOpener = [[MockTabOpener alloc] init]; | 
|  | 
| // Action. | 
| [UserActivityHandler | 
| @@ -538,8 +541,8 @@ TEST_F(UserActivityHandlerTest, performActionForShortcutItemWithRealShortcut) { | 
| // Setup. | 
| GURL gurlNewTab("chrome://newtab/"); | 
|  | 
| -  base::scoped_nsobject<FakeStartupInformation> fakeStartupInformation( | 
| -      [[FakeStartupInformation alloc] init]); | 
| +  FakeStartupInformation* fakeStartupInformation = | 
| +      [[FakeStartupInformation alloc] init]; | 
| [fakeStartupInformation setIsPresentingFirstRunUI:NO]; | 
|  | 
| NSArray* parametersToTest = @[ | 
| @@ -551,9 +554,9 @@ TEST_F(UserActivityHandlerTest, performActionForShortcutItemWithRealShortcut) { | 
| swizzleHandleStartupParameters(); | 
|  | 
| for (id parameters in parametersToTest) { | 
| -    base::scoped_nsobject<UIApplicationShortcutItem> shortcut( | 
| +    UIApplicationShortcutItem* shortcut = | 
| [[UIApplicationShortcutItem alloc] initWithType:parameters[0] | 
| -                                         localizedTitle:parameters[0]]); | 
| +                                         localizedTitle:parameters[0]]; | 
|  | 
| resetHandleStartupParametersHasBeenCalled(); | 
|  | 
| @@ -593,9 +596,9 @@ TEST_F(UserActivityHandlerTest, performActionForShortcutItemWithFirstRunUI) { | 
| [OCMockObject mockForProtocol:@protocol(StartupInformation)]; | 
| [[[startupInformationMock stub] andReturnValue:@YES] isPresentingFirstRunUI]; | 
|  | 
| -  base::scoped_nsobject<UIApplicationShortcutItem> shortcut( | 
| +  UIApplicationShortcutItem* shortcut = | 
| [[UIApplicationShortcutItem alloc] initWithType:@"OpenNewTab" | 
| -                                       localizedTitle:@""]); | 
| +                                       localizedTitle:@""]; | 
|  | 
| swizzleHandleStartupParameters(); | 
|  | 
|  |