summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome_frame/urlmon_url_request.cc15
1 files changed, 7 insertions, 8 deletions
diff --git a/chrome_frame/urlmon_url_request.cc b/chrome_frame/urlmon_url_request.cc
index ba9d8f7..acbb8a0 100644
--- a/chrome_frame/urlmon_url_request.cc
+++ b/chrome_frame/urlmon_url_request.cc
@@ -437,16 +437,13 @@ STDMETHODIMP UrlmonUrlRequest::GetBindInfo(DWORD* bind_flags,
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 @@ STDMETHODIMP UrlmonUrlRequest::GetBindInfo(DWORD* bind_flags,
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,7 +465,9 @@ STDMETHODIMP UrlmonUrlRequest::GetBindInfo(DWORD* bind_flags,
// 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;