[iOS][tabmodel] Deprecation of TabModel in BrowserViewController.

This CL removes BrowserViewController's dependence on TabModel in
|setPrimary|.

Bug: 1045575, 1049842
Change-Id: I82aebf6ed8eee23e1a48043090a8b6164e281ec5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2170266
Reviewed-by: Mark Cogan <marq@chromium.org>
Commit-Queue: Nazerke Kalidolda <nazerke@google.com>
Cr-Commit-Position: refs/heads/master@{#763372}
diff --git a/ios/chrome/browser/tabs/tab_model.h b/ios/chrome/browser/tabs/tab_model.h
index 76667fcf..0385829 100644
--- a/ios/chrome/browser/tabs/tab_model.h
+++ b/ios/chrome/browser/tabs/tab_model.h
@@ -55,9 +55,6 @@
 // Records tab session metrics.
 - (void)recordSessionMetrics;
 
-// Sets whether the user is primarily interacting with this tab model.
-- (void)setPrimary:(BOOL)primary;
-
 // Tells the receiver to disconnect from the model object it depends on. This
 // should be called before destroying the browser state that the receiver was
 // initialized with.
diff --git a/ios/chrome/browser/tabs/tab_model.mm b/ios/chrome/browser/tabs/tab_model.mm
index 3a29fff..8163a57 100644
--- a/ios/chrome/browser/tabs/tab_model.mm
+++ b/ios/chrome/browser/tabs/tab_model.mm
@@ -346,13 +346,6 @@
     _webStateListMetricsObserver->RecordSessionMetrics();
 }
 
-- (void)setPrimary:(BOOL)primary {
-  if (_tabUsageRecorder) {
-    _tabUsageRecorder->RecordPrimaryTabModelChange(
-        primary, self.webStateList->GetActiveWebState());
-  }
-}
-
 // NOTE: This can be called multiple times, so must be robust against that.
 - (void)disconnect {
   if (!_browserState)
diff --git a/ios/chrome/browser/tabs/tab_model_unittest.mm b/ios/chrome/browser/tabs/tab_model_unittest.mm
index 98a54a1..1cffa2e2 100644
--- a/ios/chrome/browser/tabs/tab_model_unittest.mm
+++ b/ios/chrome/browser/tabs/tab_model_unittest.mm
@@ -84,7 +84,6 @@
 
   TabModel* CreateTabModel(SessionWindowIOS* session_window) {
     TabModel* tab_model([[TabModel alloc] initWithBrowser:browser_.get()]);
-    [tab_model setPrimary:YES];
     return tab_model;
   }
 
diff --git a/ios/chrome/browser/ui/browser_view/browser_view_controller.mm b/ios/chrome/browser/ui/browser_view/browser_view_controller.mm
index 3a38e5b..6ed8113 100644
--- a/ios/chrome/browser/ui/browser_view/browser_view_controller.mm
+++ b/ios/chrome/browser/ui/browser_view/browser_view_controller.mm
@@ -62,7 +62,6 @@
 #import "ios/chrome/browser/ssl/captive_portal_detector_tab_helper.h"
 #import "ios/chrome/browser/ssl/captive_portal_detector_tab_helper_delegate.h"
 #include "ios/chrome/browser/system_flags.h"
-#import "ios/chrome/browser/tabs/tab_model.h"
 #import "ios/chrome/browser/translate/chrome_ios_translate_client.h"
 #import "ios/chrome/browser/ui/activity_services/requirements/activity_service_positioner.h"
 #import "ios/chrome/browser/ui/alert_coordinator/alert_coordinator.h"
@@ -771,10 +770,6 @@
   return _voiceSearchController && _voiceSearchController->IsPlayingAudio();
 }
 
-- (TabModel*)tabModel {
-  return self.browser ? self.browser->GetTabModel() : nil;
-}
-
 - (ChromeBrowserState*)browserState {
   return self.browser ? self.browser->GetBrowserState() : nullptr;
 }
@@ -1024,7 +1019,12 @@
 }
 
 - (void)setPrimary:(BOOL)primary {
-  [self.tabModel setPrimary:primary];
+  TabUsageRecorderBrowserAgent* tabUsageRecorder =
+      TabUsageRecorderBrowserAgent::FromBrowser(_browser);
+  if (tabUsageRecorder) {
+    tabUsageRecorder->RecordPrimaryTabModelChange(
+        primary, _browser->GetWebStateList()->GetActiveWebState());
+  }
   if (primary) {
     [self updateBroadcastState];
   }