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

Unified Diff: components/sessions/content/content_serialized_navigation_driver.cc

Issue 869613006: Move referrer policy to a different field when serializing. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: updates Created 5 years, 11 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
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 {

Powered by Google App Engine
This is Rietveld 408576698