Index: chrome/browser/prerender/prerender_resource_throttle.cc |
diff --git a/chrome/browser/prerender/prerender_resource_throttle.cc b/chrome/browser/prerender/prerender_resource_throttle.cc |
index 200e2865557792db5a3c5c694c05a6bfac76474b..2ed43b81345901874916ed5fe529478dd48365f7 100644 |
--- a/chrome/browser/prerender/prerender_resource_throttle.cc |
+++ b/chrome/browser/prerender/prerender_resource_throttle.cc |
@@ -121,8 +121,13 @@ void PrerenderResourceThrottle::WillStartRequestOnUI( |
if (prerender_contents) { |
// Abort any prerenders that spawn requests that use unsupported HTTP |
// methods or schemes. |
- if (!PrerenderManager::IsValidHttpMethod(method)) { |
- prerender_contents->Destroy(FINAL_STATUS_INVALID_HTTP_METHOD); |
+ if (!prerender_contents->IsValidHttpMethod(method)) { |
+ // If the HTTP method is invalid, cancel the request, but don't cancel the |
+ // whole prefetch unless this is the main frame. |
mmenke
2016/09/21 16:56:20
Think this would be clearer if it said what we're
droger
2016/09/22 08:42:01
Done.
|
+ if (prerender_contents->prerender_mode() == FULL_PRERENDER || |
+ resource_type == content::RESOURCE_TYPE_MAIN_FRAME) { |
+ prerender_contents->Destroy(FINAL_STATUS_INVALID_HTTP_METHOD); |
+ } |
cancel = true; |
} else if (!PrerenderManager::DoesSubresourceURLHaveValidScheme(url)) { |
prerender_contents->Destroy(FINAL_STATUS_UNSUPPORTED_SCHEME); |