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

Unified Diff: ios/web/public/crw_navigation_item_storage.mm

Issue 2705293014: Created web::UserAgentType. (Closed)
Patch Set: rebase + compile fix Created 3 years, 10 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
« no previous file with comments | « ios/web/public/crw_navigation_item_storage.h ('k') | ios/web/public/navigation_item.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ios/web/public/crw_navigation_item_storage.mm
diff --git a/ios/web/public/crw_navigation_item_storage.mm b/ios/web/public/crw_navigation_item_storage.mm
index 62a6055fc1061bd476fc2e6a35a0f8bde6befbec..f43159a53ec4f7ddf94945b14c5cb7b16ede2914 100644
--- a/ios/web/public/crw_navigation_item_storage.mm
+++ b/ios/web/public/crw_navigation_item_storage.mm
@@ -6,6 +6,7 @@
#include "base/strings/sys_string_conversions.h"
#import "ios/web/navigation/nscoder_util.h"
+#import "ios/web/public/web_client.h"
#import "net/base/mac/url_conversions.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
@@ -27,7 +28,8 @@
NSString* const kNavigationItemStorageHTTPRequestHeadersKey = @"httpHeaders";
NSString* const kNavigationItemStorageSkipRepostFormConfirmationKey =
@"skipResubmitDataConfirmation";
-NSString* const kNavigationItemStorageUseDesktopUserAgentKey =
+NSString* const kNavigationItemStorageUserAgentTypeKey = @"userAgentType";
+NSString* const kNavigationItemStorageUseDesktopUserAgentDeprecatedKey =
@"useDesktopUserAgent";
} // namespace web
@@ -41,7 +43,7 @@ @implementation CRWNavigationItemStorage
@synthesize displayState = _displayState;
@synthesize shouldSkipRepostFormConfirmation =
_shouldSkipRepostFormConfirmation;
-@synthesize overridingUserAgent = _overridingUserAgent;
+@synthesize userAgentType = _userAgentType;
@synthesize POSTData = _POSTData;
@synthesize HTTPRequestHeaders = _HTTPRequestHeaders;
@@ -59,7 +61,8 @@ - (NSString*)description {
[description appendFormat:@"skipRepostConfirmation : %@, ",
@(_shouldSkipRepostFormConfirmation)];
[description
- appendFormat:@"overridingUserAgent : %@, ", @(_overridingUserAgent)];
+ appendFormat:@"userAgentType : %s, ",
+ web::GetUserAgentTypeDescription(_userAgentType).c_str()];
[description appendFormat:@"POSTData : %@, ", _POSTData];
[description appendFormat:@"HTTPRequestHeaders : %@", _HTTPRequestHeaders];
return description;
@@ -105,6 +108,27 @@ - (instancetype)initWithCoder:(NSCoder*)aDecoder {
_timestamp = base::Time::FromInternalValue(us);
}
+ if ([aDecoder
+ containsValueForKey:web::kNavigationItemStorageUserAgentTypeKey]) {
+ std::string userAgentDescription = web::nscoder_util::DecodeString(
+ aDecoder, web::kNavigationItemStorageUserAgentTypeKey);
+ _userAgentType =
+ web::GetUserAgentTypeWithDescription(userAgentDescription);
+ } else if (web::GetWebClient()->IsAppSpecificURL(_virtualURL)) {
+ // Legacy CRWNavigationItemStorages didn't have the concept of a NONE
+ // user agent for app-specific URLs, so check decoded virtual URL before
+ // attempting to decode the deprecated key.
+ _userAgentType = web::UserAgentType::NONE;
+ } else {
+ // The user agent type was previously recorded as a BOOL, where YES meant
+ // desktop user agent, and NO meant mobile user agent.
+ BOOL useDesktopUA = [aDecoder
+ decodeBoolForKey:
+ web::kNavigationItemStorageUseDesktopUserAgentDeprecatedKey];
+ _userAgentType = useDesktopUA ? web::UserAgentType::DESKTOP
+ : web::UserAgentType::MOBILE;
+ }
+
NSString* title =
[aDecoder decodeObjectForKey:web::kNavigationItemStorageTitleKey];
// Use a transition type of reload so that we don't incorrectly increase
@@ -116,8 +140,6 @@ - (instancetype)initWithCoder:(NSCoder*)aDecoder {
_shouldSkipRepostFormConfirmation =
[aDecoder decodeBoolForKey:
web::kNavigationItemStorageSkipRepostFormConfirmationKey];
- _overridingUserAgent = [aDecoder
- decodeBoolForKey:web::kNavigationItemStorageUseDesktopUserAgentKey];
_POSTData =
[aDecoder decodeObjectForKey:web::kNavigationItemStoragePOSTDataKey];
_HTTPRequestHeaders = [aDecoder
@@ -144,8 +166,9 @@ - (void)encodeWithCoder:(NSCoder*)aCoder {
forKey:web::kNavigationItemStoragePageDisplayStateKey];
[aCoder encodeBool:_shouldSkipRepostFormConfirmation
forKey:web::kNavigationItemStorageSkipRepostFormConfirmationKey];
- [aCoder encodeBool:_overridingUserAgent
- forKey:web::kNavigationItemStorageUseDesktopUserAgentKey];
+ web::nscoder_util::EncodeString(
+ aCoder, web::kNavigationItemStorageUserAgentTypeKey,
+ web::GetUserAgentTypeDescription(_userAgentType));
[aCoder encodeObject:_POSTData forKey:web::kNavigationItemStoragePOSTDataKey];
[aCoder encodeObject:_HTTPRequestHeaders
forKey:web::kNavigationItemStorageHTTPRequestHeadersKey];
« no previous file with comments | « ios/web/public/crw_navigation_item_storage.h ('k') | ios/web/public/navigation_item.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698