1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_NET_SPDYPROXY_DATA_REDUCTION_PROXY_CHROME_SETTINGS_H_
#define CHROME_BROWSER_NET_SPDYPROXY_DATA_REDUCTION_PROXY_CHROME_SETTINGS_H_
#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_auth_request_handler.h"
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_settings.h"
#include "components/keyed_service/core/keyed_service.h"
namespace base {
class PrefService;
}
namespace data_reduction_proxy {
class DataReductionProxyConfigurator;
class DataReductionProxyEventStore;
class DataReductionProxyParams;
class DataReductionProxyStatisticsPrefs;
}
namespace net {
class NetLog;
class URLRequestContextGetter;
}
class PrefService;
// Data reduction proxy settings class suitable for use with a Chrome browser.
// It is keyed to a browser context.
class DataReductionProxyChromeSettings
: public data_reduction_proxy::DataReductionProxySettings,
public KeyedService {
public:
// Constructs a settings object with the given configuration parameters.
// Construction and destruction must happen on the UI thread.
explicit DataReductionProxyChromeSettings(
data_reduction_proxy::DataReductionProxyParams* params);
// Destructs the settings object.
~DataReductionProxyChromeSettings() override;
// Initialize the settings object with the given configurator, prefs services,
// and request context. Settings takes ownership of statistics prefs from
// |io_data|.
void InitDataReductionProxySettings(
data_reduction_proxy::DataReductionProxyConfigurator* configurator,
PrefService* profile_prefs,
PrefService* local_state_prefs,
scoped_ptr<data_reduction_proxy::DataReductionProxyStatisticsPrefs>
statistics_prefs,
net::URLRequestContextGetter* request_context,
net::NetLog* net_log,
data_reduction_proxy::DataReductionProxyEventStore* event_store);
// Gets the client type for the data reduction proxy.
static data_reduction_proxy::Client GetClient();
private:
// Registers the DataReductionProxyEnabled synthetic field trial with
// the group |data_reduction_proxy_enabled|.
void RegisterSyntheticFieldTrial(bool data_reduction_proxy_enabled);
DISALLOW_COPY_AND_ASSIGN(DataReductionProxyChromeSettings);
};
#endif // CHROME_BROWSER_NET_SPDYPROXY_DATA_REDUCTION_PROXY_CHROME_SETTINGS_H_
|