Chromium Code Reviews| Index: components/sessions/content/content_serialized_navigation_driver.cc |
| diff --git a/components/sessions/content/content_serialized_navigation_driver.cc b/components/sessions/content/content_serialized_navigation_driver.cc |
| index 4dd6bd0d5a97162fdca18567b1b3dcc3a52a0b6e..665d22e3e682adc9a9575ec9285db8071cb8c92e 100644 |
| --- a/components/sessions/content/content_serialized_navigation_driver.cc |
| +++ b/components/sessions/content/content_serialized_navigation_driver.cc |
| @@ -11,6 +11,13 @@ |
| namespace sessions { |
| +namespace { |
| +const int kObsoleteReferrerPolicyAlways = 0; |
| +const int kObsoleteReferrerPolicyDefault = 1; |
| +const int kObsoleteReferrerPolicyNever = 2; |
| +const int kObsoleteReferrerPolicyOrigin = 3; |
|
Mike West
2015/01/29 12:06:35
\o/
|
| +} // namespace |
| + |
| // static |
| SerializedNavigationDriver* SerializedNavigationDriver::Get() { |
| return ContentSerializedNavigationDriver::GetInstance(); |
| @@ -33,6 +40,45 @@ int ContentSerializedNavigationDriver::GetDefaultReferrerPolicy() const { |
| return blink::WebReferrerPolicyDefault; |
| } |
| +bool ContentSerializedNavigationDriver::MapReferrerPolicyToOldValues( |
| + int referrer_policy, |
| + int* mapped_referrer_policy) const { |
| + switch (referrer_policy) { |
| + case blink::WebReferrerPolicyAlways: |
| + case blink::WebReferrerPolicyDefault: |
| + // "always" and "default" are the same value in all versions. |
| + *mapped_referrer_policy = referer_policy; |
| + return true; |
| + |
| + case blink::WebReferrerPolicyOrigin: |
| + // "origin" exists in the old encoding. |
| + *mapped_referrer_policy = kObsoleteReferrerPolicyOrigin; |
| + return true; |
| + |
| + default: |
| + // Everything else is mapped to never. |
| + *mapped_referrer_policy = kObsoleteReferrerPolicyNever; |
| + return false; |
| + } |
| +} |
| + |
| +bool ContentSerializedNavigationDriver::MapReferrerPolicyToNewValues( |
| + int referrer_policy, |
| + int* mapped_referrer_policy) const { |
| + switch (referrer_policy) { |
| + case kObsoleteReferrerPolicyAlways: |
| + case kObsoleteReferrerPolicyDefault: |
| + // "always" and "default" are the same value in all versions. |
| + *mapped_referrer_policy = referrer_policy; |
| + return true; |
| + |
| + default: |
| + // Since we don't know what encoding was used, we map the rest to "never". |
| + *mapped_referrer_policy = blink::WebReferrerPolicyNever; |
| + return false; |
| + } |
| +} |
| + |
| std::string |
| ContentSerializedNavigationDriver::GetSanitizedPageStateForPickle( |
| const SerializedNavigationEntry* navigation) const { |