| Index: content/browser/renderer_host/resource_dispatcher_host.cc
|
| diff --git a/content/browser/renderer_host/resource_dispatcher_host.cc b/content/browser/renderer_host/resource_dispatcher_host.cc
|
| index c32d8b907695b8f02805d9dcebd470ebdca10201..4b30e972daabf7e3ea17fd134362d4ca62237e00 100644
|
| --- a/content/browser/renderer_host/resource_dispatcher_host.cc
|
| +++ b/content/browser/renderer_host/resource_dispatcher_host.cc
|
| @@ -411,9 +411,10 @@ void ResourceDispatcherHost::BeginRequest(
|
| if (prerender::PrerenderManager::IsPrerenderingPossible()) {
|
| BrowserThread::PostTask(
|
| BrowserThread::UI, FROM_HERE,
|
| - NewRunnableFunction(prerender::HandlePrefetchTagOnUIThread,
|
| + NewRunnableFunction(prerender::HandlePrefetchTag,
|
| resource_context.prerender_manager(),
|
| - std::make_pair(child_id, route_id),
|
| + child_id,
|
| + route_id,
|
| request_data.url,
|
| referrer,
|
| is_prerendering));
|
| @@ -423,6 +424,20 @@ void ResourceDispatcherHost::BeginRequest(
|
| // Otherwise, treat like a normal request, and fall-through.
|
| }
|
|
|
| + // Abort any prerenders that spawn requests that use invalid HTTP methods.
|
| + if (is_prerendering &&
|
| + !prerender::PrerenderManager::IsValidHttpMethod(request_data.method)) {
|
| + BrowserThread::PostTask(
|
| + BrowserThread::UI, FROM_HERE,
|
| + NewRunnableFunction(
|
| + prerender::DestroyPreloadForRenderView,
|
| + resource_context.prerender_manager(),
|
| + child_id,
|
| + route_id,
|
| + prerender::FINAL_STATUS_INVALID_HTTP_METHOD));
|
| + AbortRequestBeforeItStarts(filter_, sync_result, route_id, request_id);
|
| + return;
|
| + }
|
|
|
| // Construct the event handler.
|
| scoped_refptr<ResourceHandler> handler;
|
|
|