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

Unified Diff: chrome/browser/net/spdyproxy/data_reduction_proxy_settings_android.cc

Issue 286013002: Added alternative configuration for the data reduction proxy (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: DCHECK fix Created 6 years, 7 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 side-by-side diff with in-line comments
Download patch
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);
}

Powered by Google App Engine
This is Rietveld 408576698