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

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

Issue 2722013002: Use custom user data to serialize Tab last visited timestamp. (Closed)
Patch Set: Rebase. 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"
(...skipping 26 matching lines...) Expand all
37 DCHECK(navigation_manager); 37 DCHECK(navigation_manager);
38 CRWSessionStorage* serialized_navigation_manager = 38 CRWSessionStorage* serialized_navigation_manager =
39 [[CRWSessionStorage alloc] init]; 39 [[CRWSessionStorage alloc] init];
40 CRWSessionController* session_controller = 40 CRWSessionController* session_controller =
41 navigation_manager->GetSessionController(); 41 navigation_manager->GetSessionController();
42 serialized_navigation_manager.openedByDOM = session_controller.openedByDOM; 42 serialized_navigation_manager.openedByDOM = session_controller.openedByDOM;
43 serialized_navigation_manager.currentNavigationIndex = 43 serialized_navigation_manager.currentNavigationIndex =
44 session_controller.currentNavigationIndex; 44 session_controller.currentNavigationIndex;
45 serialized_navigation_manager.previousNavigationIndex = 45 serialized_navigation_manager.previousNavigationIndex =
46 session_controller.previousNavigationIndex; 46 session_controller.previousNavigationIndex;
47 serialized_navigation_manager.lastVisitedTimestamp =
48 session_controller.lastVisitedTimestamp;
49 serialized_navigation_manager.sessionCertificatePolicyManager = 47 serialized_navigation_manager.sessionCertificatePolicyManager =
50 session_controller.sessionCertificatePolicyManager; 48 session_controller.sessionCertificatePolicyManager;
51 NSMutableArray* item_storages = [[NSMutableArray alloc] init]; 49 NSMutableArray* item_storages = [[NSMutableArray alloc] init];
52 NavigationItemStorageBuilder item_storage_builder; 50 NavigationItemStorageBuilder item_storage_builder;
53 for (size_t index = 0; index < session_controller.items.size(); ++index) { 51 for (size_t index = 0; index < session_controller.items.size(); ++index) {
54 web::NavigationItemImpl* item = 52 web::NavigationItemImpl* item =
55 static_cast<web::NavigationItemImpl*>(session_controller.items[index]); 53 static_cast<web::NavigationItemImpl*>(session_controller.items[index]);
56 [item_storages addObject:item_storage_builder.BuildStorage(item)]; 54 [item_storages addObject:item_storage_builder.BuildStorage(item)];
57 } 55 }
58 serialized_navigation_manager.itemStorages = item_storages; 56 serialized_navigation_manager.itemStorages = item_storages;
(...skipping 18 matching lines...) Expand all
77 items[index] = std::move(item_impl); 75 items[index] = std::move(item_impl);
78 } 76 }
79 NSUInteger current_index = storage.currentNavigationIndex; 77 NSUInteger current_index = storage.currentNavigationIndex;
80 base::scoped_nsobject<CRWSessionController> session_controller( 78 base::scoped_nsobject<CRWSessionController> session_controller(
81 [[CRWSessionController alloc] initWithBrowserState:nullptr 79 [[CRWSessionController alloc] initWithBrowserState:nullptr
82 navigationItems:std::move(items) 80 navigationItems:std::move(items)
83 currentIndex:current_index]); 81 currentIndex:current_index]);
84 [session_controller setOpenedByDOM:storage.openedByDOM]; 82 [session_controller setOpenedByDOM:storage.openedByDOM];
85 [session_controller 83 [session_controller
86 setPreviousNavigationIndex:storage.previousNavigationIndex]; 84 setPreviousNavigationIndex:storage.previousNavigationIndex];
87 [session_controller setLastVisitedTimestamp:storage.lastVisitedTimestamp];
88 [session_controller 85 [session_controller
89 setSessionCertificatePolicyManager:storage 86 setSessionCertificatePolicyManager:storage
90 .sessionCertificatePolicyManager]; 87 .sessionCertificatePolicyManager];
91 web_state->navigation_manager_.reset(new NavigationManagerImpl()); 88 web_state->navigation_manager_.reset(new NavigationManagerImpl());
92 web_state->navigation_manager_->SetSessionController(session_controller); 89 web_state->navigation_manager_->SetSessionController(session_controller);
93 web::SerializableUserDataManager::FromWebState(web_state) 90 web::SerializableUserDataManager::FromWebState(web_state)
94 ->AddSerializableUserData(storage.userData); 91 ->AddSerializableUserData(storage.userData);
95 } 92 }
96 93
97 } // namespace web 94 } // 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