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
3 // found in the LICENSE file.
5 #include "chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_settings.h"
7 #include "base/memory/scoped_ptr.h"
8 #include "base/prefs/pref_service.h"
9 #include "chrome/browser/browser_process.h"
10 #include "chrome/browser/metrics/chrome_metrics_service_accessor.h"
11 #include "chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_configurator.h"
12 #include "chrome/browser/profiles/profile.h"
13 #include "chrome/browser/profiles/profile_manager.h"
14 #include "components/data_reduction_proxy/browser/data_reduction_proxy_auth_request_handler.h"
15 #include "components/data_reduction_proxy/browser/data_reduction_proxy_configurator.h"
16 #include "components/data_reduction_proxy/browser/data_reduction_proxy_params.h"
17 #include "components/data_reduction_proxy/browser/data_reduction_proxy_settings.h"
18 #include "net/url_request/url_request_context_getter.h"
20 using data_reduction_proxy::DataReductionProxyParams;
21 using data_reduction_proxy::DataReductionProxySettings;
23 DataReductionProxyChromeSettings::DataReductionProxyChromeSettings(
24 DataReductionProxyParams* params) : DataReductionProxySettings(params) {
27 DataReductionProxyChromeSettings::~DataReductionProxyChromeSettings() {
30 void DataReductionProxyChromeSettings::InitDataReductionProxySettings(
31 data_reduction_proxy::DataReductionProxyConfigurator* configurator,
32 PrefService* profile_prefs,
33 PrefService* local_state_prefs,
34 net::URLRequestContextGetter* request_context) {
35 SetProxyConfigurator(configurator);
36 DataReductionProxySettings::InitDataReductionProxySettings(
39 DataReductionProxySettings::SetOnDataReductionEnabledCallback(
40 base::Bind(&DataReductionProxyChromeSettings::RegisterSyntheticFieldTrial,
41 base::Unretained(this)));
42 SetDataReductionProxyAlternativeEnabled(
43 DataReductionProxyParams::IsIncludedInAlternativeFieldTrial());
46 void DataReductionProxyChromeSettings::RegisterSyntheticFieldTrial(
47 bool data_reduction_proxy_enabled) {
48 ChromeMetricsServiceAccessor::RegisterSyntheticFieldTrial(
49 "DataReductionProxyEnabled",
50 data_reduction_proxy_enabled ? "true" : "false");
54 std::string DataReductionProxyChromeSettings::GetClient() {
55 #if defined(OS_ANDROID)
56 return data_reduction_proxy::kClientChromeAndroid;
58 return data_reduction_proxy::kClientChromeIOS;