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

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

Issue 2664113003: Moved serialization out of CRWSessionEntry. (Closed)
Patch Set: BuildSerialization => BuildStorage, entries => itemStorages Created 3 years, 11 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_item_storage_builder.mm
diff --git a/ios/web/navigation/navigation_item_storage_builder.mm b/ios/web/navigation/navigation_item_storage_builder.mm
new file mode 100644
index 0000000000000000000000000000000000000000..1b166724fa5d2652becbc05585e74644aa00d62f
--- /dev/null
+++ b/ios/web/navigation/navigation_item_storage_builder.mm
@@ -0,0 +1,51 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import "ios/web/navigation/navigation_item_storage_builder.h"
+
+#import "ios/web/navigation/navigation_item_impl.h"
+#import "ios/web/public/crw_navigation_item_storage.h"
+
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
+namespace web {
+
+CRWNavigationItemStorage* NavigationItemStorageBuilder::BuildStorage(
+ NavigationItemImpl* navigation_item) const {
+ DCHECK(navigation_item);
+ CRWNavigationItemStorage* storage = [[CRWNavigationItemStorage alloc] init];
+ storage.virtualURL = navigation_item->GetVirtualURL();
+ storage.referrer = navigation_item->GetReferrer();
+ storage.timestamp = navigation_item->GetTimestamp();
+ storage.title = navigation_item->GetTitle();
+ storage.displayState = navigation_item->GetPageDisplayState();
+ storage.shouldSkipRepostFormConfirmation =
+ navigation_item->ShouldSkipRepostFormConfirmation();
+ storage.overridingUserAgent = navigation_item->IsOverridingUserAgent();
+ storage.POSTData = navigation_item->GetPostData();
+ storage.HTTPRequestHeaders = navigation_item->GetHttpRequestHeaders();
+ return storage;
+}
+
+std::unique_ptr<NavigationItemImpl>
+NavigationItemStorageBuilder::BuildNavigationItemImpl(
+ CRWNavigationItemStorage* navigation_item_storage) const {
+ std::unique_ptr<NavigationItemImpl> item(new web::NavigationItemImpl());
+ item->virtual_url_ = navigation_item_storage.virtualURL;
+ item->referrer_ = navigation_item_storage.referrer;
+ item->timestamp_ = navigation_item_storage.timestamp;
+ item->title_ = navigation_item_storage.title;
+ item->page_display_state_ = navigation_item_storage.displayState;
+ item->should_skip_repost_form_confirmation_ =
+ navigation_item_storage.shouldSkipRepostFormConfirmation;
+ item->is_overriding_user_agent_ = navigation_item_storage.overridingUserAgent;
+ item->post_data_.reset(navigation_item_storage.POSTData);
+ item->http_request_headers_.reset(
+ [navigation_item_storage.HTTPRequestHeaders mutableCopy]);
+ return item;
+}
+
+} // namespace web

Powered by Google App Engine
This is Rietveld 408576698