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

Side by Side Diff: trunk/src/chrome/browser/net/spdyproxy/data_reduction_proxy_settings_android.cc

Issue 307013003: Revert 273810 "Added alternative configuration for the data redu..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 6 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "chrome/browser/net/spdyproxy/data_reduction_proxy_settings_android.h" 5 #include "chrome/browser/net/spdyproxy/data_reduction_proxy_settings_android.h"
6 6
7 #include "base/android/build_info.h" 7 #include "base/android/build_info.h"
8 #include "base/android/jni_android.h" 8 #include "base/android/jni_android.h"
9 #include "base/android/jni_string.h" 9 #include "base/android/jni_string.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
11 #include "base/command_line.h" 11 #include "base/command_line.h"
12 #include "base/memory/scoped_ptr.h" 12 #include "base/memory/scoped_ptr.h"
13 #include "base/metrics/field_trial.h" 13 #include "base/metrics/field_trial.h"
14 #include "base/metrics/histogram.h" 14 #include "base/metrics/histogram.h"
15 #include "base/prefs/pref_member.h" 15 #include "base/prefs/pref_member.h"
16 #include "base/prefs/pref_service.h" 16 #include "base/prefs/pref_service.h"
17 #include "base/strings/string_number_conversions.h" 17 #include "base/strings/string_number_conversions.h"
18 #include "base/strings/utf_string_conversions.h" 18 #include "base/strings/utf_string_conversions.h"
19 #include "chrome/browser/browser_process.h" 19 #include "chrome/browser/browser_process.h"
20 #include "chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_configurator. h" 20 #include "chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_configurator. h"
21 #include "chrome/browser/net/spdyproxy/data_reduction_proxy_settings_factory_and roid.h"
22 #include "chrome/browser/prefs/proxy_prefs.h" 21 #include "chrome/browser/prefs/proxy_prefs.h"
23 #include "chrome/browser/profiles/profile.h" 22 #include "chrome/browser/profiles/profile.h"
24 #include "chrome/browser/profiles/profile_manager.h" 23 #include "chrome/browser/profiles/profile_manager.h"
25 #include "chrome/common/chrome_switches.h" 24 #include "chrome/common/chrome_switches.h"
26 #include "chrome/common/pref_names.h" 25 #include "chrome/common/pref_names.h"
27 #include "components/data_reduction_proxy/browser/data_reduction_proxy_configura tor.h" 26 #include "components/data_reduction_proxy/browser/data_reduction_proxy_configura tor.h"
28 #include "components/data_reduction_proxy/browser/data_reduction_proxy_params.h"
29 #include "components/data_reduction_proxy/browser/data_reduction_proxy_settings. h" 27 #include "components/data_reduction_proxy/browser/data_reduction_proxy_settings. h"
30 #include "jni/DataReductionProxySettings_jni.h" 28 #include "jni/DataReductionProxySettings_jni.h"
31 #include "net/base/auth.h" 29 #include "net/base/auth.h"
32 #include "net/base/host_port_pair.h" 30 #include "net/base/host_port_pair.h"
33 #include "net/base/load_flags.h" 31 #include "net/base/load_flags.h"
34 #include "net/base/net_errors.h" 32 #include "net/base/net_errors.h"
35 #include "net/url_request/url_fetcher.h" 33 #include "net/url_request/url_fetcher.h"
36 #include "net/url_request/url_fetcher_delegate.h" 34 #include "net/url_request/url_fetcher_delegate.h"
37 #include "net/url_request/url_request_status.h" 35 #include "net/url_request/url_request_status.h"
38 36
39 using base::android::CheckException; 37 using base::android::CheckException;
40 using base::android::ConvertJavaStringToUTF8; 38 using base::android::ConvertJavaStringToUTF8;
41 using base::android::ConvertUTF16ToJavaString; 39 using base::android::ConvertUTF16ToJavaString;
42 using base::android::ConvertUTF8ToJavaString; 40 using base::android::ConvertUTF8ToJavaString;
43 using base::android::ScopedJavaLocalRef; 41 using base::android::ScopedJavaLocalRef;
44 using data_reduction_proxy::DataReductionProxyParams;
45 using data_reduction_proxy::DataReductionProxySettings; 42 using data_reduction_proxy::DataReductionProxySettings;
46 43
47 namespace { 44 namespace {
48 45
49 // The C++ definition of enum SpdyProxyAuthState defined in 46 // The C++ definition of enum SpdyProxyAuthState defined in
50 // tools/histograms/histograms.xml. 47 // tools/histograms/histograms.xml.
51 // New values should be added at the end before |NUM_SPDY_PROXY_AUTH_STATE|. 48 // New values should be added at the end before |NUM_SPDY_PROXY_AUTH_STATE|.
52 enum { 49 enum {
53 CHROME_STARTUP, 50 CHROME_STARTUP,
54 SPDY_PROXY_AUTH_ON_AT_STARTUP, 51 SPDY_PROXY_AUTH_ON_AT_STARTUP,
55 SPDY_PROXY_AUTH_ON_BY_USER, 52 SPDY_PROXY_AUTH_ON_BY_USER,
56 SPDY_PROXY_AUTH_OFF_BY_USER, 53 SPDY_PROXY_AUTH_OFF_BY_USER,
57 // Used by UMA histograms and should always be the last value. 54 // Used by UMA histograms and should always be the last value.
58 NUM_SPDY_PROXY_AUTH_STATE 55 NUM_SPDY_PROXY_AUTH_STATE
59 }; 56 };
60 57
58 const char kEnabled[] = "Enabled";
59
61 } // namespace 60 } // namespace
62 61
63 DataReductionProxySettingsAndroid::DataReductionProxySettingsAndroid( 62 DataReductionProxySettingsAndroid::DataReductionProxySettingsAndroid(
64 data_reduction_proxy::DataReductionProxyParams* params) 63 JNIEnv* env, jobject obj) : DataReductionProxySettings() {
65 : DataReductionProxySettings(params) { 64 #if defined(SPDY_PROXY_AUTH_VALUE)
65 set_key(SPDY_PROXY_AUTH_VALUE);
66 #endif
67 SetAllowed(IsIncludedInFieldTrialOrFlags());
68 SetPromoAllowed(base::FieldTrialList::FindFullName(
69 "DataCompressionProxyPromoVisibility") == kEnabled);
70 }
71
72 DataReductionProxySettingsAndroid::DataReductionProxySettingsAndroid() {
73 #if defined(SPDY_PROXY_AUTH_VALUE)
74 set_key(SPDY_PROXY_AUTH_VALUE);
75 #endif
66 } 76 }
67 77
68 DataReductionProxySettingsAndroid::~DataReductionProxySettingsAndroid() { 78 DataReductionProxySettingsAndroid::~DataReductionProxySettingsAndroid() {
69 } 79 }
70 80
71 void DataReductionProxySettingsAndroid::InitDataReductionProxySettings( 81 void DataReductionProxySettingsAndroid::InitDataReductionProxySettings(
72 Profile* profile) { 82 JNIEnv* env,
73 DCHECK(profile); 83 jobject obj) {
74 PrefService* prefs = profile->GetPrefs(); 84 PrefService* prefs = ProfileManager::GetActiveUserProfile()->GetPrefs();
75 85
76 scoped_ptr<data_reduction_proxy::DataReductionProxyConfigurator> 86 scoped_ptr<data_reduction_proxy::DataReductionProxyConfigurator>
77 configurator(new DataReductionProxyChromeConfigurator(prefs)); 87 configurator(new DataReductionProxyChromeConfigurator(prefs));
78 SetProxyConfigurator(configurator.Pass()); 88 SetProxyConfigurator(configurator.Pass());
79 DataReductionProxySettings::InitDataReductionProxySettings( 89 DataReductionProxySettings::InitDataReductionProxySettings(
80 prefs, 90 prefs,
81 g_browser_process->local_state(), 91 g_browser_process->local_state(),
82 ProfileManager::GetActiveUserProfile()->GetRequestContext()); 92 ProfileManager::GetActiveUserProfile()->GetRequestContext());
83 DataReductionProxySettings::SetDataReductionProxyAlternativeEnabled(
84 DataReductionProxyParams::IsIncludedInAlternativeFieldTrial());
85 } 93 }
86 94
87 void DataReductionProxySettingsAndroid::BypassHostPattern( 95 void DataReductionProxySettingsAndroid::BypassHostPattern(
88 JNIEnv* env, jobject obj, jstring pattern) { 96 JNIEnv* env, jobject obj, jstring pattern) {
89 configurator()->AddHostPatternToBypass( 97 config()->AddHostPatternToBypass(
90 ConvertJavaStringToUTF8(env, pattern)); 98 ConvertJavaStringToUTF8(env, pattern));
91 } 99 }
92 void DataReductionProxySettingsAndroid::BypassURLPattern( 100 void DataReductionProxySettingsAndroid::BypassURLPattern(
93 JNIEnv* env, jobject obj, jstring pattern) { 101 JNIEnv* env, jobject obj, jstring pattern) {
94 configurator()->AddURLPatternToBypass(ConvertJavaStringToUTF8(env, pattern)); 102 config()->AddURLPatternToBypass(ConvertJavaStringToUTF8(env, pattern));
95 } 103 }
96 104
97 jboolean DataReductionProxySettingsAndroid::IsDataReductionProxyAllowed( 105 jboolean DataReductionProxySettingsAndroid::IsDataReductionProxyAllowed(
98 JNIEnv* env, jobject obj) { 106 JNIEnv* env, jobject obj) {
99 return params()->allowed(); 107 return DataReductionProxySettings::IsDataReductionProxyAllowed();
100 } 108 }
101 109
102 jboolean DataReductionProxySettingsAndroid::IsDataReductionProxyPromoAllowed( 110 jboolean DataReductionProxySettingsAndroid::IsDataReductionProxyPromoAllowed(
103 JNIEnv* env, jobject obj) { 111 JNIEnv* env, jobject obj) {
104 return params()->promo_allowed(); 112 return DataReductionProxySettings::IsDataReductionProxyPromoAllowed();
105 } 113 }
106 114
107 ScopedJavaLocalRef<jstring> 115 ScopedJavaLocalRef<jstring>
108 DataReductionProxySettingsAndroid::GetDataReductionProxyOrigin( 116 DataReductionProxySettingsAndroid::GetDataReductionProxyOrigin(
109 JNIEnv* env, jobject obj) { 117 JNIEnv* env, jobject obj) {
110 return ConvertUTF8ToJavaString(env, params()->origin().spec()); 118 return ConvertUTF8ToJavaString(
119 env, DataReductionProxySettings::GetDataReductionProxyOrigin());
111 } 120 }
112 121
113 jboolean DataReductionProxySettingsAndroid::IsDataReductionProxyEnabled( 122 jboolean DataReductionProxySettingsAndroid::IsDataReductionProxyEnabled(
114 JNIEnv* env, jobject obj) { 123 JNIEnv* env, jobject obj) {
115 return DataReductionProxySettings::IsDataReductionProxyEnabled(); 124 return DataReductionProxySettings::IsDataReductionProxyEnabled();
116 } 125 }
117 126
118 jboolean DataReductionProxySettingsAndroid::IsDataReductionProxyManaged( 127 jboolean DataReductionProxySettingsAndroid::IsDataReductionProxyManaged(
119 JNIEnv* env, jobject obj) { 128 JNIEnv* env, jobject obj) {
120 return DataReductionProxySettings::IsDataReductionProxyManaged(); 129 return DataReductionProxySettings::IsDataReductionProxyManaged();
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 // static 203 // static
195 bool DataReductionProxySettingsAndroid::Register(JNIEnv* env) { 204 bool DataReductionProxySettingsAndroid::Register(JNIEnv* env) {
196 bool register_natives_impl_result = RegisterNativesImpl(env); 205 bool register_natives_impl_result = RegisterNativesImpl(env);
197 return register_natives_impl_result; 206 return register_natives_impl_result;
198 } 207 }
199 208
200 void DataReductionProxySettingsAndroid::AddDefaultProxyBypassRules() { 209 void DataReductionProxySettingsAndroid::AddDefaultProxyBypassRules() {
201 DataReductionProxySettings::AddDefaultProxyBypassRules(); 210 DataReductionProxySettings::AddDefaultProxyBypassRules();
202 // Chrome cannot authenticate with the data reduction proxy when fetching URLs 211 // Chrome cannot authenticate with the data reduction proxy when fetching URLs
203 // from the settings menu. 212 // from the settings menu.
204 configurator()->AddURLPatternToBypass( 213 config()->AddURLPatternToBypass("http://www.google.com/policies/privacy*");
205 "http://www.google.com/policies/privacy*");
206 } 214 }
207 215
208 void DataReductionProxySettingsAndroid::SetProxyConfigs( 216 void DataReductionProxySettingsAndroid::SetProxyConfigs(bool enabled,
209 bool enabled, 217 bool restricted,
210 bool alternative_enabled, 218 bool at_startup) {
211 bool restricted,
212 bool at_startup) {
213 // Sanity check: If there's no fallback proxy, we can't do a restricted mode. 219 // Sanity check: If there's no fallback proxy, we can't do a restricted mode.
214 std::string fallback = params()->fallback_origin().spec(); 220 std::string fallback = GetDataReductionProxyFallback();
215 if (fallback.empty() && enabled && restricted) 221 if (fallback.empty() && enabled && restricted)
216 enabled = false; 222 enabled = false;
217 223
218 LogProxyState(enabled, restricted, at_startup); 224 LogProxyState(enabled, restricted, at_startup);
219 225
220 if (enabled) { 226 if (enabled) {
221 if (alternative_enabled) { 227 config()->Enable(restricted,
222 configurator()->Enable(restricted, 228 !fallback_allowed(),
223 !params()->fallback_allowed(), 229 DataReductionProxySettings::GetDataReductionProxyOrigin(),
224 params()->alt_origin().spec(), 230 GetDataReductionProxyFallback());
225 params()->alt_fallback_origin().spec(),
226 params()->ssl_origin().spec());
227 } else {
228 configurator()->Enable(restricted,
229 !params()->fallback_allowed(),
230 params()->origin().spec(),
231 params()->fallback_origin().spec(),
232 std::string());
233 }
234 } else { 231 } else {
235 configurator()->Disable(); 232 config()->Disable();
236 } 233 }
237 } 234 }
238 235
239 ScopedJavaLocalRef<jlongArray> 236 ScopedJavaLocalRef<jlongArray>
240 DataReductionProxySettingsAndroid::GetDailyContentLengths( 237 DataReductionProxySettingsAndroid::GetDailyContentLengths(
241 JNIEnv* env, const char* pref_name) { 238 JNIEnv* env, const char* pref_name) {
242 jlongArray result = env->NewLongArray( 239 jlongArray result = env->NewLongArray(
243 data_reduction_proxy::kNumDaysInHistory); 240 data_reduction_proxy::kNumDaysInHistory);
244 241
245 DataReductionProxySettings::ContentLengthList lengths = 242 DataReductionProxySettings::ContentLengthList lengths =
246 DataReductionProxySettings::GetDailyContentLengths(pref_name); 243 DataReductionProxySettings::GetDailyContentLengths(pref_name);
247 244
248 if (!lengths.empty()) { 245 if (!lengths.empty()) {
249 DCHECK_EQ(lengths.size(), data_reduction_proxy::kNumDaysInHistory); 246 DCHECK_EQ(lengths.size(), data_reduction_proxy::kNumDaysInHistory);
250 env->SetLongArrayRegion(result, 0, lengths.size(), &lengths[0]); 247 env->SetLongArrayRegion(result, 0, lengths.size(), &lengths[0]);
251 return ScopedJavaLocalRef<jlongArray>(env, result); 248 return ScopedJavaLocalRef<jlongArray>(env, result);
252 } 249 }
253 250
254 return ScopedJavaLocalRef<jlongArray>(env, result); 251 return ScopedJavaLocalRef<jlongArray>(env, result);
255 } 252 }
256 253
257 254
258 255
259 // Used by generated jni code. 256 // Used by generated jni code.
260 static jlong Init(JNIEnv* env, jobject obj) { 257 static jlong Init(JNIEnv* env, jobject obj) {
261 DataReductionProxySettingsAndroid* settings = 258 DataReductionProxySettingsAndroid* settings =
262 DataReductionProxySettingsFactoryAndroid::GetForBrowserContext( 259 new DataReductionProxySettingsAndroid(env, obj);
263 ProfileManager::GetActiveUserProfile());
264 return reinterpret_cast<intptr_t>(settings); 260 return reinterpret_cast<intptr_t>(settings);
265 } 261 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698