Index: components/sessions/ios/ios_serialized_navigation_driver.cc |
diff --git a/components/sessions/ios/ios_serialized_navigation_driver.cc b/components/sessions/ios/ios_serialized_navigation_driver.cc |
index 24f798782a8a873ccc881d0cb2cc6564aa124a70..5c53c21a898feebdaa0d4b1db3a4f59f7385f8c0 100644 |
--- a/components/sessions/ios/ios_serialized_navigation_driver.cc |
+++ b/components/sessions/ios/ios_serialized_navigation_driver.cc |
@@ -7,6 +7,7 @@ |
#include "base/memory/singleton.h" |
#include "components/sessions/core/serialized_navigation_entry.h" |
#include "ios/web/public/referrer.h" |
+#include "ios/web/public/referrer_util.h" |
namespace sessions { |
@@ -53,29 +54,8 @@ void IOSSerializedNavigationDriver::Sanitize( |
NOTREACHED(); |
referrer.policy = web::ReferrerPolicyNever; |
} |
- bool is_downgrade = referrer.url.SchemeIsCryptographic() && |
- !navigation->virtual_url_.SchemeIsCryptographic(); |
- switch (referrer.policy) { |
- case web::ReferrerPolicyDefault: |
- if (is_downgrade) |
- referrer.url = GURL(); |
- break; |
- case web::ReferrerPolicyNoReferrerWhenDowngrade: |
- if (is_downgrade) |
- referrer.url = GURL(); |
- case web::ReferrerPolicyAlways: |
- break; |
- case web::ReferrerPolicyNever: |
- referrer.url = GURL(); |
- break; |
- case web::ReferrerPolicyOrigin: |
- referrer.url = referrer.url.GetOrigin(); |
- break; |
- case web::ReferrerPolicyOriginWhenCrossOrigin: |
- if (navigation->virtual_url_.GetOrigin() != referrer.url.GetOrigin()) |
- referrer.url = referrer.url.GetOrigin(); |
- break; |
- } |
+ referrer.url = GURL( |
+ ReferrerHeaderValueForNavigation(navigation->virtual_url_, referrer)); |
} |
// Reset the referrer if it has changed. |