summaryrefslogtreecommitdiff
path: root/chromium/components/data_reduction_proxy
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/components/data_reduction_proxy')
-rw-r--r--chromium/components/data_reduction_proxy/core/browser/BUILD.gn2
-rw-r--r--chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client.cc4
-rw-r--r--chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client_unittest.cc17
-rw-r--r--chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.cc7
-rw-r--r--chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.h4
-rw-r--r--chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_settings.cc18
-rw-r--r--chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_settings.h11
-rw-r--r--chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_test_utils.cc35
-rw-r--r--chromium/components/data_reduction_proxy/core/browser/data_reduction_proxy_test_utils.h25
-rw-r--r--chromium/components/data_reduction_proxy/core/common/data_reduction_proxy_switches.cc5
-rw-r--r--chromium/components/data_reduction_proxy/core/common/data_reduction_proxy_switches.h1
-rw-r--r--chromium/components/data_reduction_proxy/proto/client_config.proto4
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;