| 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);
|
|
|