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

Unified Diff: ios/web/navigation/session_storage_builder.mm

Issue 2944093002: Extract NavigationManagerImpl interface for navigation experiment. (Closed)
Patch Set: Patch for landing Created 3 years, 6 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/web/navigation/session_storage_builder.mm
diff --git a/ios/web/navigation/session_storage_builder.mm b/ios/web/navigation/session_storage_builder.mm
index 24ff60e340ccd5e7d63d361c5986212f4b2cde15..323fd82477d5e5063bfbb2ec1fb208cf20b16f66 100644
--- a/ios/web/navigation/session_storage_builder.mm
+++ b/ios/web/navigation/session_storage_builder.mm
@@ -11,6 +11,7 @@
#include "base/memory/ptr_util.h"
#import "ios/web/navigation/crw_session_controller+private_constructors.h"
#import "ios/web/navigation/crw_session_controller.h"
+#import "ios/web/navigation/legacy_navigation_manager_impl.h"
#import "ios/web/navigation/navigation_item_impl.h"
#import "ios/web/navigation/navigation_item_storage_builder.h"
#include "ios/web/navigation/navigation_manager_impl.h"
@@ -42,15 +43,18 @@ CRWSessionStorage* SessionStorageBuilder::BuildStorage(
DCHECK(navigation_manager);
CRWSessionStorage* session_storage = [[CRWSessionStorage alloc] init];
session_storage.hasOpener = web_state->HasOpener();
- CRWSessionController* session_controller =
- navigation_manager->GetSessionController();
session_storage.lastCommittedItemIndex =
- session_controller.lastCommittedItemIndex;
- session_storage.previousItemIndex = session_controller.previousItemIndex;
+ navigation_manager->GetLastCommittedItemIndex();
+ session_storage.previousItemIndex =
+ static_cast<NSInteger>(navigation_manager->GetPreviousItemIndex());
NSMutableArray* item_storages = [[NSMutableArray alloc] init];
NavigationItemStorageBuilder item_storage_builder;
- for (size_t index = 0; index < session_controller.items.size(); ++index) {
- web::NavigationItemImpl* item = session_controller.items[index].get();
+ for (size_t index = 0;
+ index < static_cast<size_t>(navigation_manager->GetItemCount());
+ ++index) {
+ web::NavigationItemImpl* item =
+ navigation_manager->GetNavigationItemImplAtIndex(index);
+ ;
[item_storages addObject:item_storage_builder.BuildStorage(item)];
}
session_storage.itemStorages = item_storages;
@@ -85,8 +89,11 @@ void SessionStorageBuilder::ExtractSessionState(
navigationItems:std::move(items)
lastCommittedItemIndex:last_committed_item_index]);
[session_controller setPreviousItemIndex:storage.previousItemIndex];
- web_state->navigation_manager_.reset(new NavigationManagerImpl());
- web_state->navigation_manager_->SetSessionController(session_controller);
+
+ auto navigation_manager = base::MakeUnique<LegacyNavigationManagerImpl>();
+ navigation_manager->SetSessionController(session_controller);
+ web_state->navigation_manager_.reset(navigation_manager.release());
+
SessionCertificatePolicyCacheStorageBuilder cert_builder;
std::unique_ptr<SessionCertificatePolicyCacheImpl> cert_policy_cache =
cert_builder.BuildSessionCertificatePolicyCache(
« no previous file with comments | « ios/web/navigation/navigation_manager_util_unittest.mm ('k') | ios/web/net/crw_ssl_status_updater_unittest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698