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

Side by Side Diff: components/sessions/ios/ios_serialized_navigation_driver.cc

Issue 2921883003: [Sync] Ensure referrer is recorded regardless of policy conversion (Closed)
Patch Set: Tighten Created 3 years, 6 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/sessions/ios/ios_serialized_navigation_driver.h" 5 #include "components/sessions/ios/ios_serialized_navigation_driver.h"
6 6
7 #include "base/memory/singleton.h" 7 #include "base/memory/singleton.h"
8 #include "components/sessions/core/serialized_navigation_entry.h" 8 #include "components/sessions/core/serialized_navigation_entry.h"
9 #include "ios/web/public/referrer.h" 9 #include "ios/web/public/referrer.h"
10 10
11 namespace sessions { 11 namespace sessions {
12 12
13 namespace {
14 const int kObsoleteReferrerPolicyAlways = 0;
15 const int kObsoleteReferrerPolicyDefault = 1;
16 const int kObsoleteReferrerPolicyNever = 2;
17 const int kObsoleteReferrerPolicyOrigin = 3;
18 } // namespace
19
20 // static 13 // static
21 SerializedNavigationDriver* SerializedNavigationDriver::Get() { 14 SerializedNavigationDriver* SerializedNavigationDriver::Get() {
22 return IOSSerializedNavigationDriver::GetInstance(); 15 return IOSSerializedNavigationDriver::GetInstance();
23 } 16 }
24 17
25 // static 18 // static
26 IOSSerializedNavigationDriver* 19 IOSSerializedNavigationDriver*
27 IOSSerializedNavigationDriver::GetInstance() { 20 IOSSerializedNavigationDriver::GetInstance() {
28 return base::Singleton< 21 return base::Singleton<
29 IOSSerializedNavigationDriver, 22 IOSSerializedNavigationDriver,
30 base::LeakySingletonTraits<IOSSerializedNavigationDriver>>::get(); 23 base::LeakySingletonTraits<IOSSerializedNavigationDriver>>::get();
31 } 24 }
32 25
33 IOSSerializedNavigationDriver::IOSSerializedNavigationDriver() { 26 IOSSerializedNavigationDriver::IOSSerializedNavigationDriver() {
34 } 27 }
35 28
36 IOSSerializedNavigationDriver::~IOSSerializedNavigationDriver() { 29 IOSSerializedNavigationDriver::~IOSSerializedNavigationDriver() {
37 } 30 }
38 31
39 int IOSSerializedNavigationDriver::GetDefaultReferrerPolicy() const { 32 int IOSSerializedNavigationDriver::GetDefaultReferrerPolicy() const {
40 return web::ReferrerPolicyDefault; 33 return web::ReferrerPolicyDefault;
41 } 34 }
42 35
43 bool IOSSerializedNavigationDriver::MapReferrerPolicyToOldValues(
44 int referrer_policy,
45 int* mapped_referrer_policy) const {
46 switch (referrer_policy) {
47 case web::ReferrerPolicyAlways:
48 case web::ReferrerPolicyDefault:
49 // "always" and "default" are the same value in all versions.
50 *mapped_referrer_policy = referrer_policy;
51 return true;
52
53 case web::ReferrerPolicyOrigin:
54 // "origin" exists in the old encoding.
55 *mapped_referrer_policy = kObsoleteReferrerPolicyOrigin;
56 return true;
57
58 default:
59 // Everything else is mapped to never.
60 *mapped_referrer_policy = kObsoleteReferrerPolicyNever;
61 return false;
62 }
63 }
64
65 bool IOSSerializedNavigationDriver::MapReferrerPolicyToNewValues(
66 int referrer_policy,
67 int* mapped_referrer_policy) const {
68 switch (referrer_policy) {
69 case kObsoleteReferrerPolicyAlways:
70 case kObsoleteReferrerPolicyDefault:
71 // "always" and "default" are the same value in all versions.
72 *mapped_referrer_policy = referrer_policy;
73 return true;
74
75 default:
76 // Since we don't know what encoding was used, we map the rest to "never".
77 *mapped_referrer_policy = web::ReferrerPolicyNever;
78 return false;
79 }
80 }
81
82 std::string 36 std::string
83 IOSSerializedNavigationDriver::GetSanitizedPageStateForPickle( 37 IOSSerializedNavigationDriver::GetSanitizedPageStateForPickle(
84 const SerializedNavigationEntry* navigation) const { 38 const SerializedNavigationEntry* navigation) const {
85 return std::string(); 39 return std::string();
86 } 40 }
87 41
88 void IOSSerializedNavigationDriver::Sanitize( 42 void IOSSerializedNavigationDriver::Sanitize(
89 SerializedNavigationEntry* navigation) const { 43 SerializedNavigationEntry* navigation) const {
90 web::Referrer referrer( 44 web::Referrer referrer(
91 navigation->referrer_url_, 45 navigation->referrer_url_,
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 navigation->referrer_policy_ = GetDefaultReferrerPolicy(); 84 navigation->referrer_policy_ = GetDefaultReferrerPolicy();
131 } 85 }
132 } 86 }
133 87
134 std::string IOSSerializedNavigationDriver::StripReferrerFromPageState( 88 std::string IOSSerializedNavigationDriver::StripReferrerFromPageState(
135 const std::string& page_state) const { 89 const std::string& page_state) const {
136 return std::string(); 90 return std::string();
137 } 91 }
138 92
139 } // namespace sessions 93 } // namespace sessions
OLDNEW
« no previous file with comments | « components/sessions/ios/ios_serialized_navigation_driver.h ('k') | components/sync/protocol/session_specifics.proto » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698