Index: chrome/browser/renderer_host/resource_dispatcher_host.cc |
diff --git a/chrome/browser/renderer_host/resource_dispatcher_host.cc b/chrome/browser/renderer_host/resource_dispatcher_host.cc |
index 14489dea79ea78bdccf250d9930597bad98283aa..74fcc512194ea5e7f2c235c5b3bd43c7a0f078aa 100644 |
--- a/chrome/browser/renderer_host/resource_dispatcher_host.cc |
+++ b/chrome/browser/renderer_host/resource_dispatcher_host.cc |
@@ -31,6 +31,7 @@ |
#include "chrome/browser/net/chrome_url_request_context.h" |
#include "chrome/browser/net/url_request_tracking.h" |
#include "chrome/browser/plugin_service.h" |
+#include "chrome/browser/prerender/prerender_resource_handler.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/renderer_host/async_resource_handler.h" |
#include "chrome/browser/renderer_host/buffered_resource_handler.h" |
@@ -464,6 +465,15 @@ void ResourceDispatcherHost::BeginRequest( |
upload_size = request_data.upload_data->GetContentLength(); |
} |
+ // Install a PrerenderResourceHandler if the requested URL could |
+ // be prerendered. This should be in front of the [a]syncResourceHandler, |
+ // but after the BufferedResourceHandler since it depends on the MIME |
+ // sniffing capabilities in the BufferedResourceHandler. |
+ PrerenderResourceHandler* pre_handler = PrerenderResourceHandler::MaybeCreate( |
+ *request, context, handler); |
+ if (pre_handler) |
+ handler = pre_handler; |
+ |
// Install a CrossSiteResourceHandler if this request is coming from a |
// RenderViewHost with a pending cross-site request. We only check this for |
// MAIN_FRAME requests. Unblock requests only come from a blocked page, do |