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 20using data_reduction_proxy::DataReductionProxyParams; 21using data_reduction_proxy::DataReductionProxySettings; 22 23DataReductionProxyChromeSettings::DataReductionProxyChromeSettings( 24 DataReductionProxyParams* params) : DataReductionProxySettings(params) { 25} 26 27DataReductionProxyChromeSettings::~DataReductionProxyChromeSettings() { 28} 29 30void 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 46void DataReductionProxyChromeSettings::RegisterSyntheticFieldTrial( 47 bool data_reduction_proxy_enabled) { 48 ChromeMetricsServiceAccessor::RegisterSyntheticFieldTrial( 49 "DataReductionProxyEnabled", 50 data_reduction_proxy_enabled ? "true" : "false"); 51} 52 53// static 54std::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