Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 <memory> | 7 #include <memory> |
| 8 | 8 |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/mac/foundation_util.h" | 10 #include "base/mac/foundation_util.h" |
| 11 #include "base/memory/ptr_util.h" | 11 #include "base/memory/ptr_util.h" |
| 12 #import "ios/web/navigation/crw_session_controller+private_constructors.h" | 12 #import "ios/web/navigation/crw_session_controller+private_constructors.h" |
| 13 #import "ios/web/navigation/crw_session_controller.h" | 13 #import "ios/web/navigation/crw_session_controller.h" |
| 14 #include "ios/web/navigation/legacy_navigation_manager_impl.h" | |
|
Eugene But (OOO till 7-30)
2017/06/20 22:49:04
s/include/import
danyao
2017/06/20 23:00:45
Done.
| |
| 14 #import "ios/web/navigation/navigation_item_impl.h" | 15 #import "ios/web/navigation/navigation_item_impl.h" |
| 15 #import "ios/web/navigation/navigation_item_storage_builder.h" | 16 #import "ios/web/navigation/navigation_item_storage_builder.h" |
| 16 #include "ios/web/navigation/navigation_manager_impl.h" | 17 #include "ios/web/navigation/navigation_manager_impl.h" |
| 17 #import "ios/web/public/crw_session_storage.h" | 18 #import "ios/web/public/crw_session_storage.h" |
| 18 #import "ios/web/public/serializable_user_data_manager.h" | 19 #import "ios/web/public/serializable_user_data_manager.h" |
| 19 #import "ios/web/web_state/session_certificate_policy_cache_impl.h" | 20 #import "ios/web/web_state/session_certificate_policy_cache_impl.h" |
| 20 #include "ios/web/web_state/session_certificate_policy_cache_storage_builder.h" | 21 #include "ios/web/web_state/session_certificate_policy_cache_storage_builder.h" |
| 21 #import "ios/web/web_state/web_state_impl.h" | 22 #import "ios/web/web_state/web_state_impl.h" |
| 22 | 23 |
| 23 #if !defined(__has_feature) || !__has_feature(objc_arc) | 24 #if !defined(__has_feature) || !__has_feature(objc_arc) |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 35 namespace web { | 36 namespace web { |
| 36 | 37 |
| 37 CRWSessionStorage* SessionStorageBuilder::BuildStorage( | 38 CRWSessionStorage* SessionStorageBuilder::BuildStorage( |
| 38 WebStateImpl* web_state) const { | 39 WebStateImpl* web_state) const { |
| 39 DCHECK(web_state); | 40 DCHECK(web_state); |
| 40 web::NavigationManagerImpl* navigation_manager = | 41 web::NavigationManagerImpl* navigation_manager = |
| 41 web_state->navigation_manager_.get(); | 42 web_state->navigation_manager_.get(); |
| 42 DCHECK(navigation_manager); | 43 DCHECK(navigation_manager); |
| 43 CRWSessionStorage* session_storage = [[CRWSessionStorage alloc] init]; | 44 CRWSessionStorage* session_storage = [[CRWSessionStorage alloc] init]; |
| 44 session_storage.hasOpener = web_state->HasOpener(); | 45 session_storage.hasOpener = web_state->HasOpener(); |
| 45 CRWSessionController* session_controller = | |
| 46 navigation_manager->GetSessionController(); | |
| 47 session_storage.lastCommittedItemIndex = | 46 session_storage.lastCommittedItemIndex = |
| 48 session_controller.lastCommittedItemIndex; | 47 navigation_manager->GetLastCommittedItemIndex(); |
| 49 session_storage.previousItemIndex = session_controller.previousItemIndex; | 48 session_storage.previousItemIndex = |
| 49 (NSInteger)navigation_manager->GetPreviousItemIndex(); | |
|
Eugene But (OOO till 7-30)
2017/06/20 22:49:03
Per C++ Style Guide:
static_cast<NSInteger>(naviga
danyao
2017/06/20 23:00:45
Done.
| |
| 50 NSMutableArray* item_storages = [[NSMutableArray alloc] init]; | 50 NSMutableArray* item_storages = [[NSMutableArray alloc] init]; |
| 51 NavigationItemStorageBuilder item_storage_builder; | 51 NavigationItemStorageBuilder item_storage_builder; |
| 52 for (size_t index = 0; index < session_controller.items.size(); ++index) { | 52 for (size_t index = 0; index < (size_t)navigation_manager->GetItemCount(); |
|
Eugene But (OOO till 7-30)
2017/06/20 22:49:03
ditto
danyao
2017/06/20 23:00:45
Done.
| |
| 53 web::NavigationItemImpl* item = session_controller.items[index].get(); | 53 ++index) { |
| 54 web::NavigationItemImpl* item = | |
| 55 navigation_manager->GetNavigationItemImplAtIndex(index); | |
| 56 ; | |
| 54 [item_storages addObject:item_storage_builder.BuildStorage(item)]; | 57 [item_storages addObject:item_storage_builder.BuildStorage(item)]; |
| 55 } | 58 } |
| 56 session_storage.itemStorages = item_storages; | 59 session_storage.itemStorages = item_storages; |
| 57 SessionCertificatePolicyCacheStorageBuilder cert_builder; | 60 SessionCertificatePolicyCacheStorageBuilder cert_builder; |
| 58 session_storage.certPolicyCacheStorage = cert_builder.BuildStorage( | 61 session_storage.certPolicyCacheStorage = cert_builder.BuildStorage( |
| 59 &web_state->GetSessionCertificatePolicyCacheImpl()); | 62 &web_state->GetSessionCertificatePolicyCacheImpl()); |
| 60 web::SerializableUserDataManager* user_data_manager = | 63 web::SerializableUserDataManager* user_data_manager = |
| 61 web::SerializableUserDataManager::FromWebState(web_state); | 64 web::SerializableUserDataManager::FromWebState(web_state); |
| 62 [session_storage | 65 [session_storage |
| 63 setSerializableUserData:user_data_manager->CreateSerializableUserData()]; | 66 setSerializableUserData:user_data_manager->CreateSerializableUserData()]; |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 78 item_storage_builder.BuildNavigationItemImpl(item_storages[index]); | 81 item_storage_builder.BuildNavigationItemImpl(item_storages[index]); |
| 79 items[index] = std::move(item_impl); | 82 items[index] = std::move(item_impl); |
| 80 } | 83 } |
| 81 NSUInteger last_committed_item_index = storage.lastCommittedItemIndex; | 84 NSUInteger last_committed_item_index = storage.lastCommittedItemIndex; |
| 82 base::scoped_nsobject<CRWSessionController> session_controller( | 85 base::scoped_nsobject<CRWSessionController> session_controller( |
| 83 [[CRWSessionController alloc] | 86 [[CRWSessionController alloc] |
| 84 initWithBrowserState:nullptr | 87 initWithBrowserState:nullptr |
| 85 navigationItems:std::move(items) | 88 navigationItems:std::move(items) |
| 86 lastCommittedItemIndex:last_committed_item_index]); | 89 lastCommittedItemIndex:last_committed_item_index]); |
| 87 [session_controller setPreviousItemIndex:storage.previousItemIndex]; | 90 [session_controller setPreviousItemIndex:storage.previousItemIndex]; |
| 88 web_state->navigation_manager_.reset(new NavigationManagerImpl()); | 91 |
| 89 web_state->navigation_manager_->SetSessionController(session_controller); | 92 auto navigation_manager = base::MakeUnique<LegacyNavigationManagerImpl>(); |
| 93 navigation_manager->SetSessionController(session_controller); | |
| 94 web_state->navigation_manager_.reset(navigation_manager.release()); | |
| 95 | |
| 90 SessionCertificatePolicyCacheStorageBuilder cert_builder; | 96 SessionCertificatePolicyCacheStorageBuilder cert_builder; |
| 91 std::unique_ptr<SessionCertificatePolicyCacheImpl> cert_policy_cache = | 97 std::unique_ptr<SessionCertificatePolicyCacheImpl> cert_policy_cache = |
| 92 cert_builder.BuildSessionCertificatePolicyCache( | 98 cert_builder.BuildSessionCertificatePolicyCache( |
| 93 storage.certPolicyCacheStorage); | 99 storage.certPolicyCacheStorage); |
| 94 if (!cert_policy_cache) | 100 if (!cert_policy_cache) |
| 95 cert_policy_cache = base::MakeUnique<SessionCertificatePolicyCacheImpl>(); | 101 cert_policy_cache = base::MakeUnique<SessionCertificatePolicyCacheImpl>(); |
| 96 web_state->certificate_policy_cache_ = std::move(cert_policy_cache); | 102 web_state->certificate_policy_cache_ = std::move(cert_policy_cache); |
| 97 web::SerializableUserDataManager::FromWebState(web_state) | 103 web::SerializableUserDataManager::FromWebState(web_state) |
| 98 ->AddSerializableUserData(storage.userData); | 104 ->AddSerializableUserData(storage.userData); |
| 99 } | 105 } |
| 100 | 106 |
| 101 } // namespace web | 107 } // namespace web |
| OLD | NEW |