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

Unified Diff: content/browser/android/download_controller_android_impl.cc

Issue 13859009: Adding a call to support download initiated context menu (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: addressing comments Created 7 years, 8 months 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: content/browser/android/download_controller_android_impl.cc
diff --git a/content/browser/android/download_controller_android_impl.cc b/content/browser/android/download_controller_android_impl.cc
index bd71d044c3fb1c6b659ffdc8372cc4f2d2a3594f..58bf16570667e098cc4d8088c2982298488b20b3 100644
--- a/content/browser/android/download_controller_android_impl.cc
+++ b/content/browser/android/download_controller_android_impl.cc
@@ -11,14 +11,18 @@
#include "base/memory/scoped_ptr.h"
#include "content/browser/android/content_view_core_impl.h"
#include "content/browser/download/download_item_impl.h"
+#include "content/browser/download/download_manager_impl.h"
#include "content/browser/loader/resource_dispatcher_host_impl.h"
#include "content/browser/renderer_host/render_process_host_impl.h"
#include "content/browser/renderer_host/render_view_host_delegate.h"
#include "content/browser/renderer_host/render_view_host_impl.h"
#include "content/browser/web_contents/web_contents_impl.h"
+#include "content/public/browser/browser_context.h"
#include "content/public/browser/browser_thread.h"
+#include "content/public/browser/download_url_parameters.h"
#include "content/public/browser/global_request_id.h"
#include "content/public/browser/web_contents_view.h"
+#include "content/public/common/referrer.h"
#include "jni/DownloadController_jni.h"
#include "net/cookies/cookie_options.h"
#include "net/cookies/cookie_store.h"
@@ -222,7 +226,7 @@ void DownloadControllerAndroidImpl::StartAndroidDownload(
jcookie.obj(), jreferer.obj(), info.total_bytes);
}
-void DownloadControllerAndroidImpl::OnPostDownloadStarted(
+void DownloadControllerAndroidImpl::OnDownloadStarted(
DownloadItem* download_item) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
if (!download_item->GetWebContents())
@@ -239,7 +243,7 @@ void DownloadControllerAndroidImpl::OnPostDownloadStarted(
if (view.is_null())
return;
- Java_DownloadController_onHttpPostDownloadStarted(
+ Java_DownloadController_onDownloadStarted(
env, GetJavaObject()->Controller(env).obj(), view.obj());
}
@@ -271,7 +275,7 @@ void DownloadControllerAndroidImpl::OnDownloadUpdated(DownloadItem* item) {
return;
}
- Java_DownloadController_onHttpPostDownloadCompleted(env,
+ Java_DownloadController_onDownloadCompleted(env,
GetJavaObject()->Controller(env).obj(), view_core.obj(), jurl.obj(),
jcontent_disposition.obj(), jmime_type.obj(), jpath.obj(),
item->GetReceivedBytes(), true);
@@ -316,6 +320,25 @@ DownloadControllerAndroidImpl::JavaObject*
return java_object_;
}
+void DownloadControllerAndroidImpl::StartContextMenuDownload(
+ const ContextMenuParams& params, WebContents* web_contents, bool is_link) {
+ const GURL& url = is_link ? params.link_url : params.src_url;
+ const GURL& referrer = params.frame_url.is_empty() ?
+ params.page_url : params.frame_url;
+ DownloadManagerImpl* dlm = static_cast<DownloadManagerImpl*>(
+ BrowserContext::GetDownloadManager(web_contents->GetBrowserContext()));
+ scoped_ptr<DownloadUrlParameters> dl_params(
+ DownloadUrlParameters::FromWebContents(web_contents, url));
+ dl_params->set_referrer(
+ Referrer(referrer, params.referrer_policy));
+ if (is_link)
+ dl_params->set_referrer_encoding(params.frame_charset);
+ else
+ dl_params->set_prefer_cache(true);
+ dl_params->set_prompt(false);
+ dlm->DownloadUrl(dl_params.Pass());
+}
+
DownloadControllerAndroidImpl::DownloadInfoAndroid::DownloadInfoAndroid(
net::URLRequest* request) {
request->GetResponseHeaderByName("content-disposition", &content_disposition);

Powered by Google App Engine
This is Rietveld 408576698