Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(317)

Unified Diff: android_webview/browser/aw_browser_context.cc

Issue 778463002: Wrapped data reduction proxy initialization into its own class (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@network-delegate
Patch Set: Addressed comment from mmenke Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: android_webview/browser/aw_browser_context.cc
diff --git a/android_webview/browser/aw_browser_context.cc b/android_webview/browser/aw_browser_context.cc
index 016f35e30e6366be7943585da64800006ec944b5..f97549555d356b2ca73d184f9947d4c07073789d 100644
--- a/android_webview/browser/aw_browser_context.cc
+++ b/android_webview/browser/aw_browser_context.cc
@@ -19,9 +19,9 @@
#include "base/prefs/pref_service_factory.h"
#include "components/autofill/core/common/autofill_pref_names.h"
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service.h"
+#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_io_data.h"
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_prefs.h"
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_settings.h"
-#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_statistics_prefs.h"
#include "components/data_reduction_proxy/core/common/data_reduction_proxy_event_store.h"
#include "components/data_reduction_proxy/core/common/data_reduction_proxy_params.h"
#include "components/user_prefs/user_prefs.h"
@@ -36,9 +36,10 @@
using base::FilePath;
using content::BrowserThread;
-using data_reduction_proxy::DataReductionProxyConfigService;
-using data_reduction_proxy::DataReductionProxyEventStore;
-using data_reduction_proxy::DataReductionProxySettings;
+
+namespace data_reduction_proxy {
+class DataReductionProxyStatisticsPrefs;
+}
namespace android_webview {
@@ -117,14 +118,16 @@ void AwBrowserContext::SetDataReductionProxyEnabled(bool enabled) {
// Can't enable Data reduction proxy if user pref service is not ready.
if (context == NULL || context->user_pref_service_.get() == NULL)
return;
- DataReductionProxySettings* proxy_settings =
+ data_reduction_proxy::DataReductionProxySettings* proxy_settings =
context->GetDataReductionProxySettings();
if (proxy_settings == NULL)
return;
-
+ // At this point, context->PreMainMessageLoopRun() has run, so
+ // context->data_reduction_proxy_io_data() is valid.
+ DCHECK(context->GetDataReductionProxyIOData());
context->CreateDataReductionProxyStatisticsIfNecessary();
proxy_settings->SetDataReductionProxyStatisticsPrefs(
- context->data_reduction_proxy_statistics_.get());
+ context->GetDataReductionProxyIOData()->statistics_prefs());
proxy_settings->SetDataReductionProxyEnabled(data_reduction_proxy_enabled_);
}
@@ -136,28 +139,39 @@ void AwBrowserContext::SetLegacyCacheRemovalDelayForTest(int delay_ms) {
void AwBrowserContext::PreMainMessageLoopRun() {
cookie_store_ = CreateCookieStore(this);
data_reduction_proxy_settings_.reset(
- new DataReductionProxySettings(
+ new data_reduction_proxy::DataReductionProxySettings(
new data_reduction_proxy::DataReductionProxyParams(
data_reduction_proxy::DataReductionProxyParams::kAllowed)));
- data_reduction_proxy_event_store_.reset(
- new DataReductionProxyEventStore(
- BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI)));
- scoped_ptr<DataReductionProxyConfigService>
+ scoped_ptr<data_reduction_proxy::DataReductionProxyConfigService>
data_reduction_proxy_config_service(
- new DataReductionProxyConfigService(
+ new data_reduction_proxy::DataReductionProxyConfigService(
scoped_ptr<net::ProxyConfigService>(
CreateProxyConfigService()).Pass()));
- if (data_reduction_proxy_settings_.get()) {
- data_reduction_proxy_configurator_.reset(
- new data_reduction_proxy::DataReductionProxyConfigTracker(
- base::Bind(&DataReductionProxyConfigService::UpdateProxyConfig,
- base::Unretained(
- data_reduction_proxy_config_service.get())),
- BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO)));
- data_reduction_proxy_settings_->SetProxyConfigurator(
- data_reduction_proxy_configurator_.get());
- }
-
+ data_reduction_proxy_io_data_.reset(
+ new data_reduction_proxy::DataReductionProxyIOData(
+ data_reduction_proxy::Client::WEBVIEW_ANDROID,
+ data_reduction_proxy_settings_->params()->Clone(),
+ make_scoped_ptr(
+ new data_reduction_proxy::DataReductionProxyConfigTracker(
+ base::Bind(
+ &data_reduction_proxy::DataReductionProxyConfigService::
+ UpdateProxyConfig,
+ base::Unretained(
+ data_reduction_proxy_config_service.get())),
+ BrowserThread::GetMessageLoopProxyForThread(
+ BrowserThread::IO))),
+ scoped_ptr<
+ data_reduction_proxy::DataReductionProxyStatisticsPrefs>(),
+ make_scoped_ptr(
+ new data_reduction_proxy::DataReductionProxyEventStore(
+ BrowserThread::GetMessageLoopProxyForThread(
+ BrowserThread::UI))),
+ data_reduction_proxy_settings_.get(),
+ BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO),
+ BrowserThread::GetMessageLoopProxyForThread(
+ BrowserThread::UI)));
+ data_reduction_proxy_settings_->SetProxyConfigurator(
+ data_reduction_proxy_io_data_->configurator());
FilePath cache_path;
const FilePath fallback_cache_dir =
GetPath().Append(FILE_PATH_LITERAL("Cache"));
@@ -227,13 +241,14 @@ AwFormDatabaseService* AwBrowserContext::GetFormDatabaseService() {
return form_database_service_.get();
}
-DataReductionProxySettings* AwBrowserContext::GetDataReductionProxySettings() {
+data_reduction_proxy::DataReductionProxySettings*
+AwBrowserContext::GetDataReductionProxySettings() {
return data_reduction_proxy_settings_.get();
}
-DataReductionProxyEventStore*
- AwBrowserContext::GetDataReductionProxyEventStore() {
- return data_reduction_proxy_event_store_.get();
+data_reduction_proxy::DataReductionProxyIOData*
+AwBrowserContext::GetDataReductionProxyIOData() {
+ return data_reduction_proxy_io_data_.get();
}
AwURLRequestContextGetter* AwBrowserContext::GetAwURLRequestContext() {
@@ -269,7 +284,7 @@ void AwBrowserContext::CreateUserPrefServiceIfNecessary() {
user_pref_service_.get(),
GetRequestContext(),
GetAwURLRequestContext()->GetNetLog(),
- GetDataReductionProxyEventStore());
+ data_reduction_proxy_io_data_->event_store());
data_reduction_proxy_settings_->MaybeActivateDataReductionProxy(true);
SetDataReductionProxyEnabled(data_reduction_proxy_enabled_);
@@ -363,17 +378,13 @@ void AwBrowserContext::RebuildTable(
void AwBrowserContext::CreateDataReductionProxyStatisticsIfNecessary() {
DCHECK(user_pref_service_.get());
-
- if (!data_reduction_proxy_statistics_.get()) {
- // We don't care about commit_delay for now. It is just a dummy value.
- base::TimeDelta commit_delay = base::TimeDelta::FromMinutes(60);
- data_reduction_proxy_statistics_ =
- scoped_ptr<data_reduction_proxy::DataReductionProxyStatisticsPrefs>(
- new data_reduction_proxy::DataReductionProxyStatisticsPrefs(
- user_pref_service_.get(),
- base::MessageLoopProxy::current(),
- commit_delay));
- }
+ DCHECK(GetDataReductionProxyIOData());
+ if (GetDataReductionProxyIOData()->statistics_prefs())
+ return;
+ // We don't care about commit_delay for now. It is just a dummy value.
+ base::TimeDelta commit_delay = base::TimeDelta::FromMinutes(60);
+ GetDataReductionProxyIOData()->EnableCompressionStatisticsLogging(
+ user_pref_service_.get(), commit_delay);
}
} // namespace android_webview

Powered by Google App Engine
This is Rietveld 408576698