diff options
author | tommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-25 22:02:27 +0000 |
---|---|---|
committer | tommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-25 22:02:27 +0000 |
commit | 7ae80749da2e8caa8155984be0970ac20a42a04a (patch) | |
tree | 68aaa7a0af783451f54916bafe39734bbbe18d3e /chrome_frame/urlmon_url_request.h | |
parent | 3ca335b4eb7ecbe1fb2de5ecec2742e85d87d096 (diff) | |
download | chromium_src-7ae80749da2e8caa8155984be0970ac20a42a04a.zip chromium_src-7ae80749da2e8caa8155984be0970ac20a42a04a.tar.gz chromium_src-7ae80749da2e8caa8155984be0970ac20a42a04a.tar.bz2 |
Fix for a race issue when chrome decides that a request needs to be downloaded by the host browser.
Before the request could under some circumstances be terminated before we handed it over to the host for download.
In such cases we would just drop the request and not download anything.
TEST=Fixes flakyness of _some_ download scenarios. This is only a part of a fix needed for the related bug.
BUG=36694
Review URL: http://codereview.chromium.org/1240004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42673 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame/urlmon_url_request.h')
-rw-r--r-- | chrome_frame/urlmon_url_request.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/chrome_frame/urlmon_url_request.h b/chrome_frame/urlmon_url_request.h index 6ab6bcb..1a0fc5f 100644 --- a/chrome_frame/urlmon_url_request.h +++ b/chrome_frame/urlmon_url_request.h @@ -69,7 +69,6 @@ class UrlmonUrlRequestManager // Use cached data when Chrome request this url. // Used from ChromeActiveDocument's implementation of IPersistMoniker::Load(). void UseRequestDataForUrl(RequestData* data, const std::wstring& url); - void StealMonikerFromRequest(int request_id, IMoniker** moniker); // Returns a copy of the url privacy information for this instance. PrivacyInfo privacy_info() { @@ -102,15 +101,18 @@ class UrlmonUrlRequestManager // PluginUrlRequestManager implementation. virtual bool IsThreadSafe(); virtual void StartRequest(int request_id, - const IPC::AutomationURLRequest& request_info); + const IPC::AutomationURLRequest& request_info); virtual void ReadRequest(int request_id, int bytes_to_read); virtual void EndRequest(int request_id); + virtual void DownloadRequestInHost(int request_id); virtual void StopAll(); // PluginUrlRequestDelegate implementation virtual void OnResponseStarted(int request_id, const char* mime_type, - const char* headers, int size, base::Time last_modified, - const std::string& redirect_url, int redirect_status); + const char* headers, int size, + base::Time last_modified, + const std::string& redirect_url, + int redirect_status); virtual void OnReadComplete(int request_id, const void* buffer, int len); virtual void OnResponseEnd(int request_id, const URLRequestStatus& status); @@ -123,8 +125,6 @@ class UrlmonUrlRequestManager void ReadRequestWorker(int request_id, int bytes_to_read); void EndRequestWorker(int request_id); void StopAllWorker(); - void StealMonikerFromRequestWorker(int request_id, IMoniker** moniker, - base::WaitableEvent* done); // Map for (request_id <-> UrlmonUrlRequest) typedef std::map<int, scoped_refptr<UrlmonUrlRequest> > RequestMap; |