diff options
author | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-28 22:18:33 +0000 |
---|---|---|
committer | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-28 22:18:33 +0000 |
commit | f4fbae68a3fbdea8d14af164ddaa5986b4eefd6c (patch) | |
tree | f89c5ee0329d5ab17ad0281ff45589f4cb1e3940 /chrome_frame/urlmon_url_request.h | |
parent | 1d9104aa2450fd4dd21cfb2e1a73ddc0e0613f50 (diff) | |
download | chromium_src-f4fbae68a3fbdea8d14af164ddaa5986b4eefd6c.zip chromium_src-f4fbae68a3fbdea8d14af164ddaa5986b4eefd6c.tar.gz chromium_src-f4fbae68a3fbdea8d14af164ddaa5986b4eefd6c.tar.bz2 |
Download requests in ChromeFrame which occur in response to a POST request need to pass
the post data as well while reissuing the navigation. This ensures that a POST request is
correctly sent out at all times instead of a GET request. While the assumption is that reusing
the bind context would achieve this behavior, it does not appear to be true at all times.
While fixing this I also found that reissuing a navigation via a NavigateWithBindCtx call
causes the current chrome frame document to receive an Unload call at times, leading to
the page being rendered useless after the request finishes. We should reissue the navigation
on a new window to work around this problem.
Fixes bug http://code.google.com/p/chromium/issues/detail?id=73985
BUG=73985
TEST=As described in the bug.
Review URL: http://codereview.chromium.org/6598016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76282 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame/urlmon_url_request.h')
-rw-r--r-- | chrome_frame/urlmon_url_request.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/chrome_frame/urlmon_url_request.h b/chrome_frame/urlmon_url_request.h index b5b47e6..496c33d 100644 --- a/chrome_frame/urlmon_url_request.h +++ b/chrome_frame/urlmon_url_request.h @@ -106,7 +106,8 @@ class UrlmonUrlRequestManager // This method is passed as a callback to UrlmonUrlRequest::TerminateBind. // We simply forward moniker and bind_ctx to host ActiveX/ActiveDocument, // so it may start NavigateWithBindContext. - void BindTerminated(IMoniker* moniker, IBindCtx* bind_ctx); + void BindTerminated(IMoniker* moniker, IBindCtx* bind_ctx, + IStream* post_data, const char* request_headers); // Map for (request_id <-> UrlmonUrlRequest) typedef std::map<int, scoped_refptr<UrlmonUrlRequest> > RequestMap; |