Home | History | Annotate | Download | only in spdyproxy
      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 }
     63