Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(557)

Unified Diff: chrome/browser/android/download/download_controller.cc

Issue 2528483003: [Android Downloads] Long-press menu item "Download Link" should delegate job to OfflinePages backen… (Closed)
Patch Set: removed unnecessary #include Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/android/download/download_controller.cc
diff --git a/chrome/browser/android/download/download_controller.cc b/chrome/browser/android/download/download_controller.cc
index b90f310a7ee54d36a469ac3fbdba5da41087979e..4e0a5edc7aff6462887ed0defcde78c086e45635 100644
--- a/chrome/browser/android/download/download_controller.cc
+++ b/chrome/browser/android/download/download_controller.cc
@@ -18,10 +18,12 @@
#include "chrome/browser/android/download/chrome_download_delegate.h"
#include "chrome/browser/android/download/dangerous_download_infobar_delegate.h"
#include "chrome/browser/android/download/download_manager_service.h"
+#include "chrome/browser/android/offline_pages/offline_page_utils.h"
#include "chrome/browser/infobars/infobar_service.h"
#include "chrome/browser/ui/android/view_android_helper.h"
#include "content/public/browser/browser_context.h"
#include "content/public/browser/browser_thread.h"
+#include "content/public/browser/download_interrupt_reasons.h"
#include "content/public/browser/download_manager.h"
#include "content/public/browser/download_url_parameters.h"
#include "content/public/browser/render_process_host.h"
@@ -57,6 +59,19 @@ WebContents* GetWebContents(int render_process_id, int render_view_id) {
return WebContents::FromRenderViewHost(render_view_host);
}
+void DownloadItemCreationCallback(
+ BrowserContext* context,
+ const GURL& url,
+ DownloadItem* item,
+ content::DownloadInterruptReason interrupt_reason) {
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ if (interrupt_reason !=
+ content::DOWNLOAD_INTERRUPT_REASON_PAGE_DOWNLOAD_HANDOFF) {
+ return;
+ }
+ offline_pages::OfflinePageUtils::CreateOfflinePageDownload(context, url);
+}
+
void CreateContextMenuDownload(int render_process_id,
int render_view_id,
const content::ContextMenuParams& params,
@@ -93,6 +108,9 @@ void CreateContextMenuDownload(int render_process_id,
if (!is_link && extra_headers.empty())
dl_params->set_prefer_cache(true);
dl_params->set_prompt(false);
+ dl_params->set_callback(base::Bind(DownloadItemCreationCallback,
+ web_contents->GetBrowserContext(),
+ dl_params->url()));
dlm->DownloadUrl(std::move(dl_params));
}

Powered by Google App Engine
This is Rietveld 408576698