Index: components/data_reduction_proxy/core/browser/data_reduction_proxy_io_data.h |
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_io_data.h b/components/data_reduction_proxy/core/browser/data_reduction_proxy_io_data.h |
index 141a09b6fb89bd36f55e5f3f3fedd2505fade0f5..32def1676e997efd44799f5a76bb38bf18762418 100644 |
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_io_data.h |
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_io_data.h |
@@ -18,6 +18,7 @@ |
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate.h" |
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options.h" |
#include "components/data_reduction_proxy/core/common/data_reduction_proxy_event_storage_delegate.h" |
+#include "components/data_reduction_proxy/core/common/data_reduction_proxy_lofi_helper.h" |
namespace base { |
class Value; |
@@ -87,6 +88,11 @@ class DataReductionProxyIOData : public DataReductionProxyEventStorageDelegate { |
// Applies a serialized Data Reduction Proxy configuration. |
void SetDataReductionProxyConfiguration(const std::string& serialized_config); |
+ // Returns true when Lo-Fi "q=low" header should be added to the Chrome Proxy |
+ // header or when the user is in the Lo-Fi "Control" group and the network |
+ // quality is prohibitively slow. Should be called only on main frame loads. |
+ bool ShouldEnableLoFiMode(net::URLRequest* url_request); |
+ |
// Sets Lo-Fi mode off in |config_|. |
void SetLoFiModeOff(); |
@@ -162,6 +168,15 @@ class DataReductionProxyIOData : public DataReductionProxyEventStorageDelegate { |
debug_ui_service_= ui_service.Pass(); |
} |
+ DataReductionProxyLoFiHelper* lofi_helper() const { |
+ return lofi_helper_.get(); |
+ } |
+ |
+ void set_lofi_helper( |
+ scoped_ptr<DataReductionProxyLoFiHelper> lofi_helper) const { |
+ lofi_helper_ = lofi_helper.Pass(); |
+ } |
+ |
private: |
friend class TestDataReductionProxyIOData; |
FRIEND_TEST_ALL_PREFIXES(DataReductionProxyIODataTest, TestConstruction); |
@@ -199,6 +214,9 @@ class DataReductionProxyIOData : public DataReductionProxyEventStorageDelegate { |
// interstitials. |
mutable scoped_ptr<DataReductionProxyDebugUIService> debug_ui_service_; |
+ // Handles the getting and setting of the Lo-Fi UserData on a request. |
+ mutable scoped_ptr<DataReductionProxyLoFiHelper> lofi_helper_; |
+ |
// Creates Data Reduction Proxy-related events for logging. |
scoped_ptr<DataReductionProxyEventCreator> event_creator_; |