| Index: chrome/browser/net/spdyproxy/data_reduction_proxy_settings_android.cc
|
| diff --git a/chrome/browser/net/spdyproxy/data_reduction_proxy_settings_android.cc b/chrome/browser/net/spdyproxy/data_reduction_proxy_settings_android.cc
|
| index 7cba6e378ad6d4cc9e4953e085e25e16a9892143..211ff61d9736f40670000a0fc02875f2fa5ee84c 100644
|
| --- a/chrome/browser/net/spdyproxy/data_reduction_proxy_settings_android.cc
|
| +++ b/chrome/browser/net/spdyproxy/data_reduction_proxy_settings_android.cc
|
| @@ -18,12 +18,14 @@
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "chrome/browser/browser_process.h"
|
| #include "chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_configurator.h"
|
| +#include "chrome/browser/net/spdyproxy/data_reduction_proxy_settings_factory_android.h"
|
| #include "chrome/browser/prefs/proxy_prefs.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/profiles/profile_manager.h"
|
| #include "chrome/common/chrome_switches.h"
|
| #include "chrome/common/pref_names.h"
|
| #include "components/data_reduction_proxy/browser/data_reduction_proxy_configurator.h"
|
| +#include "components/data_reduction_proxy/browser/data_reduction_proxy_params.h"
|
| #include "components/data_reduction_proxy/browser/data_reduction_proxy_settings.h"
|
| #include "jni/DataReductionProxySettings_jni.h"
|
| #include "net/base/auth.h"
|
| @@ -39,6 +41,7 @@ using base::android::ConvertJavaStringToUTF8;
|
| using base::android::ConvertUTF16ToJavaString;
|
| using base::android::ConvertUTF8ToJavaString;
|
| using base::android::ScopedJavaLocalRef;
|
| +using data_reduction_proxy::DataReductionProxyParams;
|
| using data_reduction_proxy::DataReductionProxySettings;
|
|
|
| namespace {
|
| @@ -55,33 +58,20 @@ enum {
|
| NUM_SPDY_PROXY_AUTH_STATE
|
| };
|
|
|
| -const char kEnabled[] = "Enabled";
|
| -
|
| } // namespace
|
|
|
| DataReductionProxySettingsAndroid::DataReductionProxySettingsAndroid(
|
| - JNIEnv* env, jobject obj) : DataReductionProxySettings() {
|
| -#if defined(SPDY_PROXY_AUTH_VALUE)
|
| - set_key(SPDY_PROXY_AUTH_VALUE);
|
| -#endif
|
| - SetAllowed(IsIncludedInFieldTrialOrFlags());
|
| - SetPromoAllowed(base::FieldTrialList::FindFullName(
|
| - "DataCompressionProxyPromoVisibility") == kEnabled);
|
| -}
|
| -
|
| -DataReductionProxySettingsAndroid::DataReductionProxySettingsAndroid() {
|
| -#if defined(SPDY_PROXY_AUTH_VALUE)
|
| - set_key(SPDY_PROXY_AUTH_VALUE);
|
| -#endif
|
| + data_reduction_proxy::DataReductionProxyParams* params)
|
| + : DataReductionProxySettings(params) {
|
| }
|
|
|
| DataReductionProxySettingsAndroid::~DataReductionProxySettingsAndroid() {
|
| }
|
|
|
| void DataReductionProxySettingsAndroid::InitDataReductionProxySettings(
|
| - JNIEnv* env,
|
| - jobject obj) {
|
| - PrefService* prefs = ProfileManager::GetActiveUserProfile()->GetPrefs();
|
| + Profile* profile) {
|
| + DCHECK(profile);
|
| + PrefService* prefs = profile->GetPrefs();
|
|
|
| scoped_ptr<data_reduction_proxy::DataReductionProxyConfigurator>
|
| configurator(new DataReductionProxyChromeConfigurator(prefs));
|
| @@ -90,33 +80,34 @@ void DataReductionProxySettingsAndroid::InitDataReductionProxySettings(
|
| prefs,
|
| g_browser_process->local_state(),
|
| ProfileManager::GetActiveUserProfile()->GetRequestContext());
|
| + DataReductionProxySettings::SetDataReductionProxyAlternativeEnabled(
|
| + DataReductionProxyParams::IsIncludedInAlternativeFieldTrial());
|
| }
|
|
|
| void DataReductionProxySettingsAndroid::BypassHostPattern(
|
| JNIEnv* env, jobject obj, jstring pattern) {
|
| - config()->AddHostPatternToBypass(
|
| + configurator()->AddHostPatternToBypass(
|
| ConvertJavaStringToUTF8(env, pattern));
|
| }
|
| void DataReductionProxySettingsAndroid::BypassURLPattern(
|
| JNIEnv* env, jobject obj, jstring pattern) {
|
| - config()->AddURLPatternToBypass(ConvertJavaStringToUTF8(env, pattern));
|
| + configurator()->AddURLPatternToBypass(ConvertJavaStringToUTF8(env, pattern));
|
| }
|
|
|
| jboolean DataReductionProxySettingsAndroid::IsDataReductionProxyAllowed(
|
| JNIEnv* env, jobject obj) {
|
| - return DataReductionProxySettings::IsDataReductionProxyAllowed();
|
| + return params()->allowed();
|
| }
|
|
|
| jboolean DataReductionProxySettingsAndroid::IsDataReductionProxyPromoAllowed(
|
| JNIEnv* env, jobject obj) {
|
| - return DataReductionProxySettings::IsDataReductionProxyPromoAllowed();
|
| + return params()->promo_allowed();
|
| }
|
|
|
| ScopedJavaLocalRef<jstring>
|
| DataReductionProxySettingsAndroid::GetDataReductionProxyOrigin(
|
| JNIEnv* env, jobject obj) {
|
| - return ConvertUTF8ToJavaString(
|
| - env, DataReductionProxySettings::GetDataReductionProxyOrigin());
|
| + return ConvertUTF8ToJavaString(env, params()->origin().spec());
|
| }
|
|
|
| jboolean DataReductionProxySettingsAndroid::IsDataReductionProxyEnabled(
|
| @@ -210,26 +201,38 @@ void DataReductionProxySettingsAndroid::AddDefaultProxyBypassRules() {
|
| DataReductionProxySettings::AddDefaultProxyBypassRules();
|
| // Chrome cannot authenticate with the data reduction proxy when fetching URLs
|
| // from the settings menu.
|
| - config()->AddURLPatternToBypass("http://www.google.com/policies/privacy*");
|
| + configurator()->AddURLPatternToBypass(
|
| + "http://www.google.com/policies/privacy*");
|
| }
|
|
|
| -void DataReductionProxySettingsAndroid::SetProxyConfigs(bool enabled,
|
| - bool restricted,
|
| - bool at_startup) {
|
| +void DataReductionProxySettingsAndroid::SetProxyConfigs(
|
| + bool enabled,
|
| + bool alternative_enabled,
|
| + bool restricted,
|
| + bool at_startup) {
|
| // Sanity check: If there's no fallback proxy, we can't do a restricted mode.
|
| - std::string fallback = GetDataReductionProxyFallback();
|
| + std::string fallback = params()->fallback_origin().spec();
|
| if (fallback.empty() && enabled && restricted)
|
| enabled = false;
|
|
|
| LogProxyState(enabled, restricted, at_startup);
|
|
|
| if (enabled) {
|
| - config()->Enable(restricted,
|
| - !fallback_allowed(),
|
| - DataReductionProxySettings::GetDataReductionProxyOrigin(),
|
| - GetDataReductionProxyFallback());
|
| + if (alternative_enabled) {
|
| + configurator()->Enable(restricted,
|
| + !params()->fallback_allowed(),
|
| + params()->alt_origin().spec(),
|
| + params()->alt_fallback_origin().spec(),
|
| + params()->ssl_origin().spec());
|
| + } else {
|
| + configurator()->Enable(restricted,
|
| + !params()->fallback_allowed(),
|
| + params()->origin().spec(),
|
| + params()->fallback_origin().spec(),
|
| + std::string());
|
| + }
|
| } else {
|
| - config()->Disable();
|
| + configurator()->Disable();
|
| }
|
| }
|
|
|
| @@ -256,6 +259,7 @@ DataReductionProxySettingsAndroid::GetDailyContentLengths(
|
| // Used by generated jni code.
|
| static jlong Init(JNIEnv* env, jobject obj) {
|
| DataReductionProxySettingsAndroid* settings =
|
| - new DataReductionProxySettingsAndroid(env, obj);
|
| + DataReductionProxySettingsFactoryAndroid::GetForBrowserContext(
|
| + ProfileManager::GetActiveUserProfile());
|
| return reinterpret_cast<intptr_t>(settings);
|
| }
|
|
|