diff options
Diffstat (limited to 'chromium/components/data_reduction_proxy')
12 files changed, 87 insertions, 46 deletions
diff --git a/chromium/components/data_reduction_proxy/core/browser/BUILD.gn b/chromium/components/data_reduction_proxy/core/browser/BUILD.gn index b3c8d04afb1..23d57897235 100644 --- a/chromium/components/data_reduction_proxy/core/browser/BUILD.gn +++ b/chromium/components/data_reduction_proxy/core/browser/BUILD.gn @@ -115,6 +115,8 @@ static_library("test_support") { "//base", "//components/data_reduction_proxy/core/common", "//components/data_reduction_proxy/core/common:test_support", + "//components/data_use_measurement/core", + "//components/data_use_measurement/core:ascriber", "//components/prefs:test_support", "//components/previews/core:core", "//net", diff --git a/chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client.cc b/chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client.cc index a2d7bcb548b..4f086c1817e 100644 --- a/chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client.cc +++ b/chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client.cc @@ -532,8 +532,8 @@ bool DataReductionProxyConfigServiceClient::ParseAndApplyProxyConfig( service_->UpdatePrefetchProxyHosts( GetPrefetchProxyHosts(config.prefetch_proxy_config())); - service_->SetIgnoreLongTermBlackListRules( - config.ignore_long_term_black_list_rules()); + service_->SetIgnoreLongTermBlockListRules( + config.ignore_long_term_block_list_rules()); request_options_->SetSecureSession(config.session_key()); remote_config_applied_ = true; diff --git a/chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client_unittest.cc b/chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client_unittest.cc index 0cf5af69699..cb20b9d6f4c 100644 --- a/chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client_unittest.cc +++ b/chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client_unittest.cc @@ -137,9 +137,9 @@ class DataReductionProxyConfigServiceClientTest : public testing::Test { kPersistedSessionKey, kConfigRefreshDurationSeconds, 0); loaded_config_ = EncodeConfig(persisted); - ClientConfig ignore_black_list_config = CreateClientConfig( + ClientConfig ignore_block_list_config = CreateClientConfig( kSuccessSessionKey, kConfigRefreshDurationSeconds, 0); - ignore_black_list_encoded_config_ = EncodeConfig(ignore_black_list_config); + ignore_block_list_encoded_config_ = EncodeConfig(ignore_block_list_config); ClientConfig no_proxies_config; no_proxies_config.set_session_key(kSuccessSessionKey); @@ -179,11 +179,6 @@ class DataReductionProxyConfigServiceClientTest : public testing::Test { return test_context_->mock_request_options(); } - bool ignore_blacklist() const { - return test_context_->test_data_reduction_proxy_service() - ->ignore_blacklist(); - } - void RunUntilIdle() { test_context_->RunUntilIdle(); } void AddMockSuccess() { @@ -217,8 +212,8 @@ class DataReductionProxyConfigServiceClientTest : public testing::Test { const std::string& previous_success_response() const { return previous_config_; } - const std::string& ignore_black_list_encoded_config() const { - return ignore_black_list_encoded_config_; + const std::string& ignore_block_list_encoded_config() const { + return ignore_block_list_encoded_config_; } const std::string& no_proxies_config() const { return no_proxies_config_; } @@ -249,8 +244,8 @@ class DataReductionProxyConfigServiceClientTest : public testing::Test { // An encoded config that represents a previously saved configuration. std::string loaded_config_; - // A configuration where the black list rules are ignored. - std::string ignore_black_list_encoded_config_; + // A configuration where the block list rules are ignored. + std::string ignore_block_list_encoded_config_; // A configuration where no proxies are configured. std::string no_proxies_config_; diff --git a/chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.cc b/chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.cc index 5e9904c65cc..edd615b5d68 100644 --- a/chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.cc +++ b/chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.cc @@ -84,6 +84,7 @@ DataReductionProxyService::DataReductionProxyService( channel_(channel), save_data_savings_estimate_dict_( GetSaveDataSavingsPercentEstimateFromFieldTrial()) { + DCHECK(data_use_measurement_); DCHECK(settings); DCHECK(network_quality_tracker_); DCHECK(network_connection_tracker_); @@ -297,10 +298,10 @@ void DataReductionProxyService::OnProxyConfigUpdated() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); } -void DataReductionProxyService::SetIgnoreLongTermBlackListRules( - bool ignore_long_term_black_list_rules) { +void DataReductionProxyService::SetIgnoreLongTermBlockListRules( + bool ignore_long_term_block_list_rules) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - settings_->SetIgnoreLongTermBlackListRules(ignore_long_term_black_list_rules); + settings_->SetIgnoreLongTermBlockListRules(ignore_long_term_block_list_rules); } void DataReductionProxyService::AddCustomProxyConfigClient( diff --git a/chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.h b/chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.h index 8a110be69b4..669f508884b 100644 --- a/chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.h +++ b/chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.h @@ -124,9 +124,9 @@ class DataReductionProxyService settings_ = settings; } - // When triggering previews, prevent long term black list rules. Virtual for + // When triggering previews, prevent long term block list rules. Virtual for // testing. - virtual void SetIgnoreLongTermBlackListRules( + virtual void SetIgnoreLongTermBlockListRules( bool ignore_long_term_black_list_rules); // Returns the current network quality estimates. diff --git a/chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_settings.cc b/chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_settings.cc index 2adcd49925c..72977ebe9dd 100644 --- a/chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_settings.cc +++ b/chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_settings.cc @@ -205,6 +205,15 @@ PrefService* DataReductionProxySettings::GetOriginalProfilePrefs() const { return prefs_; } +base::Time DataReductionProxySettings::GetLastEnabledTime() const { + PrefService* prefs = GetOriginalProfilePrefs(); + int64_t last_enabled_time = + prefs->GetInt64(prefs::kDataReductionProxyLastEnabledTime); + if (last_enabled_time <= 0) + return base::Time(); + return base::Time::FromInternalValue(last_enabled_time); +} + void DataReductionProxySettings::RegisterDataReductionProxyFieldTrial() { register_synthetic_field_trial_.Run( "SyntheticDataReductionProxySetting", @@ -242,15 +251,12 @@ void DataReductionProxySettings::MaybeActivateDataReductionProxy( bool enabled = IsDataSaverEnabledByUser(is_off_the_record_profile_, prefs); if (enabled && at_startup) { - // Record the number of days since data reduction proxy has been enabled. - int64_t last_enabled_time = - prefs->GetInt64(prefs::kDataReductionProxyLastEnabledTime); - if (last_enabled_time != 0) { + const auto last_enabled_time = GetLastEnabledTime(); + if (!last_enabled_time.is_null()) { // Record the metric only if the time when data reduction proxy was // enabled is available. RecordDaysSinceEnabledMetric( - (clock_->Now() - base::Time::FromInternalValue(last_enabled_time)) - .InDays()); + (clock_->Now() - last_enabled_time).InDays()); } } diff --git a/chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_settings.h b/chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_settings.h index dc891a2767d..e805bd4131d 100644 --- a/chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_settings.h +++ b/chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_settings.h @@ -157,9 +157,9 @@ class DataReductionProxySettings { // some of them should have. bool IsDataReductionProxyUnreachable(); - // When triggering previews, prevent long term black list rules. - virtual void SetIgnoreLongTermBlackListRules( - bool ignore_long_term_black_list_rules) {} + // When triggering previews, prevent long term block list rules. + virtual void SetIgnoreLongTermBlockListRules( + bool ignore_long_term_block_list_rules) {} ContentLengthList GetDailyContentLengths(const char* pref_name); @@ -179,6 +179,11 @@ class DataReductionProxySettings { // Returns the list of hosts for the prefetch proxy. const std::vector<GURL>& GetPrefetchProxies() const; + // Returns the time LiteMode was last enabled. This is reset whenever LiteMode + // is disabled and re-enabled from settings. Null time is returned when + // LiteMode has never been enabled. + base::Time GetLastEnabledTime() const; + // Adds an observer that is notified every time the proxy request headers // change. void AddDataReductionProxySettingsObserver( diff --git a/chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_test_utils.cc b/chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_test_utils.cc index 5ac5e1581ad..482c87be2e6 100644 --- a/chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_test_utils.cc +++ b/chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_test_utils.cc @@ -191,6 +191,7 @@ bool TestDataReductionProxyConfigServiceClient::RemoteConfigApplied() const { } MockDataReductionProxyService::MockDataReductionProxyService( + data_use_measurement::DataUseMeasurement* data_use_measurement, DataReductionProxySettings* settings, network::TestNetworkQualityTracker* test_network_quality_tracker, PrefService* prefs, @@ -203,7 +204,7 @@ MockDataReductionProxyService::MockDataReductionProxyService( std::make_unique<TestDataStore>(), test_network_quality_tracker, network::TestNetworkConnectionTracker::GetInstance(), - nullptr, + data_use_measurement, task_runner, base::TimeDelta(), Client::UNKNOWN, @@ -213,6 +214,7 @@ MockDataReductionProxyService::MockDataReductionProxyService( MockDataReductionProxyService::~MockDataReductionProxyService() {} TestDataReductionProxyService::TestDataReductionProxyService( + data_use_measurement::DataUseMeasurement* data_use_measurement, DataReductionProxySettings* settings, PrefService* prefs, scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, @@ -225,7 +227,7 @@ TestDataReductionProxyService::TestDataReductionProxyService( std::make_unique<TestDataStore>(), network_quality_tracker, network::TestNetworkConnectionTracker::GetInstance(), - nullptr, + data_use_measurement, db_task_runner, base::TimeDelta(), Client::UNKNOWN, @@ -234,9 +236,9 @@ TestDataReductionProxyService::TestDataReductionProxyService( TestDataReductionProxyService::~TestDataReductionProxyService() {} -void TestDataReductionProxyService::SetIgnoreLongTermBlackListRules( - bool ignore_long_term_black_list_rules) { - ignore_blacklist_ = ignore_long_term_black_list_rules; +void TestDataReductionProxyService::SetIgnoreLongTermBlockListRules( + bool ignore_long_term_block_list_rules) { + ignore_blocklist_ = ignore_long_term_block_list_rules; } TestDataStore::TestDataStore() {} @@ -280,7 +282,11 @@ DataReductionProxyTestContext::Builder::Builder() use_mock_request_options_(false), use_config_client_(false), use_test_config_client_(false), - skip_settings_initialization_(false) {} + skip_settings_initialization_(false), + data_use_measurement_( + std::make_unique<data_use_measurement::DataUseMeasurement>( + nullptr, + network::TestNetworkConnectionTracker::GetInstance())) {} DataReductionProxyTestContext::Builder::~Builder() {} @@ -404,12 +410,13 @@ DataReductionProxyTestContext::Builder::Build() { if (use_mock_service_) { test_context_flags |= USE_MOCK_SERVICE; service = std::make_unique<MockDataReductionProxyService>( - settings_.get(), test_network_quality_tracker.get(), pref_service.get(), + data_use_measurement_.get(), settings_.get(), + test_network_quality_tracker.get(), pref_service.get(), url_loader_factory, task_runner); } else { service = std::make_unique<TestDataReductionProxyService>( - settings_.get(), pref_service.get(), url_loader_factory, - test_network_quality_tracker.get(), task_runner); + data_use_measurement_.get(), settings_.get(), pref_service.get(), + url_loader_factory, test_network_quality_tracker.get(), task_runner); } if (use_test_config_client_) { @@ -432,7 +439,8 @@ DataReductionProxyTestContext::Builder::Build() { std::unique_ptr<DataReductionProxyTestContext> test_context( new DataReductionProxyTestContext( - task_runner, std::move(pref_service), url_loader_factory, + std::move(data_use_measurement_), task_runner, + std::move(pref_service), url_loader_factory, std::move(test_url_loader_factory), std::move(settings_), std::move(service), std::move(test_network_quality_tracker), std::move(config_storer), test_context_flags)); @@ -444,6 +452,8 @@ DataReductionProxyTestContext::Builder::Build() { } DataReductionProxyTestContext::DataReductionProxyTestContext( + std::unique_ptr<data_use_measurement::DataUseMeasurement> + data_use_measurement, const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, std::unique_ptr<TestingPrefServiceSimple> simple_pref_service, scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, @@ -454,7 +464,8 @@ DataReductionProxyTestContext::DataReductionProxyTestContext( test_network_quality_tracker, std::unique_ptr<TestConfigStorer> config_storer, unsigned int test_context_flags) - : test_context_flags_(test_context_flags), + : data_use_measurement_(std::move(data_use_measurement)), + test_context_flags_(test_context_flags), task_runner_(task_runner), simple_pref_service_(std::move(simple_pref_service)), test_shared_url_loader_factory_(url_loader_factory), @@ -463,6 +474,8 @@ DataReductionProxyTestContext::DataReductionProxyTestContext( test_network_quality_tracker_(std::move(test_network_quality_tracker)), service_(std::move(service)), config_storer_(std::move(config_storer)) { + DCHECK(data_use_measurement_); + if (service_) data_reduction_proxy_service_ = service_.get(); else diff --git a/chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_test_utils.h b/chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_test_utils.h index 81e4a907373..42e465a561b 100644 --- a/chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_test_utils.h +++ b/chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_test_utils.h @@ -25,8 +25,12 @@ #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_settings_test_utils.h" #include "components/data_reduction_proxy/core/browser/data_store.h" #include "components/data_reduction_proxy/core/common/data_reduction_proxy_params.h" +#include "components/data_use_measurement/core/data_use_measurement.h" +#include "components/prefs/pref_registry_simple.h" +#include "components/prefs/testing_pref_service.h" #include "net/base/backoff_entry.h" #include "net/base/proxy_server.h" +#include "services/network/test/test_network_connection_tracker.h" #include "testing/gmock/include/gmock/gmock.h" class GURL; @@ -156,6 +160,7 @@ class TestDataReductionProxyConfigServiceClient class MockDataReductionProxyService : public DataReductionProxyService { public: MockDataReductionProxyService( + data_use_measurement::DataUseMeasurement* data_use_measurement, DataReductionProxySettings* settings, network::TestNetworkQualityTracker* test_network_quality_tracker, PrefService* prefs, @@ -187,6 +192,7 @@ class MockDataReductionProxyService : public DataReductionProxyService { class TestDataReductionProxyService : public DataReductionProxyService { public: TestDataReductionProxyService( + data_use_measurement::DataUseMeasurement* data_use_measurement, DataReductionProxySettings* settings, PrefService* prefs, scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, @@ -194,15 +200,15 @@ class TestDataReductionProxyService : public DataReductionProxyService { const scoped_refptr<base::SequencedTaskRunner>& db_task_runner); ~TestDataReductionProxyService() override; - // Records |ignore_long_term_black_list_rules| as |ignore_blacklist_|. - void SetIgnoreLongTermBlackListRules( - bool ignore_long_term_black_list_rules) override; + // Records |ignore_long_term_block_list_rules| as |ignore_blocklist_|. + void SetIgnoreLongTermBlockListRules( + bool ignore_long_term_block_list_rules) override; - bool ignore_blacklist() const { return ignore_blacklist_; } + bool ignore_blocklist() const { return ignore_blocklist_; } private: - // Whether the long term blacklist rules should be ignored. - bool ignore_blacklist_ = false; + // Whether the long term blocklist rules should be ignored. + bool ignore_blocklist_ = false; }; // Test version of |DataStore|. Uses an in memory hash map to store data. @@ -287,6 +293,8 @@ class DataReductionProxyTestContext { bool use_test_config_client_; bool skip_settings_initialization_; std::unique_ptr<DataReductionProxySettings> settings_; + std::unique_ptr<data_use_measurement::DataUseMeasurement> + data_use_measurement_; }; virtual ~DataReductionProxyTestContext(); @@ -374,6 +382,8 @@ class DataReductionProxyTestContext { }; DataReductionProxyTestContext( + std::unique_ptr<data_use_measurement::DataUseMeasurement> + data_use_measurement, const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, std::unique_ptr<TestingPrefServiceSimple> simple_pref_service, scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, @@ -385,6 +395,9 @@ class DataReductionProxyTestContext { std::unique_ptr<TestConfigStorer> config_storer, unsigned int test_context_flags); + std::unique_ptr<data_use_measurement::DataUseMeasurement> + data_use_measurement_; + unsigned int test_context_flags_; scoped_refptr<base::SingleThreadTaskRunner> task_runner_; diff --git a/chromium/components/data_reduction_proxy/core/common/data_reduction_proxy_switches.cc b/chromium/components/data_reduction_proxy/core/common/data_reduction_proxy_switches.cc index 836a9ba4cff..08391335d8b 100644 --- a/chromium/components/data_reduction_proxy/core/common/data_reduction_proxy_switches.cc +++ b/chromium/components/data_reduction_proxy/core/common/data_reduction_proxy_switches.cc @@ -80,5 +80,10 @@ const char kEnableDataReductionProxySavingsPromo[] = const char kDataReductionProxyServerClientConfig[] = "data-reduction-proxy-client-config"; +// Override the one-time InfoBar to not needed to be shown before triggering +// https image compression for the page load. +const char kOverrideHttpsImageCompressionInfobar[] = + "override-https-image-compression-infobar"; + } // namespace switches } // namespace data_reduction_proxy diff --git a/chromium/components/data_reduction_proxy/core/common/data_reduction_proxy_switches.h b/chromium/components/data_reduction_proxy/core/common/data_reduction_proxy_switches.h index 5a0ce24a5e4..8b939fa06ca 100644 --- a/chromium/components/data_reduction_proxy/core/common/data_reduction_proxy_switches.h +++ b/chromium/components/data_reduction_proxy/core/common/data_reduction_proxy_switches.h @@ -35,6 +35,7 @@ extern const char kEnableDataReductionProxy[]; extern const char kEnableDataReductionProxyBypassWarning[]; extern const char kEnableDataReductionProxyForcePingback[]; extern const char kEnableDataReductionProxySavingsPromo[]; +extern const char kOverrideHttpsImageCompressionInfobar[]; } // namespace switches } // namespace data_reduction_proxy diff --git a/chromium/components/data_reduction_proxy/proto/client_config.proto b/chromium/components/data_reduction_proxy/proto/client_config.proto index d0dc39bd87f..58b9b0ee188 100644 --- a/chromium/components/data_reduction_proxy/proto/client_config.proto +++ b/chromium/components/data_reduction_proxy/proto/client_config.proto @@ -28,9 +28,9 @@ message ClientConfig { // Configuration information for reporting pageload metrics. optional DeprecatedPageloadMetricsConfig pageload_metrics_config = 5 [deprecated = true]; - // Prevents the host base and user base blacklisting behaviors for lite pages + // Prevents the host base and user base blocklisting behaviors for lite pages // and server LoFi. - optional bool ignore_long_term_black_list_rules = 7 [deprecated = true]; + optional bool ignore_long_term_block_list_rules = 7 [deprecated = true]; // The configuration that the client should use to connect to the prefetch // proxy. optional PrefetchProxyConfig prefetch_proxy_config = 8; |