Index: ios/chrome/browser/tabs/tab_model_synced_window_delegate.mm |
diff --git a/ios/chrome/browser/tabs/tab_model_synced_window_delegate.mm b/ios/chrome/browser/tabs/tab_model_synced_window_delegate.mm |
index 1dc244cc1edd4d6794cddcfbca9d4153b4e04de4..e59baee3c1a1f42b6fd3a046af26d439879aeb66 100644 |
--- a/ios/chrome/browser/tabs/tab_model_synced_window_delegate.mm |
+++ b/ios/chrome/browser/tabs/tab_model_synced_window_delegate.mm |
@@ -4,17 +4,20 @@ |
#include "ios/chrome/browser/tabs/tab_model_synced_window_delegate.h" |
-#include <set> |
- |
#include "base/logging.h" |
#include "ios/chrome/browser/browser_state/chrome_browser_state.h" |
#include "ios/chrome/browser/sync/ios_chrome_synced_tab_delegate.h" |
-#include "ios/chrome/browser/tabs/tab.h" |
-#include "ios/chrome/browser/tabs/tab_model.h" |
+#import "ios/chrome/browser/web_state_list/web_state_list.h" |
#import "ios/web/public/web_state/web_state.h" |
-TabModelSyncedWindowDelegate::TabModelSyncedWindowDelegate(TabModel* tab_model) |
- : tab_model_(tab_model) {} |
+#if !defined(__has_feature) || !__has_feature(objc_arc) |
+#error "This file requires ARC support." |
+#endif |
+ |
+TabModelSyncedWindowDelegate::TabModelSyncedWindowDelegate( |
+ WebStateList* web_state_list, |
+ SessionID session_id) |
+ : web_state_list_(web_state_list), session_id_(session_id) {} |
TabModelSyncedWindowDelegate::~TabModelSyncedWindowDelegate() {} |
@@ -25,13 +28,8 @@ bool TabModelSyncedWindowDelegate::IsTabPinned( |
sync_sessions::SyncedTabDelegate* TabModelSyncedWindowDelegate::GetTabAt( |
int index) const { |
- sync_sessions::SyncedTabDelegate* delegate = |
- IOSChromeSyncedTabDelegate::FromWebState( |
- [tab_model_ tabAtIndex:index].webState); |
- if (!delegate) { |
- return nullptr; |
- } |
- return delegate; |
+ return IOSChromeSyncedTabDelegate::FromWebState( |
+ web_state_list_->GetWebStateAt(index)); |
} |
SessionID::id_type TabModelSyncedWindowDelegate::GetTabIdAt(int index) const { |
@@ -47,17 +45,16 @@ bool TabModelSyncedWindowDelegate::HasWindow() const { |
} |
SessionID::id_type TabModelSyncedWindowDelegate::GetSessionId() const { |
- return tab_model_.sessionID.id(); |
+ return session_id_.id(); |
} |
int TabModelSyncedWindowDelegate::GetTabCount() const { |
- return [tab_model_ count]; |
+ return web_state_list_->count(); |
} |
int TabModelSyncedWindowDelegate::GetActiveIndex() const { |
- Tab* current_tab = [tab_model_ currentTab]; |
- DCHECK(current_tab); |
- return [tab_model_ indexOfTab:current_tab]; |
+ DCHECK_NE(web_state_list_->active_index(), WebStateList::kInvalidIndex); |
+ return web_state_list_->active_index(); |
} |
bool TabModelSyncedWindowDelegate::IsApp() const { |