summaryrefslogtreecommitdiffstats
path: root/src/core/download_manager_delegate_qt.cpp
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2019-01-16 17:30:56 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2019-01-21 10:06:01 +0000
commit0deb1ffda77f0410b3d13419856c757cdd422d2b (patch)
tree9206e32b8b23f7b8df827ec051182dbfc96d80af /src/core/download_manager_delegate_qt.cpp
parent3f7ea91e23d82e676aeaf157736e25cf54e5ec6b (diff)
Remove download items internally when API objects are deleted
We were never removing internal download item. [ChangeLog][Behavioral Changes] Deleting a download item will now also cancel it if it is still in progress. Change-Id: I2fab497d7acf7ca6ca17f4a61e106b1c18bfb333 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
Diffstat (limited to 'src/core/download_manager_delegate_qt.cpp')
-rw-r--r--src/core/download_manager_delegate_qt.cpp30
1 files changed, 20 insertions, 10 deletions
diff --git a/src/core/download_manager_delegate_qt.cpp b/src/core/download_manager_delegate_qt.cpp
index abf4a2a95..948a62047 100644
--- a/src/core/download_manager_delegate_qt.cpp
+++ b/src/core/download_manager_delegate_qt.cpp
@@ -82,35 +82,45 @@ void DownloadManagerDelegateQt::GetNextId(const content::DownloadIdCallback& cal
callback.Run(++m_currentId);
}
+download::DownloadItem *DownloadManagerDelegateQt::findDownloadById(quint32 downloadId)
+{
+ content::DownloadManager* dlm = content::BrowserContext::GetDownloadManager(m_profileAdapter->profile());
+ return dlm->GetDownload(downloadId);
+}
+
void DownloadManagerDelegateQt::cancelDownload(const content::DownloadTargetCallback& callback)
{
- callback.Run(base::FilePath(), download::DownloadItem::TARGET_DISPOSITION_PROMPT, download::DownloadDangerType::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT, base::FilePath(), download::DownloadInterruptReason::DOWNLOAD_INTERRUPT_REASON_USER_CANCELED);
+ callback.Run(base::FilePath(),
+ download::DownloadItem::TARGET_DISPOSITION_PROMPT,
+ download::DownloadDangerType::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT,
+ base::FilePath(),
+ download::DownloadInterruptReason::DOWNLOAD_INTERRUPT_REASON_USER_CANCELED);
}
void DownloadManagerDelegateQt::cancelDownload(quint32 downloadId)
{
- content::DownloadManager* dlm = content::BrowserContext::GetDownloadManager(m_profileAdapter->profile());
- download::DownloadItem *download = dlm->GetDownload(downloadId);
- if (download)
+ if (download::DownloadItem *download = findDownloadById(downloadId))
download->Cancel(/* user_cancel */ true);
}
void DownloadManagerDelegateQt::pauseDownload(quint32 downloadId)
{
- content::DownloadManager* dlm = content::BrowserContext::GetDownloadManager(m_profileAdapter->profile());
- download::DownloadItem *download = dlm->GetDownload(downloadId);
- if (download)
+ if (download::DownloadItem *download = findDownloadById(downloadId))
download->Pause();
}
void DownloadManagerDelegateQt::resumeDownload(quint32 downloadId)
{
- content::DownloadManager* dlm = content::BrowserContext::GetDownloadManager(m_profileAdapter->profile());
- download::DownloadItem *download = dlm->GetDownload(downloadId);
- if (download)
+ if (download::DownloadItem *download = findDownloadById(downloadId))
download->Resume();
}
+void DownloadManagerDelegateQt::removeDownload(quint32 downloadId)
+{
+ if (download::DownloadItem *download = findDownloadById(downloadId))
+ download->Remove();
+}
+
bool DownloadManagerDelegateQt::DetermineDownloadTarget(download::DownloadItem* item,
const content::DownloadTargetCallback& callback)
{