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

Unified Diff: chrome/browser/net/chrome_network_delegate.cc

Issue 10416002: Seculative resource prefetching for URLs CL. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Addressing dominich's and willchan's comments. Created 8 years, 7 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/net/chrome_network_delegate.cc
diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/chrome_network_delegate.cc
index 2c65be638488e795da5754ef3d53f77efb63b0a6..1331fe609c8226d069a97fcb32ad83b9d50eec84 100644
--- a/chrome/browser/net/chrome_network_delegate.cc
+++ b/chrome/browser/net/chrome_network_delegate.cc
@@ -14,6 +14,8 @@
#include "chrome/browser/extensions/extension_event_router_forwarder.h"
#include "chrome/browser/extensions/extension_info_map.h"
#include "chrome/browser/extensions/extension_process_manager.h"
+#include "chrome/browser/net/resource_prefetch_predictor_observer.h"
+#include "chrome/browser/predictors/resource_prefetch_predictor.h"
#include "chrome/browser/prefs/pref_member.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/task_manager/task_manager.h"
@@ -123,6 +125,8 @@ ChromeNetworkDelegate::ChromeNetworkDelegate(
const policy::URLBlacklistManager* url_blacklist_manager,
void* profile,
CookieSettings* cookie_settings,
+ scoped_refptr<predictors::ResourcePrefetchPredictor>
+ resource_prefetch_predictor,
BooleanPrefMember* enable_referrers)
: event_router_(event_router),
profile_(profile),
@@ -133,6 +137,11 @@ ChromeNetworkDelegate::ChromeNetworkDelegate(
DCHECK(event_router);
DCHECK(enable_referrers);
DCHECK(!profile || cookie_settings);
+
+ if (resource_prefetch_predictor)
+ resource_prefetch_predictor_observer_.reset(
+ new chrome_browser_net::ResourcePrefetchPredictorObserver(
+ resource_prefetch_predictor));
}
ChromeNetworkDelegate::~ChromeNetworkDelegate() {}
@@ -172,6 +181,9 @@ int ChromeNetworkDelegate::OnBeforeURLRequest(
ForwardRequestStatus(REQUEST_STARTED, request, profile_);
+ if (resource_prefetch_predictor_observer_.get())
dominich 2012/05/24 16:07:53 Is there a way to create a ProfileKeyedService on
Shishir 2012/05/30 01:07:51 The ProfileKeyedServices are all created together
+ resource_prefetch_predictor_observer_->OnBeforeURLRequest(request);
+
if (!enable_referrers_->GetValue())
request->set_referrer(std::string());
return ExtensionWebRequestEventRouter::GetInstance()->OnBeforeRequest(
@@ -207,6 +219,8 @@ void ChromeNetworkDelegate::OnBeforeRedirect(net::URLRequest* request,
const GURL& new_location) {
ExtensionWebRequestEventRouter::GetInstance()->OnBeforeRedirect(
profile_, extension_info_map_.get(), request, new_location);
+ if (resource_prefetch_predictor_observer_.get())
+ resource_prefetch_predictor_observer_->OnBeforeRedirect(request);
}
@@ -214,6 +228,8 @@ void ChromeNetworkDelegate::OnResponseStarted(net::URLRequest* request) {
ExtensionWebRequestEventRouter::GetInstance()->OnResponseStarted(
profile_, extension_info_map_.get(), request);
ForwardProxyErrors(request, event_router_.get(), profile_);
+ if (resource_prefetch_predictor_observer_.get())
+ resource_prefetch_predictor_observer_->OnResponseStarted(request);
}
void ChromeNetworkDelegate::OnRawBytesRead(const net::URLRequest& request,

Powered by Google App Engine
This is Rietveld 408576698