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 d915806d302b3dcf87634bac2f52792debf74718..1d8c8df6e47769845d81d3feb757aac2efa0810e 100644 |
--- a/content/browser/renderer_host/resource_dispatcher_host.cc |
+++ b/content/browser/renderer_host/resource_dispatcher_host.cc |
@@ -894,7 +894,14 @@ net::Error ResourceDispatcherHost::BeginDownload( |
request->set_context(request_context); |
int extra_load_flags = net::LOAD_IS_DOWNLOAD; |
if (prefer_cache) { |
- extra_load_flags |= net::LOAD_PREFERRING_CACHE; |
+ // If there is upload data attached, only retrieve from cache because there |
+ // is no current mechanism to prompt the user for their consent for a |
+ // re-post. For GETs, try to retrieve data from the cache and skip |
+ // validating the entry if present. |
+ if (request->get_upload() != NULL) |
+ extra_load_flags |= net::LOAD_ONLY_FROM_CACHE; |
+ else |
+ extra_load_flags |= net::LOAD_PREFERRING_CACHE; |
} else { |
extra_load_flags |= net::LOAD_DISABLE_CACHE; |
} |