Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / net / spdyproxy / data_reduction_proxy_chrome_settings.cc
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.
4
5 #include "chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_settings.h"
6
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"
19
20 using data_reduction_proxy::DataReductionProxyParams;
21 using data_reduction_proxy::DataReductionProxySettings;
22
23 DataReductionProxyChromeSettings::DataReductionProxyChromeSettings(
24     DataReductionProxyParams* params) : DataReductionProxySettings(params) {
25 }
26
27 DataReductionProxyChromeSettings::~DataReductionProxyChromeSettings() {
28 }
29
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(
37       profile_prefs,
38       request_context);
39   DataReductionProxySettings::SetOnDataReductionEnabledCallback(
40       base::Bind(&DataReductionProxyChromeSettings::RegisterSyntheticFieldTrial,
41                  base::Unretained(this)));
42   SetDataReductionProxyAlternativeEnabled(
43       DataReductionProxyParams::IsIncludedInAlternativeFieldTrial());
44 }
45
46 void DataReductionProxyChromeSettings::RegisterSyntheticFieldTrial(
47     bool data_reduction_proxy_enabled) {
48   ChromeMetricsServiceAccessor::RegisterSyntheticFieldTrial(
49       "DataReductionProxyEnabled",
50       data_reduction_proxy_enabled ? "true" : "false");
51 }
52
53 // static
54 std::string DataReductionProxyChromeSettings::GetClient() {
55 #if defined(OS_ANDROID)
56   return data_reduction_proxy::kClientChromeAndroid;
57 #elif defined(OS_IOS)
58   return data_reduction_proxy::kClientChromeIOS;
59 #else
60   return "";
61 #endif
62 }