Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/browser/android/download_controller_android_impl.h" | 5 #include "content/browser/android/download_controller_android_impl.h" |
| 6 | 6 |
| 7 #include "base/android/jni_android.h" | 7 #include "base/android/jni_android.h" |
| 8 #include "base/android/jni_string.h" | 8 #include "base/android/jni_string.h" |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 383 // if Java DownloadController is not instantiated already. | 383 // if Java DownloadController is not instantiated already. |
| 384 JNIEnv* env = base::android::AttachCurrentThread(); | 384 JNIEnv* env = base::android::AttachCurrentThread(); |
| 385 Java_DownloadController_getInstance(env); | 385 Java_DownloadController_getInstance(env); |
| 386 } | 386 } |
| 387 | 387 |
| 388 DCHECK(java_object_); | 388 DCHECK(java_object_); |
| 389 return java_object_; | 389 return java_object_; |
| 390 } | 390 } |
| 391 | 391 |
| 392 void DownloadControllerAndroidImpl::StartContextMenuDownload( | 392 void DownloadControllerAndroidImpl::StartContextMenuDownload( |
| 393 const ContextMenuParams& params, WebContents* web_contents, bool is_link) { | 393 const ContextMenuParams& params, WebContents* web_contents, bool is_link, |
| 394 const std::string& extra_headers) { | |
| 394 const GURL& url = is_link ? params.link_url : params.src_url; | 395 const GURL& url = is_link ? params.link_url : params.src_url; |
| 395 const GURL& referring_url = params.frame_url.is_empty() ? | 396 const GURL& referring_url = params.frame_url.is_empty() ? |
| 396 params.page_url : params.frame_url; | 397 params.page_url : params.frame_url; |
| 397 DownloadManagerImpl* dlm = static_cast<DownloadManagerImpl*>( | 398 DownloadManagerImpl* dlm = static_cast<DownloadManagerImpl*>( |
| 398 BrowserContext::GetDownloadManager(web_contents->GetBrowserContext())); | 399 BrowserContext::GetDownloadManager(web_contents->GetBrowserContext())); |
| 399 scoped_ptr<DownloadUrlParameters> dl_params( | 400 scoped_ptr<DownloadUrlParameters> dl_params( |
| 400 DownloadUrlParameters::FromWebContents(web_contents, url)); | 401 DownloadUrlParameters::FromWebContents(web_contents, url)); |
| 401 content::Referrer referrer = content::Referrer::SanitizeForRequest( | 402 content::Referrer referrer = content::Referrer::SanitizeForRequest( |
| 402 url, | 403 url, |
| 403 content::Referrer(referring_url.GetAsReferrer(), | 404 content::Referrer(referring_url.GetAsReferrer(), |
| 404 params.referrer_policy)); | 405 params.referrer_policy)); |
| 405 dl_params->set_referrer(referrer); | 406 dl_params->set_referrer(referrer); |
| 406 if (is_link) | 407 if (is_link) |
| 407 dl_params->set_referrer_encoding(params.frame_charset); | 408 dl_params->set_referrer_encoding(params.frame_charset); |
| 408 else | 409 net::HttpRequestHeaders headers; |
| 410 headers.AddHeadersFromString(extra_headers); | |
| 411 for (net::HttpRequestHeaders::Iterator it(headers); it.GetNext();) { | |
| 412 dl_params->add_request_header(it.name(), it.value()); | |
| 413 } | |
|
bengr
2015/06/23 04:19:35
You can remove the curly braces.
megjablon
2015/06/23 04:30:23
Done.
| |
| 414 if (!is_link && extra_headers.empty()) | |
| 409 dl_params->set_prefer_cache(true); | 415 dl_params->set_prefer_cache(true); |
| 410 dl_params->set_prompt(false); | 416 dl_params->set_prompt(false); |
| 411 dlm->DownloadUrl(dl_params.Pass()); | 417 dlm->DownloadUrl(dl_params.Pass()); |
| 412 } | 418 } |
| 413 | 419 |
| 414 void DownloadControllerAndroidImpl::DangerousDownloadValidated( | 420 void DownloadControllerAndroidImpl::DangerousDownloadValidated( |
| 415 WebContents* web_contents, int download_id, bool accept) { | 421 WebContents* web_contents, int download_id, bool accept) { |
| 416 if (!web_contents) | 422 if (!web_contents) |
| 417 return; | 423 return; |
| 418 DownloadManagerImpl* dlm = static_cast<DownloadManagerImpl*>( | 424 DownloadManagerImpl* dlm = static_cast<DownloadManagerImpl*>( |
| (...skipping 29 matching lines...) Expand all Loading... | |
| 448 | 454 |
| 449 const content::ResourceRequestInfo* info = | 455 const content::ResourceRequestInfo* info = |
| 450 content::ResourceRequestInfo::ForRequest(request); | 456 content::ResourceRequestInfo::ForRequest(request); |
| 451 if (info) | 457 if (info) |
| 452 has_user_gesture = info->HasUserGesture(); | 458 has_user_gesture = info->HasUserGesture(); |
| 453 } | 459 } |
| 454 | 460 |
| 455 DownloadControllerAndroidImpl::DownloadInfoAndroid::~DownloadInfoAndroid() {} | 461 DownloadControllerAndroidImpl::DownloadInfoAndroid::~DownloadInfoAndroid() {} |
| 456 | 462 |
| 457 } // namespace content | 463 } // namespace content |
| OLD | NEW |