diff options
author | tommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-07 02:35:04 +0000 |
---|---|---|
committer | tommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-07 02:35:04 +0000 |
commit | fc6fb7fbf9aca6b58f8c99a08a6c376b95bbc1a3 (patch) | |
tree | ca9186ed7ddbeb19604b495430d9c9814df57471 /chrome/browser/download | |
parent | cfc076ec466fc48e91c309448c4e5be3467b42c7 (diff) | |
download | chromium_src-fc6fb7fbf9aca6b58f8c99a08a6c376b95bbc1a3.zip chromium_src-fc6fb7fbf9aca6b58f8c99a08a6c376b95bbc1a3.tar.gz chromium_src-fc6fb7fbf9aca6b58f8c99a08a6c376b95bbc1a3.tar.bz2 |
Basic wiring to enable downloads for CF's host browser network stack. A notable change here is that url automation job id's no longer exist and instead a request id is used. There's a 1 to 1 relation between a job and a request so this is more convenient.
Review URL: http://codereview.chromium.org/355036
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31363 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/download')
-rw-r--r-- | chrome/browser/download/download_request_manager.cc | 8 | ||||
-rw-r--r-- | chrome/browser/download/download_request_manager.h | 1 | ||||
-rw-r--r-- | chrome/browser/download/download_request_manager_unittest.cc | 4 |
3 files changed, 13 insertions, 0 deletions
diff --git a/chrome/browser/download/download_request_manager.cc b/chrome/browser/download/download_request_manager.cc index bcb4214..8cb21c9 100644 --- a/chrome/browser/download/download_request_manager.cc +++ b/chrome/browser/download/download_request_manager.cc @@ -227,6 +227,14 @@ void DownloadRequestManager::CanDownload(int render_process_host_id, void DownloadRequestManager::CanDownloadImpl( TabContents* originating_tab, Callback* callback) { + // FYI: Chrome Frame overrides CanDownload in ExternalTabContainer in order + // to cancel the download operation in chrome and let the host browser + // take care of it. + if (!originating_tab->CanDownload(callback->GetRequestId())) { + ScheduleNotification(callback, false); + return; + } + // If the tab requesting the download is a constrained popup that is not // shown, treat the request as if it came from the parent. TabContents* effective_tab = originating_tab; diff --git a/chrome/browser/download/download_request_manager.h b/chrome/browser/download/download_request_manager.h index 2b03572..c8d4a34 100644 --- a/chrome/browser/download/download_request_manager.h +++ b/chrome/browser/download/download_request_manager.h @@ -56,6 +56,7 @@ class DownloadRequestManager : public: virtual void ContinueDownload() = 0; virtual void CancelDownload() = 0; + virtual int GetRequestId() = 0; }; // TabDownloadState maintains the download state for a particular tab. diff --git a/chrome/browser/download/download_request_manager_unittest.cc b/chrome/browser/download/download_request_manager_unittest.cc index c55bea4..bd52631 100644 --- a/chrome/browser/download/download_request_manager_unittest.cc +++ b/chrome/browser/download/download_request_manager_unittest.cc @@ -39,6 +39,10 @@ class DownloadRequestManagerTest cancel_count_++; } + virtual int GetRequestId() { + return -1; + } + void CanDownload() { download_request_manager_->CanDownloadImpl( controller().tab_contents(), this); |