| 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..0ec6737238d6143ba51786af3f1e8ebf39b654b3 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;
|
| +} // 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 = referrer_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 {
|
|
|