Use TabIdTabHelper instead of tabId property from tab

TabIdTabHelper provides tabId given webstate. This is part of removing
tab usage and use webstate instead

Bug: 930816, 902049
Change-Id: I889e662fb165fd085d846b1fb4bb217911ace2f1
Reviewed-on: https://chromium-review.googlesource.com/c/1464113
Commit-Queue: Mohammad Refaat <mrefaat@chromium.org>
Reviewed-by: Eugene But <eugenebut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#631528}
diff --git a/ios/chrome/browser/crash_report/crash_report_helper.mm b/ios/chrome/browser/crash_report/crash_report_helper.mm
index 2bdafb39a..f28be28 100644
--- a/ios/chrome/browser/crash_report/crash_report_helper.mm
+++ b/ios/chrome/browser/crash_report/crash_report_helper.mm
@@ -146,7 +146,9 @@
     return;
   NSString* url = [notification.userInfo objectForKey:kTabUrlKey];
   DCHECK(url);
-  [self recordURL:url forTabId:tab.tabId pending:NO];
+  [self recordURL:url
+         forTabId:TabIdTabHelper::FromWebState(tab.webState)->tab_id()
+          pending:NO];
 }
 
 - (void)urlChangeExpected:(NSNotification*)notification {
@@ -156,7 +158,9 @@
     return;
   NSString* url = [notification.userInfo objectForKey:kTabUrlKey];
   DCHECK(url);
-  [self recordURL:url forTabId:tab.tabId pending:YES];
+  [self recordURL:url
+         forTabId:TabIdTabHelper::FromWebState(tab.webState)->tab_id()
+          pending:YES];
 }
 
 - (void)removeTabId:(NSString*)tabId {
@@ -203,14 +207,14 @@
 - (void)tabModel:(TabModel*)model
     didRemoveTab:(Tab*)tab
          atIndex:(NSUInteger)index {
-  [self removeTabId:tab.tabId];
+  [self removeTabId:TabIdTabHelper::FromWebState(tab.webState)->tab_id()];
 }
 
 - (void)tabModel:(TabModel*)model
     didReplaceTab:(Tab*)oldTab
           withTab:(Tab*)newTab
           atIndex:(NSUInteger)index {
-  [self removeTabId:oldTab.tabId];
+  [self removeTabId:TabIdTabHelper::FromWebState(oldTab.webState)->tab_id()];
 }
 
 - (void)tabModel:(TabModel*)model
@@ -222,7 +226,7 @@
   const GURL& URL = pendingItem ? pendingItem->GetURL()
                                 : newTab.webState->GetLastCommittedURL();
   [self recordURL:base::SysUTF8ToNSString(URL.spec())
-         forTabId:newTab.tabId
+         forTabId:TabIdTabHelper::FromWebState(newTab.webState)->tab_id()
           pending:pendingItem ? YES : NO];
 }
 
@@ -314,14 +318,14 @@
 - (void)tabModel:(TabModel*)model
     didRemoveTab:(Tab*)tab
          atIndex:(NSUInteger)index {
-  [self removeTabId:tab.tabId];
+  [self removeTabId:TabIdTabHelper::FromWebState(tab.webState)->tab_id()];
 }
 
 - (void)tabModel:(TabModel*)model
     didReplaceTab:(Tab*)oldTab
           withTab:(Tab*)newTab
           atIndex:(NSUInteger)index {
-  [self removeTabId:oldTab.tabId];
+  [self removeTabId:TabIdTabHelper::FromWebState(oldTab.webState)->tab_id()];
 }
 
 @end
diff --git a/ios/chrome/browser/tabs/tab.mm b/ios/chrome/browser/tabs/tab.mm
index aba4b5e..77645a8 100644
--- a/ios/chrome/browser/tabs/tab.mm
+++ b/ios/chrome/browser/tabs/tab.mm
@@ -278,7 +278,8 @@
       XCallbackFromRequestURL:requestURL
                     originURL:originURL
                        tabURL:self.webState->GetLastCommittedURL()
-                        tabID:self.tabId];
+                        tabID:TabIdTabHelper::FromWebState(self.webState)
+                                  ->tab_id()];
 }
 
 #pragma mark - CRWWebStateObserver protocol
diff --git a/ios/chrome/browser/tabs/tab_model.mm b/ios/chrome/browser/tabs/tab_model.mm
index b4d40e9..cd30656 100644
--- a/ios/chrome/browser/tabs/tab_model.mm
+++ b/ios/chrome/browser/tabs/tab_model.mm
@@ -51,6 +51,7 @@
 #import "ios/chrome/browser/tabs/tab_model_web_state_list_delegate.h"
 #import "ios/chrome/browser/tabs/tab_parenting_observer.h"
 #import "ios/chrome/browser/web/page_placeholder_tab_helper.h"
+#import "ios/chrome/browser/web/tab_id_tab_helper.h"
 #import "ios/chrome/browser/web_state_list/web_state_list.h"
 #import "ios/chrome/browser/web_state_list/web_state_list_metrics_observer.h"
 #import "ios/chrome/browser/web_state_list/web_state_list_observer.h"
@@ -730,8 +731,10 @@
 // Called when UIApplicationWillResignActiveNotification is received.
 - (void)willResignActive:(NSNotification*)notify {
   if (self.webUsageEnabled && self.currentTab) {
+    NSString* tabId =
+        TabIdTabHelper::FromWebState(self.currentTab.webState)->tab_id();
     [SnapshotCacheFactory::GetForBrowserState(_browserState)
-        willBeSavedGreyWhenBackgrounding:self.currentTab.tabId];
+        willBeSavedGreyWhenBackgrounding:tabId];
   }
 }
 
@@ -754,8 +757,11 @@
 
   // Write out a grey version of the current website to disk.
   if (self.webUsageEnabled && self.currentTab) {
+    NSString* tabId =
+        TabIdTabHelper::FromWebState(self.currentTab.webState)->tab_id();
+
     [SnapshotCacheFactory::GetForBrowserState(_browserState)
-        saveGreyInBackgroundForSessionID:self.currentTab.tabId];
+        saveGreyInBackgroundForSessionID:tabId];
   }
 }
 
diff --git a/ios/chrome/browser/ui/browser_view_controller.mm b/ios/chrome/browser/ui/browser_view_controller.mm
index ed7dc84f..4597fb83 100644
--- a/ios/chrome/browser/ui/browser_view_controller.mm
+++ b/ios/chrome/browser/ui/browser_view_controller.mm
@@ -168,6 +168,7 @@
 #import "ios/chrome/browser/web/page_placeholder_tab_helper.h"
 #import "ios/chrome/browser/web/repost_form_tab_helper.h"
 #import "ios/chrome/browser/web/sad_tab_tab_helper.h"
+#import "ios/chrome/browser/web/tab_id_tab_helper.h"
 #import "ios/chrome/browser/web/web_navigation_util.h"
 #include "ios/chrome/browser/web_state_list/all_web_state_observation_forwarder.h"
 #import "ios/chrome/browser/web_state_list/web_state_list.h"
@@ -2982,7 +2983,9 @@
 - (BOOL)displaySignInNotification:(UIViewController*)viewController
                         fromTabId:(NSString*)tabId {
   // Check if the call comes from currently visible tab.
-  if ([tabId isEqual:self.tabModel.currentTab.tabId]) {
+  NSString* visibleTabId =
+      TabIdTabHelper::FromWebState(self.tabModel.currentTab.webState)->tab_id();
+  if ([tabId isEqual:visibleTabId]) {
     [self addChildViewController:viewController];
     [self.view addSubview:viewController.view];
     [viewController didMoveToParentViewController:self];
@@ -4531,7 +4534,8 @@
 
   [_paymentRequestManager stopTrackingWebState:tab.webState];
 
-  [[UpgradeCenter sharedInstance] tabWillClose:tab.tabId];
+  [[UpgradeCenter sharedInstance]
+      tabWillClose:TabIdTabHelper::FromWebState(tab.webState)->tab_id()];
   if ([model count] == 1) {  // About to remove the last tab.
     [_paymentRequestManager setActiveWebState:nullptr];
   }
diff --git a/ios/chrome/browser/ui/side_swipe/side_swipe_controller.mm b/ios/chrome/browser/ui/side_swipe/side_swipe_controller.mm
index 208b6278..61cf4bb 100644
--- a/ios/chrome/browser/ui/side_swipe/side_swipe_controller.mm
+++ b/ios/chrome/browser/ui/side_swipe/side_swipe_controller.mm
@@ -27,6 +27,7 @@
 #import "ios/chrome/browser/ui/toolbar/public/side_swipe_toolbar_interacting.h"
 #include "ios/chrome/browser/ui/util/ui_util.h"
 #import "ios/chrome/browser/web/page_placeholder_tab_helper.h"
+#import "ios/chrome/browser/web/tab_id_tab_helper.h"
 #import "ios/chrome/browser/web/web_navigation_util.h"
 #import "ios/chrome/browser/web_state_list/web_state_list.h"
 #import "ios/web/public/navigation_item.h"
@@ -289,7 +290,8 @@
     Tab* tab = [model_ tabAtIndex:index];
     if (tab && PagePlaceholderTabHelper::FromWebState(tab.webState)
                    ->will_add_placeholder_for_next_navigation()) {
-      [sessionIDs addObject:tab.tabId];
+      [sessionIDs
+          addObject:TabIdTabHelper::FromWebState(tab.webState)->tab_id()];
     }
     index = index + dx;
   }