| Index: ios/chrome/browser/tabs/tab_model.mm | 
| diff --git a/ios/chrome/browser/tabs/tab_model.mm b/ios/chrome/browser/tabs/tab_model.mm | 
| index a1eb080f6cac845a04d210448d4c794ab5c27147..932268811848a8ad2e08c168834e9badcbce7256 100644 | 
| --- a/ios/chrome/browser/tabs/tab_model.mm | 
| +++ b/ios/chrome/browser/tabs/tab_model.mm | 
| @@ -331,29 +331,31 @@ Tab* GetOpenerForTab(id<NSFastEnumeration> tabs, Tab* tab) { | 
| initWithWebStateList:&_webStateList | 
| proxyFactory:[[TabModelWebStateProxyFactory alloc] init]]); | 
|  | 
| -    _observerBridges.push_back(base::MakeUnique<TabParentingObserver>()); | 
| -    _observerBridges.push_back(base::MakeUnique<WebStateListObserverBridge>( | 
| -        [[TabModelObserversBridge alloc] initWithTabModel:self | 
| -                                        tabModelObservers:_observers.get()])); | 
| -    _observerBridges.push_back(base::MakeUnique<WebStateListMetricsObserver>()); | 
| -    for (const auto& observerBridge : _observerBridges) | 
| -      _webStateList.AddObserver(observerBridge.get()); | 
| - | 
| _browserState = browserState; | 
| DCHECK(_browserState); | 
|  | 
| -    // There must be a valid session service defined to consume session windows. | 
| -    DCHECK(service); | 
| -    _sessionService.reset([service retain]); | 
| - | 
| // Normal browser states are the only ones to get tab restore. Tab sync | 
| // handles incognito browser states by filtering on profile, so it's | 
| // important to the backend code to always have a sync window delegate. | 
| if (!_browserState->IsOffTheRecord()) { | 
| // Set up the usage recorder before tabs are created. | 
| -      _tabUsageRecorder.reset(new TabUsageRecorder(self)); | 
| +      _tabUsageRecorder = base::MakeUnique<TabUsageRecorder>(self); | 
| } | 
| -    _syncedWindowDelegate.reset(new TabModelSyncedWindowDelegate(self)); | 
| +    _syncedWindowDelegate = | 
| +        base::MakeUnique<TabModelSyncedWindowDelegate>(self); | 
| + | 
| +    // There must be a valid session service defined to consume session windows. | 
| +    DCHECK(service); | 
| +    _sessionService.reset([service retain]); | 
| + | 
| +    _observerBridges.push_back(base::MakeUnique<TabParentingObserver>()); | 
| +    _observerBridges.push_back(base::MakeUnique<WebStateListObserverBridge>( | 
| +        [[TabModelObserversBridge alloc] initWithTabModel:self | 
| +                                        tabModelObservers:_observers.get()])); | 
| +    _observerBridges.push_back(base::MakeUnique<WebStateListMetricsObserver>()); | 
| + | 
| +    for (const auto& observerBridge : _observerBridges) | 
| +      _webStateList.AddObserver(observerBridge.get()); | 
|  | 
| if (window) { | 
| DCHECK([_observers empty]); | 
|  |