Index: ios/web/navigation/crw_session_entry.mm |
diff --git a/ios/web/navigation/crw_session_entry.mm b/ios/web/navigation/crw_session_entry.mm |
index c5bd035b0f852eff8350db39c3eaaab7293b9f96..816fef83915216132a04e8bff96bd1a2450b762d 100644 |
--- a/ios/web/navigation/crw_session_entry.mm |
+++ b/ios/web/navigation/crw_session_entry.mm |
@@ -50,12 +50,6 @@ @interface CRWSessionEntry () { |
std::unique_ptr<web::NavigationItemImpl> _navigationItem; |
} |
-// Converts a serialized NSDictionary to a web::PageDisplayState. |
-+ (web::PageDisplayState)pageDisplayStateFromDictionary: |
- (NSDictionary*)dictionary; |
-// Serializes a web::PageDisplayState to an NSDictionary. |
-+ (NSDictionary*)dictionaryFromPageDisplayState: |
- (const web::PageDisplayState&)displayState; |
// Returns a readable description of |displayState|. |
+ (NSString*)descriptionForPageDisplayState: |
(const web::PageDisplayState&)displayState; |
@@ -73,93 +67,6 @@ - (instancetype)initWithNavigationItem: |
return self; |
} |
-- (instancetype)initWithCoder:(NSCoder*)aDecoder { |
- self = [super init]; |
- if (self) { |
- _navigationItem.reset(new web::NavigationItemImpl()); |
- |
- // Desktop chrome only persists virtualUrl_ and uses it to feed the url |
- // when creating a NavigationEntry. |
- GURL url; |
- if ([aDecoder containsValueForKey:web::kSessionEntryURLKey]) { |
- url = GURL( |
- web::nscoder_util::DecodeString(aDecoder, web::kSessionEntryURLKey)); |
- } else { |
- // Backward compatibility. |
- url = net::GURLWithNSURL( |
- [aDecoder decodeObjectForKey:web::kSessionEntryURLDeperecatedKey]); |
- } |
- _navigationItem->SetOriginalRequestURL(url); |
- _navigationItem->SetURL(url); |
- |
- if ([aDecoder containsValueForKey:web::kSessionEntryReferrerURLKey]) { |
- const std::string referrerString(web::nscoder_util::DecodeString( |
- aDecoder, web::kSessionEntryReferrerURLKey)); |
- web::ReferrerPolicy referrerPolicy = static_cast<web::ReferrerPolicy>( |
- [aDecoder decodeIntForKey:web::kSessionEntryReferrerPolicyKey]); |
- _navigationItem->SetReferrer( |
- web::Referrer(GURL(referrerString), referrerPolicy)); |
- } else { |
- // Backward compatibility. |
- NSURL* referrer = [aDecoder |
- decodeObjectForKey:web::kSessionEntryReferrerURLDeprecatedKey]; |
- _navigationItem->SetReferrer(web::Referrer( |
- net::GURLWithNSURL(referrer), web::ReferrerPolicyDefault)); |
- } |
- |
- if ([aDecoder containsValueForKey:web::kSessionEntryTimestampKey]) { |
- int64_t us = [aDecoder decodeInt64ForKey:web::kSessionEntryTimestampKey]; |
- _navigationItem->SetTimestamp(base::Time::FromInternalValue(us)); |
- } |
- |
- NSString* title = [aDecoder decodeObjectForKey:web::kSessionEntryTitleKey]; |
- // Use a transition type of reload so that we don't incorrectly increase |
- // the typed count. This is what desktop chrome does. |
- _navigationItem->SetTitle(base::SysNSStringToUTF16(title)); |
- _navigationItem->SetTransitionType(ui::PAGE_TRANSITION_RELOAD); |
- _navigationItem->SetPageDisplayState([[self class] |
- pageDisplayStateFromDictionary: |
- [aDecoder |
- decodeObjectForKey:web::kSessionEntryPageScrollStateKey]]); |
- _navigationItem->SetShouldSkipRepostFormConfirmation([aDecoder |
- decodeBoolForKey:web::kSessionEntrySkipRepostFormConfirmationKey]); |
- _navigationItem->SetIsOverridingUserAgent( |
- [aDecoder decodeBoolForKey:web::kSessionEntryUseDesktopUserAgentKey]); |
- _navigationItem->SetPostData( |
- [aDecoder decodeObjectForKey:web::kSessionEntryPOSTDataKey]); |
- _navigationItem->AddHttpRequestHeaders( |
- [aDecoder decodeObjectForKey:web::kSessionEntryHTTPRequestHeadersKey]); |
- } |
- return self; |
-} |
- |
-- (void)encodeWithCoder:(NSCoder*)aCoder { |
- // Desktop Chrome doesn't persist |url_| or |originalUrl_|, only |
- // |virtualUrl_|. |
- web::nscoder_util::EncodeString(aCoder, web::kSessionEntryURLKey, |
- _navigationItem->GetVirtualURL().spec()); |
- web::nscoder_util::EncodeString(aCoder, web::kSessionEntryReferrerURLKey, |
- _navigationItem->GetReferrer().url.spec()); |
- [aCoder encodeInt:_navigationItem->GetReferrer().policy |
- forKey:web::kSessionEntryReferrerPolicyKey]; |
- [aCoder encodeInt64:_navigationItem->GetTimestamp().ToInternalValue() |
- forKey:web::kSessionEntryTimestampKey]; |
- |
- [aCoder encodeObject:base::SysUTF16ToNSString(_navigationItem->GetTitle()) |
- forKey:web::kSessionEntryTitleKey]; |
- [aCoder encodeObject:[[self class] dictionaryFromPageDisplayState: |
- _navigationItem->GetPageDisplayState()] |
- forKey:web::kSessionEntryPageScrollStateKey]; |
- [aCoder encodeBool:_navigationItem->ShouldSkipRepostFormConfirmation() |
- forKey:web::kSessionEntrySkipRepostFormConfirmationKey]; |
- [aCoder encodeBool:_navigationItem->IsOverridingUserAgent() |
- forKey:web::kSessionEntryUseDesktopUserAgentKey]; |
- [aCoder encodeObject:_navigationItem->GetPostData() |
- forKey:web::kSessionEntryPOSTDataKey]; |
- [aCoder encodeObject:_navigationItem->GetHttpRequestHeaders() |
- forKey:web::kSessionEntryHTTPRequestHeadersKey]; |
-} |
- |
// TODO(ios): Shall we overwrite EqualTo:? |
- (instancetype)copyWithZone:(NSZone*)zone { |
@@ -193,41 +100,7 @@ - (NSString*)description { |
return _navigationItem.get(); |
} |
-#pragma mark - Serialization helpers |
- |
-+ (web::PageDisplayState)pageDisplayStateFromDictionary: |
- (NSDictionary*)dictionary { |
- NSNumber* serializedValue = nil; |
- web::PageScrollState scrollState; |
- if ((serializedValue = dictionary[web::kSessionEntryScrollOffsetXKey])) |
- scrollState.set_offset_x([serializedValue doubleValue]); |
- if ((serializedValue = dictionary[web::kSessionEntryScrollOffsetYKey])) |
- scrollState.set_offset_y([serializedValue doubleValue]); |
- web::PageZoomState zoomState; |
- if ((serializedValue = dictionary[web::kSessionEntryMinimumZoomScaleKey])) |
- zoomState.set_minimum_zoom_scale([serializedValue doubleValue]); |
- if ((serializedValue = dictionary[web::kSessionEntryMaximumZoomScaleKey])) |
- zoomState.set_maximum_zoom_scale([serializedValue doubleValue]); |
- if ((serializedValue = dictionary[web::kSessionEntryZoomScaleKey])) |
- zoomState.set_zoom_scale([serializedValue doubleValue]); |
- return web::PageDisplayState(scrollState, zoomState); |
-} |
- |
-+ (NSDictionary*)dictionaryFromPageDisplayState: |
- (const web::PageDisplayState&)displayState { |
- return @{ |
- web::kSessionEntryScrollOffsetXKey : |
- @(displayState.scroll_state().offset_x()), |
- web::kSessionEntryScrollOffsetYKey : |
- @(displayState.scroll_state().offset_y()), |
- web::kSessionEntryMinimumZoomScaleKey : |
- @(displayState.zoom_state().minimum_zoom_scale()), |
- web::kSessionEntryMaximumZoomScaleKey : |
- @(displayState.zoom_state().maximum_zoom_scale()), |
- web::kSessionEntryZoomScaleKey : |
- @(displayState.zoom_state().zoom_scale()) |
- }; |
-} |
+#pragma mark - |
+ (NSString*)descriptionForPageDisplayState: |
(const web::PageDisplayState&)displayState { |