Index: components/data_reduction_proxy/browser/data_reduction_proxy_settings.cc |
diff --git a/components/data_reduction_proxy/browser/data_reduction_proxy_settings.cc b/components/data_reduction_proxy/browser/data_reduction_proxy_settings.cc |
index 7fc8138de326a4baa481d2642762af870fa2470a..5905f96e19b334e250c2f75a94d7a1673d96cc59 100644 |
--- a/components/data_reduction_proxy/browser/data_reduction_proxy_settings.cc |
+++ b/components/data_reduction_proxy/browser/data_reduction_proxy_settings.cc |
@@ -87,6 +87,7 @@ DataReductionProxySettings::DataReductionProxySettings( |
: restricted_by_carrier_(false), |
enabled_by_user_(false), |
disabled_on_vpn_(false), |
+ unreachable_(false), |
prefs_(NULL), |
local_state_prefs_(NULL), |
url_request_context_getter_(NULL) { |
@@ -207,14 +208,13 @@ DataReductionProxySettings::GetDailyOriginalContentLengths() { |
return GetDailyContentLengths(prefs::kDailyHttpOriginalContentLength); |
} |
-bool DataReductionProxySettings::IsDataReductionProxyUnreachable() { |
- DCHECK(thread_checker_.CalledOnValidThread()); |
- return usage_stats_ && usage_stats_->isDataReductionProxyUnreachable(); |
+void DataReductionProxySettings::SetUnreachable(bool unreachable) { |
+ unreachable_ = unreachable; |
} |
-void DataReductionProxySettings::SetDataReductionProxyUsageStats( |
- DataReductionProxyUsageStats* usage_stats) { |
- usage_stats_ = usage_stats; |
+bool DataReductionProxySettings::IsDataReductionProxyUnreachable() { |
+ DCHECK(thread_checker_.CalledOnValidThread()); |
+ return unreachable_; |
} |
DataReductionProxySettings::ContentLengthList |
@@ -293,6 +293,7 @@ PrefService* DataReductionProxySettings::GetLocalStatePrefs() { |
void DataReductionProxySettings::AddDefaultProxyBypassRules() { |
// localhost |
+ DCHECK(configurator_); |
configurator_->AddHostPatternToBypass("<local>"); |
// RFC1918 private addresses. |
configurator_->AddHostPatternToBypass("10.0.0.0/8"); |
@@ -303,6 +304,16 @@ void DataReductionProxySettings::AddDefaultProxyBypassRules() { |
// IPV6 probe addresses. |
configurator_->AddHostPatternToBypass("*-ds.metric.gstatic.com"); |
configurator_->AddHostPatternToBypass("*-v4.metric.gstatic.com"); |
+#if defined(OS_ANDROID) |
+ // Chrome cannot authenticate with the data reduction proxy when fetching URLs |
+ // from the settings menu. |
+ configurator_->AddURLPatternToBypass( |
+ "http://www.google.com/policies/privacy*"); |
+ configurator_->AddHostPatternToBypass("*freezone.google.com"); |
+ configurator_->AddHostPatternToBypass("freezone.googleusercontent.com"); |
+ configurator_->AddURLPatternToBypass("http://g.co/gms/*"); |
+ configurator_->AddURLPatternToBypass("http://g.co/freezone*"); |
+#endif |
} |
void DataReductionProxySettings::LogProxyState( |
@@ -394,6 +405,8 @@ void DataReductionProxySettings::SetProxyConfigs(bool enabled, |
bool restricted, |
bool at_startup) { |
DCHECK(thread_checker_.CalledOnValidThread()); |
+ DCHECK(configurator_); |
+ |
LogProxyState(enabled, restricted, at_startup); |
// The alternative is only configured if the standard configuration is |
// is enabled. |