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

Unified Diff: chrome/browser/profiles/profile_impl.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 comments from sclittle Created 5 years, 11 months 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: chrome/browser/profiles/profile_impl.cc
diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc
index 670bbb966b0d57be891afbdbd54cab6cf2cd70c9..a65fb65c7378b52e85dfa8059a5af95fc5761712 100644
--- a/chrome/browser/profiles/profile_impl.cc
+++ b/chrome/browser/profiles/profile_impl.cc
@@ -44,6 +44,7 @@
#include "chrome/browser/net/predictor.h"
#include "chrome/browser/net/pref_proxy_config_tracker.h"
#include "chrome/browser/net/proxy_service_factory.h"
+#include "chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_io_data.h"
#include "chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_settings.h"
#include "chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_settings_factory.h"
#include "chrome/browser/net/ssl_config_service_manager.h"
@@ -84,6 +85,7 @@
#include "components/bookmarks/browser/bookmark_model.h"
#include "components/content_settings/core/browser/host_content_settings_map.h"
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_configurator.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"
@@ -642,66 +644,24 @@ void ProfileImpl::DoFinalInit() {
ChromeNetLog* const net_log = g_browser_process->io_thread()->net_log();
- base::Callback<void(bool)> data_reduction_proxy_unavailable;
- scoped_ptr<data_reduction_proxy::DataReductionProxyParams>
- data_reduction_proxy_params;
- scoped_ptr<data_reduction_proxy::DataReductionProxyConfigurator> configurator;
- scoped_ptr<data_reduction_proxy::DataReductionProxyStatisticsPrefs>
- data_reduction_proxy_statistics_prefs;
- scoped_ptr<data_reduction_proxy::DataReductionProxyEventStore> event_store;
- DataReductionProxyChromeSettings* data_reduction_proxy_chrome_settings =
- DataReductionProxyChromeSettingsFactory::GetForBrowserContext(this);
- data_reduction_proxy_params =
- data_reduction_proxy_chrome_settings->params()->Clone();
- data_reduction_proxy_unavailable =
- base::Bind(
- &data_reduction_proxy::DataReductionProxySettings::SetUnreachable,
- base::Unretained(data_reduction_proxy_chrome_settings));
- // The event_store is used by DataReductionProxyChromeSettings, configurator,
- // and ProfileIOData. Ownership is passed to the latter via
- // ProfileIOData::Handle, which is only destroyed after
- // BrowserContextKeyedServices, including DataReductionProxyChromeSettings
- event_store.reset(
- new data_reduction_proxy::DataReductionProxyEventStore(
- BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI)));
- // The configurator is used by DataReductionProxyChromeSettings and
- // ProfileIOData. Ownership is passed to the latter via ProfileIOData::Handle,
- // which is only destroyed after BrowserContextKeyedServices,
- // including DataReductionProxyChromeSettings.
- configurator.reset(
- new data_reduction_proxy::DataReductionProxyConfigurator(
- BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO),
- net_log,
- event_store.get()));
- // Retain a raw pointer to use for initialization of data reduction proxy
- // settings after ownership is passed
- data_reduction_proxy::DataReductionProxyEventStore*
- data_reduction_proxy_event_store = event_store.get();
// Retain a raw pointer to use for initialization of data reduction proxy
// settings after ownership is passed.
data_reduction_proxy::DataReductionProxyConfigurator*
- data_reduction_proxy_configurator = configurator.get();
-#if defined(OS_ANDROID) || defined(OS_IOS)
- // On mobile we write data reduction proxy prefs directly to the pref service.
- // On desktop we store data reduction proxy prefs in memory, writing to disk
- // every 60 minutes and on termination. Shutdown hooks must be added for
- // Android and iOS in order for non-zero delays to be supported.
- // (http://crbug.com/408264)
- base::TimeDelta commit_delay = base::TimeDelta();
-#else
- base::TimeDelta commit_delay = base::TimeDelta::FromMinutes(60);
-#endif
- // TODO(bengr): Remove this in M-43.
- data_reduction_proxy::MigrateStatisticsPrefs(g_browser_process->local_state(),
- prefs_.get());
- data_reduction_proxy_statistics_prefs =
- scoped_ptr<data_reduction_proxy::DataReductionProxyStatisticsPrefs>(
- new data_reduction_proxy::DataReductionProxyStatisticsPrefs(
- prefs_.get(),
- base::MessageLoopProxy::current(),
- commit_delay));
- data_reduction_proxy_chrome_settings->SetDataReductionProxyStatisticsPrefs(
- data_reduction_proxy_statistics_prefs.get());
+ data_reduction_proxy_configurator = nullptr;
+
+ scoped_ptr<data_reduction_proxy::DataReductionProxyIOData>
+ data_reduction_proxy_io_data =
+ CreateDataReductionProxyChromeIOData(
+ net_log, this, prefs_.get(),
+ BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO),
+ BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI),
+ &data_reduction_proxy_configurator).Pass();
mmenke 2015/01/16 19:03:20 Does any of this stuff need to be done in profile_
bengr 2015/01/17 00:20:47 I think the answer is yes, for now, because InitDa
mmenke 2015/01/17 00:29:54 Right, I was thinking we could move that, too.
bengr 2015/01/21 23:28:02 Done.
+
+ // Retain a raw pointer to use for initialization of data reduction proxy
+ // settings after ownership is passed
+ data_reduction_proxy::DataReductionProxyEventStore*
+ data_reduction_proxy_event_store =
+ data_reduction_proxy_io_data->event_store();
// Make sure we initialize the ProfileIOData after everything else has been
// initialized that we might be reading from the IO thread.
@@ -711,18 +671,12 @@ void ProfileImpl::DoFinalInit() {
extensions_cookie_path, GetPath(), infinite_cache_path,
predictor_, session_cookie_mode, GetSpecialStoragePolicy(),
CreateDomainReliabilityMonitor(local_state),
- data_reduction_proxy_unavailable,
- configurator.Pass(),
- data_reduction_proxy_params.Pass(),
- data_reduction_proxy_statistics_prefs.Pass(),
- event_store.Pass());
- data_reduction_proxy_chrome_settings->InitDataReductionProxySettings(
- data_reduction_proxy_configurator,
- prefs_.get(),
- g_browser_process->local_state(),
- GetRequestContext(),
- net_log,
- data_reduction_proxy_event_store);
+ data_reduction_proxy_io_data.Pass());
+ DataReductionProxyChromeSettingsFactory::GetForBrowserContext(this)->
mmenke 2015/01/16 19:03:20 Cant this call be moved before io_data_.Init? I a
bengr 2015/01/17 00:20:47 Ack that this is kinda weird and not ideal. Unfort
+ InitDataReductionProxySettings(
+ data_reduction_proxy_configurator, prefs_.get(),
+ g_browser_process->local_state(), GetRequestContext(), net_log,
mmenke 2015/01/16 19:03:20 Question: Not for this CL, but for the future...D
bengr 2015/01/17 00:20:47 See above reply. Even better is that we'd remove t
+ data_reduction_proxy_event_store);
#if defined(ENABLE_PLUGINS)
ChromePluginServiceFilter::GetInstance()->RegisterResourceContext(

Powered by Google App Engine
This is Rietveld 408576698