Index: chrome/browser/io_thread.cc |
=================================================================== |
--- chrome/browser/io_thread.cc (revision 96009) |
+++ chrome/browser/io_thread.cc (working copy) |
@@ -24,7 +24,7 @@ |
#include "chrome/browser/net/chrome_url_request_context.h" |
#include "chrome/browser/net/connect_interceptor.h" |
#include "chrome/browser/net/passive_log_collector.h" |
-#include "chrome/browser/net/predictor_api.h" |
+#include "chrome/browser/net/predictor.h" |
#include "chrome/browser/net/pref_proxy_config_service.h" |
#include "chrome/browser/net/proxy_service_factory.h" |
#include "chrome/browser/prefs/pref_service.h" |
@@ -340,8 +340,6 @@ |
net_log_(net_log), |
extension_event_router_forwarder_(extension_event_router_forwarder), |
globals_(NULL), |
- speculative_interceptor_(NULL), |
- predictor_(NULL), |
ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) { |
// We call RegisterPrefs() here (instead of inside browser_prefs.cc) to make |
// sure that everything is initialized in the right order. |
@@ -384,32 +382,18 @@ |
} |
void IOThread::InitNetworkPredictor( |
willchan no longer on Chromium
2011/08/10 16:10:35
Please kill off IOThread::InitNetworkPredictor().
rpetterson
2011/08/12 03:12:36
Done.
|
- bool prefetching_enabled, |
- base::TimeDelta max_dns_queue_delay, |
- size_t max_speculative_parallel_resolves, |
const chrome_common_net::UrlList& startup_urls, |
ListValue* referral_list, |
- bool preconnect_enabled) { |
+ chrome_browser_net::Predictor* predictor) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
message_loop()->PostTask( |
FROM_HERE, |
NewRunnableMethod( |
this, |
&IOThread::InitNetworkPredictorOnIOThread, |
- prefetching_enabled, max_dns_queue_delay, |
- max_speculative_parallel_resolves, |
- startup_urls, referral_list, preconnect_enabled)); |
+ startup_urls, referral_list, predictor)); |
} |
-void IOThread::ChangedToOnTheRecord() { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- message_loop()->PostTask( |
- FROM_HERE, |
- NewRunnableMethod( |
- this, |
- &IOThread::ChangedToOnTheRecordOnIOThread)); |
-} |
- |
net::URLRequestContextGetter* IOThread::system_url_request_context_getter() { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
if (!system_url_request_context_getter_) { |
@@ -418,13 +402,15 @@ |
return system_url_request_context_getter_; |
} |
-void IOThread::ClearNetworkingHistory() { |
+void IOThread::ClearNetworkingHistory( |
+ chrome_browser_net::Predictor* predictor) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
ClearHostCache(); |
// Discard acrued data used to speculate in the future. |
- chrome_browser_net::DiscardInitialNavigationHistory(); |
- if (predictor_) |
- predictor_->DiscardAllResults(); |
+ if (predictor) { |
+ predictor->DiscardInitialNavigationHistory(); |
+ predictor->DiscardAllResults(); |
+ } |
} |
void IOThread::Init() { |
@@ -516,21 +502,6 @@ |
// This must be reset before the ChromeNetLog is destroyed. |
network_change_observer_.reset(); |
- // Not initialized in Init(). May not be initialized. |
- if (predictor_) { |
- predictor_->Shutdown(); |
- |
- // TODO(willchan): Stop reference counting Predictor. It's owned by |
- // IOThread now. |
- predictor_->Release(); |
- predictor_ = NULL; |
- chrome_browser_net::FreePredictorResources(); |
- } |
- |
- // Deletion will unregister this interceptor. |
- delete speculative_interceptor_; |
- speculative_interceptor_ = NULL; |
- |
system_proxy_config_service_.reset(); |
delete globals_; |
@@ -588,50 +559,15 @@ |
} |
void IOThread::InitNetworkPredictorOnIOThread( |
- bool prefetching_enabled, |
- base::TimeDelta max_dns_queue_delay, |
- size_t max_speculative_parallel_resolves, |
const chrome_common_net::UrlList& startup_urls, |
ListValue* referral_list, |
- bool preconnect_enabled) { |
+ chrome_browser_net::Predictor* predictor) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
- CHECK(!predictor_); |
- chrome_browser_net::EnablePredictor(prefetching_enabled); |
- |
- predictor_ = new chrome_browser_net::Predictor( |
jar (doing other things)
2011/08/16 01:19:09
Code like this is what caused us to have such a me
|
- globals_->host_resolver.get(), |
- max_dns_queue_delay, |
- max_speculative_parallel_resolves, |
- preconnect_enabled); |
- predictor_->AddRef(); |
- |
- // Speculative_interceptor_ is used to predict subresource usage. |
- DCHECK(!speculative_interceptor_); |
- speculative_interceptor_ = new chrome_browser_net::ConnectInterceptor; |
- |
- FinalizePredictorInitialization(predictor_, startup_urls, referral_list); |
+ predictor->FinalizeInitializationOnIOThread(startup_urls, referral_list, |
jar (doing other things)
2011/08/16 01:19:09
This method name should be reflected in the name o
willchan no longer on Chromium
2011/08/16 01:42:57
I think I may have commented on this before (I hop
rpetterson
2011/08/16 03:52:12
Yes, this has already been pulled out.
|
+ globals_->host_resolver.get()); |
} |
-void IOThread::ChangedToOnTheRecordOnIOThread() { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
- |
- if (predictor_) { |
- // Destroy all evidence of our OTR session. |
- // Note: OTR mode never saves InitialNavigationHistory data. |
- predictor_->Predictor::DiscardAllResults(); |
- } |
- |
- // Clear the host cache to avoid showing entries from the OTR session |
- // in about:net-internals. |
- ClearHostCache(); |
- |
- // Clear all of the passively logged data. |
- // TODO(eroman): this is a bit heavy handed, really all we need to do is |
- // clear the data pertaining to incognito context. |
- net_log_->ClearAllPassivelyCapturedEvents(); |
-} |
- |
void IOThread::ClearHostCache() { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |