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

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

Issue 2671773005: Updated CRWSessionController interface to use NavigationItems. (Closed)
Patch Set: self review Created 3 years, 10 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/navigation_manager_storage_builder.mm
diff --git a/ios/web/navigation/navigation_manager_storage_builder.mm b/ios/web/navigation/navigation_manager_storage_builder.mm
index 7b454f66985c510139af7a65e91070d1b175544c..b8d933083f646621bf149868eb27701682cb31b2 100644
--- a/ios/web/navigation/navigation_manager_storage_builder.mm
+++ b/ios/web/navigation/navigation_manager_storage_builder.mm
@@ -7,6 +7,7 @@
#include "base/logging.h"
#include "base/mac/foundation_util.h"
#import "ios/web/navigation/crw_session_controller.h"
+#import "ios/web/navigation/crw_session_controller+private_constructors.h"
#import "ios/web/navigation/crw_session_entry.h"
#import "ios/web/navigation/navigation_item_impl.h"
#import "ios/web/navigation/navigation_item_storage_builder.h"
@@ -22,9 +23,7 @@ @interface CRWSessionController (ExposedForSerialization)
@property(nonatomic, readwrite, copy) NSString* openerId;
@property(nonatomic, readwrite, getter=isOpenedByDOM) BOOL openedByDOM;
@property(nonatomic, readwrite, assign) NSInteger openerNavigationIndex;
-@property(nonatomic, readwrite, assign) NSInteger currentNavigationIndex;
@property(nonatomic, readwrite, assign) NSInteger previousNavigationIndex;
-@property(nonatomic, readwrite, retain) NSArray* entries;
@property(nonatomic, readwrite, retain)
CRWSessionCertificatePolicyManager* sessionCertificatePolicyManager;
@end
@@ -54,9 +53,10 @@ @interface CRWSessionController (ExposedForSerialization)
session_controller.sessionCertificatePolicyManager;
NSMutableArray* item_storages = [[NSMutableArray alloc] init];
NavigationItemStorageBuilder item_storage_builder;
- for (CRWSessionEntry* entry in session_controller.entries) {
- [item_storages
- addObject:item_storage_builder.BuildStorage(entry.navigationItemImpl)];
+ for (size_t index = 0; index < session_controller.items.size(); ++index) {
+ web::NavigationItemImpl* item =
+ static_cast<web::NavigationItemImpl*>(session_controller.items[index]);
+ [item_storages addObject:item_storage_builder.BuildStorage(item)];
}
serialized_navigation_manager.itemStorages = item_storages;
return serialized_navigation_manager;
@@ -66,8 +66,20 @@ @interface CRWSessionController (ExposedForSerialization)
NavigationManagerStorageBuilder::BuildNavigationManagerImpl(
CRWNavigationManagerStorage* navigation_manager_serialization) const {
DCHECK(navigation_manager_serialization);
+ web::ScopedNavigationItemList items;
Eugene But (OOO till 7-30) 2017/02/03 23:33:33 Construct with size?
kkhorimoto 2017/02/04 02:45:30 Done.
+ NavigationItemStorageBuilder item_storage_builder;
+ NSArray* item_storages = navigation_manager_serialization.itemStorages;
+ for (CRWNavigationItemStorage* item_storage in item_storages) {
+ std::unique_ptr<NavigationItemImpl> item_impl =
+ item_storage_builder.BuildNavigationItemImpl(item_storage);
+ items.push_back(std::move(item_impl));
Eugene But (OOO till 7-30) 2017/02/03 23:33:33 emplace_back?
kkhorimoto 2017/02/04 02:45:30 It makes sense for BuildNavigationItemImpl() to re
+ }
+ NSUInteger currentIndex =
Eugene But (OOO till 7-30) 2017/02/03 23:33:33 s/currentIndex/current_index
kkhorimoto 2017/02/04 02:45:31 Done.
+ navigation_manager_serialization.currentNavigationIndex;
base::scoped_nsobject<CRWSessionController> session_controller(
- [[CRWSessionController alloc] init]);
+ [[CRWSessionController alloc] initWithNavigationItems:std::move(items)
+ currentIndex:currentIndex
+ browserState:nullptr]);
[session_controller setTabId:navigation_manager_serialization.tabID];
[session_controller setOpenerId:navigation_manager_serialization.openerID];
[session_controller
@@ -76,8 +88,6 @@ @interface CRWSessionController (ExposedForSerialization)
.openerNavigationIndex];
[session_controller
setWindowName:navigation_manager_serialization.windowName];
- [session_controller setCurrentNavigationIndex:navigation_manager_serialization
- .currentNavigationIndex];
[session_controller
setPreviousNavigationIndex:navigation_manager_serialization
.previousNavigationIndex];
@@ -86,17 +96,6 @@ @interface CRWSessionController (ExposedForSerialization)
[session_controller
setSessionCertificatePolicyManager:navigation_manager_serialization
.sessionCertificatePolicyManager];
- NavigationItemStorageBuilder item_storage_builder;
- NSArray* item_storages = navigation_manager_serialization.itemStorages;
- NSMutableArray* entries = [[NSMutableArray alloc] init];
- for (CRWNavigationItemStorage* item_storage in item_storages) {
- std::unique_ptr<NavigationItemImpl> item_impl =
- item_storage_builder.BuildNavigationItemImpl(item_storage);
- std::unique_ptr<NavigationItem> item(item_impl.release());
- [entries addObject:[[CRWSessionEntry alloc]
- initWithNavigationItem:std::move(item)]];
- }
- [session_controller setEntries:entries];
std::unique_ptr<NavigationManagerImpl> navigation_manager(
new NavigationManagerImpl());
navigation_manager->SetSessionController(session_controller);

Powered by Google App Engine
This is Rietveld 408576698