Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(60)

Unified Diff: ios/chrome/browser/sessions/tab_restore_service_delegate_impl_ios.mm

Issue 2775623002: [ios] WebStateList owns all WebState it manages. (Closed)
Patch Set: Fix ios_chrome_unittests. Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ios/chrome/browser/sessions/tab_restore_service_delegate_impl_ios.mm
diff --git a/ios/chrome/browser/sessions/tab_restore_service_delegate_impl_ios.mm b/ios/chrome/browser/sessions/tab_restore_service_delegate_impl_ios.mm
index c1a9437cf8263db0fe1e8b699f6dad2b2763af0c..b056d6c3031b0a40d4c3550a64c95d13e2c95e40 100644
--- a/ios/chrome/browser/sessions/tab_restore_service_delegate_impl_ios.mm
+++ b/ios/chrome/browser/sessions/tab_restore_service_delegate_impl_ios.mm
@@ -15,13 +15,12 @@
#import "ios/chrome/browser/tabs/tab.h"
#import "ios/chrome/browser/tabs/tab_model.h"
#import "ios/chrome/browser/tabs/tab_model_list.h"
+#import "ios/shared/chrome/browser/tabs/web_state_list.h"
#import "ios/web/navigation/navigation_manager_impl.h"
#include "ios/web/public/navigation_item.h"
#import "ios/web/web_state/web_state_impl.h"
#import "net/base/mac/url_conversions.h"
-using web::WebStateImpl;
-
TabRestoreServiceDelegateImplIOS::TabRestoreServiceDelegateImplIOS(
ios::ChromeBrowserState* browser_state)
: browser_state_(browser_state) {}
@@ -80,16 +79,16 @@ sessions::LiveTab* TabRestoreServiceDelegateImplIOS::AddRestoredTab(
DCHECK_LT(selected_navigation, static_cast<int>(navigations.size()));
web::WebState::CreateParams params(browser_state_);
- std::unique_ptr<WebStateImpl> webState(new WebStateImpl(params));
+ std::unique_ptr<web::WebStateImpl> web_state(new web::WebStateImpl(params));
std::vector<std::unique_ptr<web::NavigationItem>> items =
sessions::IOSSerializedNavigationBuilder::ToNavigationItems(navigations);
- webState->GetNavigationManagerImpl().ReplaceSessionHistory(
+ web_state->GetNavigationManagerImpl().ReplaceSessionHistory(
std::move(items), selected_navigation);
- TabModel* tabModel = tab_model();
- Tab* tab =
- [tabModel insertTabWithWebState:std::move(webState) atIndex:tab_index];
+
+ WebStateList* web_state_list = [tab_model() webStateList];
+ web_state_list->InsertWebState(tab_index, std::move(web_state));
// TODO(crbug.com/661636): Handle tab-switch animation somehow...
- [tabModel setCurrentTab:tab];
+ web_state_list->ActivateWebStateAt(tab_index);
return nullptr;
}
@@ -113,5 +112,6 @@ sessions::LiveTab* TabRestoreServiceDelegateImplIOS::ReplaceRestoredTab(
}
void TabRestoreServiceDelegateImplIOS::CloseTab() {
- [[tab_model() currentTab] close];
+ TabModel* model = tab_model();
+ [model closeTab:model.currentTab];
rohitrao (ping after 24h) 2017/03/26 23:21:21 We still need to call the TabModel API for this, n
sdefresne 2017/03/28 15:15:05 No, we could call WebStateList (-closeTab: is just
}

Powered by Google App Engine
This is Rietveld 408576698