Chromium Code Reviews| Index: components/sessions/serialized_navigation_entry.cc |
| diff --git a/components/sessions/serialized_navigation_entry.cc b/components/sessions/serialized_navigation_entry.cc |
| index c0ed8d2a835a7cc44ef29f8df0c6c7558e6dbd55..a5ba41c850fc508f0eff54380db43e606c71538d 100644 |
| --- a/components/sessions/serialized_navigation_entry.cc |
| +++ b/components/sessions/serialized_navigation_entry.cc |
| @@ -512,32 +512,13 @@ std::vector<NavigationEntry*> SerializedNavigationEntry::ToNavigationEntries( |
| } |
| void SerializedNavigationEntry::Sanitize() { |
| - // Store original referrer so we can later see whether it was actually |
| - // changed during sanitization, and we need to strip the referrer from the |
| - // page state as well. |
| - content::Referrer old_referrer = referrer_; |
| + content::Referrer new_referrer = |
| + content::Referrer::SanitizeForRequest(virtual_url_, referrer_); |
| - if (!referrer_.url.SchemeIsHTTPOrHTTPS()) |
| - referrer_ = content::Referrer(); |
| - switch (referrer_.policy) { |
| - case blink::WebReferrerPolicyNever: |
| - referrer_.url = GURL(); |
| - break; |
| - case blink::WebReferrerPolicyAlways: |
| - break; |
| - case blink::WebReferrerPolicyOrigin: |
| - referrer_.url = referrer_.url.GetWithEmptyPath(); |
| - break; |
| - case blink::WebReferrerPolicyDefault: |
| - // Fall through. |
| - default: |
| - referrer_.policy = blink::WebReferrerPolicyDefault; |
| - if (referrer_.url.SchemeIsSecure() && !virtual_url_.SchemeIsSecure()) |
| - referrer_.url = GURL(); |
| - } |
| - |
| - if (referrer_.url != old_referrer.url || |
| - referrer_.policy != old_referrer.policy) { |
| + // No need to compare the policy, as it doesn't change during |
| + // sanitization. If there has been a change, the referrer needs to be |
| + // stripped from the page state as well. |
| + if (referrer_.url != new_referrer.url) { |
| referrer_ = content::Referrer(); |
|
nasko
2014/08/05 14:27:58
Should this be totally cleared or should the sanit
jochen (gone - plz use gerrit)
2014/08/05 15:16:56
here totally clearing is fine.
|
| page_state_ = page_state_.RemoveReferrer(); |
| } |