| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "chrome/browser/android/download/download_controller.h" | 5 #include "chrome/browser/android/download/download_controller.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/android/jni_android.h" | 10 #include "base/android/jni_android.h" |
| (...skipping 12 matching lines...) Expand all Loading... |
| 23 #include "chrome/grit/chromium_strings.h" | 23 #include "chrome/grit/chromium_strings.h" |
| 24 #include "content/public/browser/browser_context.h" | 24 #include "content/public/browser/browser_context.h" |
| 25 #include "content/public/browser/browser_thread.h" | 25 #include "content/public/browser/browser_thread.h" |
| 26 #include "content/public/browser/download_manager.h" | 26 #include "content/public/browser/download_manager.h" |
| 27 #include "content/public/browser/download_url_parameters.h" | 27 #include "content/public/browser/download_url_parameters.h" |
| 28 #include "content/public/browser/render_process_host.h" | 28 #include "content/public/browser/render_process_host.h" |
| 29 #include "content/public/browser/render_view_host.h" | 29 #include "content/public/browser/render_view_host.h" |
| 30 #include "content/public/common/referrer.h" | 30 #include "content/public/common/referrer.h" |
| 31 #include "jni/DownloadController_jni.h" | 31 #include "jni/DownloadController_jni.h" |
| 32 #include "net/base/filename_util.h" | 32 #include "net/base/filename_util.h" |
| 33 #include "net/traffic_annotation/network_traffic_annotation.h" |
| 33 #include "ui/android/view_android.h" | 34 #include "ui/android/view_android.h" |
| 34 #include "ui/android/window_android.h" | 35 #include "ui/android/window_android.h" |
| 35 #include "ui/base/page_transition_types.h" | 36 #include "ui/base/page_transition_types.h" |
| 36 | 37 |
| 37 using base::android::ConvertUTF8ToJavaString; | 38 using base::android::ConvertUTF8ToJavaString; |
| 38 using base::android::JavaParamRef; | 39 using base::android::JavaParamRef; |
| 39 using base::android::ScopedJavaLocalRef; | 40 using base::android::ScopedJavaLocalRef; |
| 40 using content::BrowserContext; | 41 using content::BrowserContext; |
| 41 using content::BrowserThread; | 42 using content::BrowserThread; |
| 42 using content::ContextMenuParams; | 43 using content::ContextMenuParams; |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 84 dl_params->set_referrer(referrer); | 85 dl_params->set_referrer(referrer); |
| 85 if (is_link) | 86 if (is_link) |
| 86 dl_params->set_referrer_encoding(params.frame_charset); | 87 dl_params->set_referrer_encoding(params.frame_charset); |
| 87 net::HttpRequestHeaders headers; | 88 net::HttpRequestHeaders headers; |
| 88 headers.AddHeadersFromString(extra_headers); | 89 headers.AddHeadersFromString(extra_headers); |
| 89 for (net::HttpRequestHeaders::Iterator it(headers); it.GetNext();) | 90 for (net::HttpRequestHeaders::Iterator it(headers); it.GetNext();) |
| 90 dl_params->add_request_header(it.name(), it.value()); | 91 dl_params->add_request_header(it.name(), it.value()); |
| 91 if (!is_link && extra_headers.empty()) | 92 if (!is_link && extra_headers.empty()) |
| 92 dl_params->set_prefer_cache(true); | 93 dl_params->set_prefer_cache(true); |
| 93 dl_params->set_prompt(false); | 94 dl_params->set_prompt(false); |
| 94 dlm->DownloadUrl(std::move(dl_params)); | 95 dlm->DownloadUrl(std::move(dl_params), NO_TRAFFIC_ANNOTATION_YET); |
| 95 } | 96 } |
| 96 | 97 |
| 97 // Check if an interrupted download item can be auto resumed. | 98 // Check if an interrupted download item can be auto resumed. |
| 98 bool IsInterruptedDownloadAutoResumable(content::DownloadItem* download_item) { | 99 bool IsInterruptedDownloadAutoResumable(content::DownloadItem* download_item) { |
| 99 int interrupt_reason = download_item->GetLastReason(); | 100 int interrupt_reason = download_item->GetLastReason(); |
| 100 DCHECK_NE(interrupt_reason, content::DOWNLOAD_INTERRUPT_REASON_NONE); | 101 DCHECK_NE(interrupt_reason, content::DOWNLOAD_INTERRUPT_REASON_NONE); |
| 101 return | 102 return |
| 102 interrupt_reason == content::DOWNLOAD_INTERRUPT_REASON_NETWORK_TIMEOUT || | 103 interrupt_reason == content::DOWNLOAD_INTERRUPT_REASON_NETWORK_TIMEOUT || |
| 103 interrupt_reason == content::DOWNLOAD_INTERRUPT_REASON_NETWORK_FAILED || | 104 interrupt_reason == content::DOWNLOAD_INTERRUPT_REASON_NETWORK_FAILED || |
| 104 interrupt_reason == | 105 interrupt_reason == |
| (...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 361 int routing_id = web_contents->GetRenderViewHost()->GetRoutingID(); | 362 int routing_id = web_contents->GetRenderViewHost()->GetRoutingID(); |
| 362 | 363 |
| 363 const content::ResourceRequestInfo::WebContentsGetter& wc_getter( | 364 const content::ResourceRequestInfo::WebContentsGetter& wc_getter( |
| 364 base::Bind(&GetWebContents, process_id, routing_id)); | 365 base::Bind(&GetWebContents, process_id, routing_id)); |
| 365 | 366 |
| 366 AcquireFileAccessPermission( | 367 AcquireFileAccessPermission( |
| 367 wc_getter, base::Bind(&CreateContextMenuDownload, wc_getter, params, | 368 wc_getter, base::Bind(&CreateContextMenuDownload, wc_getter, params, |
| 368 is_link, extra_headers)); | 369 is_link, extra_headers)); |
| 369 } | 370 } |
| 370 | 371 |
| OLD | NEW |