| 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..951ec051cef545c93da4685f8b9c906aff4e9ff3 100644
|
| --- a/components/sessions/content/content_serialized_navigation_driver.cc
|
| +++ b/components/sessions/content/content_serialized_navigation_driver.cc
|
| @@ -33,6 +33,41 @@ int ContentSerializedNavigationDriver::GetDefaultReferrerPolicy() const {
|
| return blink::WebReferrerPolicyDefault;
|
| }
|
|
|
| +bool ContentSerializedNavigationDriver::MapReferrerPolicyToOldValues(
|
| + int referrer_policy,
|
| + int* mapped_referrer_policy) const {
|
| + // "always" and "default" are the same value in all versions.
|
| + if (referrer_policy == blink::WebReferrerPolicyAlways ||
|
| + referrer_policy == blink::WebReferrerPolicyDefault) {
|
| + *mapped_referrer_policy = referrer_policy;
|
| + return true;
|
| + }
|
| +
|
| + // "origin" exists in the old encoding.
|
| + if (referrer_policy == blink::WebReferrerPolicyOrigin) {
|
| + *mapped_referrer_policy = 3;
|
| + return true;
|
| + }
|
| +
|
| + // Everything else is mapped to never.
|
| + *mapped_referrer_policy = 2;
|
| + return false;
|
| +}
|
| +
|
| +bool ContentSerializedNavigationDriver::MapReferrerPolicyToNewValues(
|
| + int referrer_policy,
|
| + int* mapped_referrer_policy) const {
|
| + // "always" and "default" are the same value in all versions.
|
| + if (referrer_policy == 0 || referrer_policy == 1) {
|
| + *mapped_referrer_policy = referrer_policy;
|
| + return true;
|
| + }
|
| +
|
| + // 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 {
|
|
|