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

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

Issue 3032014: Support both preconnection, and pre-resolution for subresources... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 5 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
« no previous file with comments | « chrome/browser/io_thread.cc ('k') | chrome/browser/net/preconnect.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/net/connect_interceptor.cc
===================================================================
--- chrome/browser/net/connect_interceptor.cc (revision 54027)
+++ chrome/browser/net/connect_interceptor.cc (working copy)
@@ -5,6 +5,7 @@
#include "chrome/browser/net/connect_interceptor.h"
#include "chrome/browser/net/predictor_api.h"
+#include "net/base/load_flags.h"
namespace chrome_browser_net {
@@ -17,24 +18,18 @@
}
URLRequestJob* ConnectInterceptor::MaybeIntercept(URLRequest* request) {
- if (!request->referrer().empty()) {
+ bool is_subresource = !(request->load_flags() & net::LOAD_MAIN_FRAME);
+ if (is_subresource && !request->referrer().empty()) {
// Learn about our referring URL, for use in the future.
- GURL referring_url(GURL(request->referrer()).GetWithEmptyPath());
- // TODO(jar): Only call if we think this was part of a frame load, and not a
- // link navigation. For now, we'll "learn" that to preconnect when a user
- // actually does a click... which will probably waste space in our referrers
- // table (since it probably won't be that deterministic).
- LearnFromNavigation(referring_url, request->url().GetWithEmptyPath());
+ GURL referring_url(request->referrer());
+ LearnFromNavigation(referring_url.GetWithEmptyPath(),
+ request->url().GetWithEmptyPath());
}
+ bool is_frame = 0 != (request->load_flags() & (net::LOAD_SUB_FRAME |
+ net::LOAD_MAIN_FRAME));
// Now we use previous learning and setup for our subresources.
- if (request->was_fetched_via_proxy())
- return NULL;
- // TODO(jar): Only call if we believe this is a frame, and might have
- // subresources. We could "guess" by looking at path extensions (such as
- // foo.jpg or goo.gif etc.), but better would be to get this info from webkit
- // and have it add the info to the request (we currently only set the
- // priority, but we could record whether it was a frame).
- PredictFrameSubresources(request->url().GetWithEmptyPath());
+ if (is_frame && !request->was_fetched_via_proxy())
+ PredictFrameSubresources(request->url().GetWithEmptyPath());
return NULL;
}
« no previous file with comments | « chrome/browser/io_thread.cc ('k') | chrome/browser/net/preconnect.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698