Index: chrome_frame/urlmon_url_request.cc |
=================================================================== |
--- chrome_frame/urlmon_url_request.cc (revision 72150) |
+++ chrome_frame/urlmon_url_request.cc (working copy) |
@@ -437,16 +437,13 @@ |
if (load_flags_ & net::LOAD_BYPASS_CACHE) |
*bind_flags |= BINDF_GETNEWESTVERSION; |
- bool upload_data = false; |
if (LowerCaseEqualsASCII(method(), "get")) { |
bind_info->dwBindVerb = BINDVERB_GET; |
} else if (LowerCaseEqualsASCII(method(), "post")) { |
bind_info->dwBindVerb = BINDVERB_POST; |
- upload_data = true; |
} else if (LowerCaseEqualsASCII(method(), "put")) { |
bind_info->dwBindVerb = BINDVERB_PUT; |
- upload_data = true; |
} else { |
std::wstring verb(ASCIIToWide(StringToUpperASCII(method()))); |
bind_info->dwBindVerb = BINDVERB_CUSTOM; |
@@ -455,12 +452,12 @@ |
lstrcpyW(bind_info->szCustomVerb, verb.c_str()); |
} |
- if (upload_data) { |
- // Bypass caching proxies on POSTs and PUTs and avoid writing responses to |
- // these requests to the browser's cache |
+ if (post_data_len()) { |
+ // Bypass caching proxies on upload requests and avoid writing responses to |
+ // the browser's cache. |
*bind_flags |= BINDF_GETNEWESTVERSION | BINDF_PRAGMA_NO_CACHE; |
- // Attempt to avoid storing the response for XHR request. |
+ // Attempt to avoid storing the response for upload requests. |
// See http://crbug.com/55918 |
if (resource_type_ != ResourceType::MAIN_FRAME) |
*bind_flags |= BINDF_NOWRITECACHE; |
@@ -468,8 +465,10 @@ |
// Initialize the STGMEDIUM. |
memset(&bind_info->stgmedData, 0, sizeof(STGMEDIUM)); |
bind_info->grfBindInfoF = 0; |
- bind_info->szCustomVerb = NULL; |
+ if (bind_info->dwBindVerb != BINDVERB_CUSTOM) |
+ bind_info->szCustomVerb = NULL; |
+ |
if (get_upload_data(&bind_info->stgmedData.pstm) == S_OK) { |
bind_info->stgmedData.tymed = TYMED_ISTREAM; |
DVLOG(1) << __FUNCTION__ << me() << method() |