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

Side by Side Diff: ios/web/navigation/session_storage_builder.mm

Issue 2720613005: Refactor serialisation of openerId & openerNavigationIndex. (Closed)
Patch Set: Fix CRWSessionController's initializer comment. 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import "ios/web/navigation/session_storage_builder.h" 5 #import "ios/web/navigation/session_storage_builder.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/mac/foundation_util.h" 8 #include "base/mac/foundation_util.h"
9 #import "ios/web/navigation/crw_session_controller+private_constructors.h" 9 #import "ios/web/navigation/crw_session_controller+private_constructors.h"
10 #import "ios/web/navigation/crw_session_controller.h" 10 #import "ios/web/navigation/crw_session_controller.h"
11 #import "ios/web/navigation/crw_session_entry.h" 11 #import "ios/web/navigation/crw_session_entry.h"
12 #import "ios/web/navigation/navigation_item_impl.h" 12 #import "ios/web/navigation/navigation_item_impl.h"
13 #import "ios/web/navigation/navigation_item_storage_builder.h" 13 #import "ios/web/navigation/navigation_item_storage_builder.h"
14 #include "ios/web/navigation/navigation_manager_impl.h" 14 #include "ios/web/navigation/navigation_manager_impl.h"
15 #import "ios/web/public/crw_session_storage.h" 15 #import "ios/web/public/crw_session_storage.h"
16 #import "ios/web/public/serializable_user_data_manager.h" 16 #import "ios/web/public/serializable_user_data_manager.h"
17 #import "ios/web/web_state/web_state_impl.h" 17 #import "ios/web/web_state/web_state_impl.h"
18 18
19 // CRWSessionController's readonly properties redefined as readwrite. These 19 // CRWSessionController's readonly properties redefined as readwrite. These
20 // will be removed and NavigationManagerImpl's ivars will be written directly 20 // will be removed and NavigationManagerImpl's ivars will be written directly
21 // as this functionality moves from CRWSessionController to 21 // as this functionality moves from CRWSessionController to
22 // NavigationManagerImpl; 22 // NavigationManagerImpl;
23 @interface CRWSessionController (ExposedForSerialization) 23 @interface CRWSessionController (ExposedForSerialization)
24 @property(nonatomic, readwrite, retain) NSString* tabId; 24 @property(nonatomic, readwrite, retain) NSString* tabId;
25 @property(nonatomic, readwrite, copy) NSString* openerId;
26 @property(nonatomic, readwrite, getter=isOpenedByDOM) BOOL openedByDOM; 25 @property(nonatomic, readwrite, getter=isOpenedByDOM) BOOL openedByDOM;
27 @property(nonatomic, readwrite, assign) NSInteger openerNavigationIndex;
28 @property(nonatomic, readwrite, assign) NSInteger previousNavigationIndex; 26 @property(nonatomic, readwrite, assign) NSInteger previousNavigationIndex;
29 @property(nonatomic, readwrite, retain) 27 @property(nonatomic, readwrite, retain)
30 CRWSessionCertificatePolicyManager* sessionCertificatePolicyManager; 28 CRWSessionCertificatePolicyManager* sessionCertificatePolicyManager;
31 @end 29 @end
32 30
33 namespace web { 31 namespace web {
34 32
35 CRWSessionStorage* SessionStorageBuilder::BuildStorage( 33 CRWSessionStorage* SessionStorageBuilder::BuildStorage(
36 WebStateImpl* web_state) const { 34 WebStateImpl* web_state) const {
37 DCHECK(web_state); 35 DCHECK(web_state);
38 web::NavigationManagerImpl* navigation_manager = 36 web::NavigationManagerImpl* navigation_manager =
39 web_state->navigation_manager_.get(); 37 web_state->navigation_manager_.get();
40 DCHECK(navigation_manager); 38 DCHECK(navigation_manager);
41 CRWSessionStorage* serialized_navigation_manager = 39 CRWSessionStorage* serialized_navigation_manager =
42 [[CRWSessionStorage alloc] init]; 40 [[CRWSessionStorage alloc] init];
43 CRWSessionController* session_controller = 41 CRWSessionController* session_controller =
44 navigation_manager->GetSessionController(); 42 navigation_manager->GetSessionController();
45 serialized_navigation_manager.openerID = session_controller.openerId;
46 serialized_navigation_manager.openedByDOM = session_controller.openedByDOM; 43 serialized_navigation_manager.openedByDOM = session_controller.openedByDOM;
47 serialized_navigation_manager.openerNavigationIndex =
48 session_controller.openerNavigationIndex;
49 serialized_navigation_manager.windowName = session_controller.windowName; 44 serialized_navigation_manager.windowName = session_controller.windowName;
50 serialized_navigation_manager.currentNavigationIndex = 45 serialized_navigation_manager.currentNavigationIndex =
51 session_controller.currentNavigationIndex; 46 session_controller.currentNavigationIndex;
52 serialized_navigation_manager.previousNavigationIndex = 47 serialized_navigation_manager.previousNavigationIndex =
53 session_controller.previousNavigationIndex; 48 session_controller.previousNavigationIndex;
54 serialized_navigation_manager.lastVisitedTimestamp = 49 serialized_navigation_manager.lastVisitedTimestamp =
55 session_controller.lastVisitedTimestamp; 50 session_controller.lastVisitedTimestamp;
56 serialized_navigation_manager.sessionCertificatePolicyManager = 51 serialized_navigation_manager.sessionCertificatePolicyManager =
57 session_controller.sessionCertificatePolicyManager; 52 session_controller.sessionCertificatePolicyManager;
58 NSMutableArray* item_storages = [[NSMutableArray alloc] init]; 53 NSMutableArray* item_storages = [[NSMutableArray alloc] init];
(...skipping 22 matching lines...) Expand all
81 for (size_t index = 0; index < item_storages.count; ++index) { 76 for (size_t index = 0; index < item_storages.count; ++index) {
82 std::unique_ptr<NavigationItemImpl> item_impl = 77 std::unique_ptr<NavigationItemImpl> item_impl =
83 item_storage_builder.BuildNavigationItemImpl(item_storages[index]); 78 item_storage_builder.BuildNavigationItemImpl(item_storages[index]);
84 items[index] = std::move(item_impl); 79 items[index] = std::move(item_impl);
85 } 80 }
86 NSUInteger current_index = storage.currentNavigationIndex; 81 NSUInteger current_index = storage.currentNavigationIndex;
87 base::scoped_nsobject<CRWSessionController> session_controller( 82 base::scoped_nsobject<CRWSessionController> session_controller(
88 [[CRWSessionController alloc] initWithNavigationItems:std::move(items) 83 [[CRWSessionController alloc] initWithNavigationItems:std::move(items)
89 currentIndex:current_index 84 currentIndex:current_index
90 browserState:nullptr]); 85 browserState:nullptr]);
91 [session_controller setOpenerId:storage.openerID];
92 [session_controller setOpenedByDOM:storage.openedByDOM]; 86 [session_controller setOpenedByDOM:storage.openedByDOM];
93 [session_controller setOpenerNavigationIndex:storage.openerNavigationIndex];
94 [session_controller setWindowName:storage.windowName]; 87 [session_controller setWindowName:storage.windowName];
95 [session_controller 88 [session_controller
96 setPreviousNavigationIndex:storage.previousNavigationIndex]; 89 setPreviousNavigationIndex:storage.previousNavigationIndex];
97 [session_controller setLastVisitedTimestamp:storage.lastVisitedTimestamp]; 90 [session_controller setLastVisitedTimestamp:storage.lastVisitedTimestamp];
98 [session_controller 91 [session_controller
99 setSessionCertificatePolicyManager:storage 92 setSessionCertificatePolicyManager:storage
100 .sessionCertificatePolicyManager]; 93 .sessionCertificatePolicyManager];
101 web_state->navigation_manager_.reset(new NavigationManagerImpl()); 94 web_state->navigation_manager_.reset(new NavigationManagerImpl());
102 web_state->navigation_manager_->SetSessionController(session_controller); 95 web_state->navigation_manager_->SetSessionController(session_controller);
103 web::SerializableUserDataManager::FromWebState(web_state) 96 web::SerializableUserDataManager::FromWebState(web_state)
104 ->AddSerializableUserData(storage.userData); 97 ->AddSerializableUserData(storage.userData);
105 } 98 }
106 99
107 } // namespace web 100 } // namespace web
OLDNEW
« no previous file with comments | « ios/web/navigation/serializable_user_data_manager_impl.mm ('k') | ios/web/public/crw_session_storage.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698