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

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..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 ||
Andrew T Wilson (Slow) 2015/01/29 11:02:13 This is fine, but I wonder if a case statement wou
+ 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 {

Powered by Google App Engine
This is Rietveld 408576698