| 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 "chrome/browser/download/chrome_download_manager_delegate.h" | 5 #include "chrome/browser/download/chrome_download_manager_delegate.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
| (...skipping 24 matching lines...) Expand all Loading... |
| 35 #include "chrome/browser/platform_util.h" | 35 #include "chrome/browser/platform_util.h" |
| 36 #include "chrome/browser/profiles/profile.h" | 36 #include "chrome/browser/profiles/profile.h" |
| 37 #include "chrome/browser/safe_browsing/safe_browsing_service.h" | 37 #include "chrome/browser/safe_browsing/safe_browsing_service.h" |
| 38 #include "chrome/browser/ui/browser.h" | 38 #include "chrome/browser/ui/browser.h" |
| 39 #include "chrome/browser/ui/browser_finder.h" | 39 #include "chrome/browser/ui/browser_finder.h" |
| 40 #include "chrome/browser/ui/chrome_pages.h" | 40 #include "chrome/browser/ui/chrome_pages.h" |
| 41 #include "chrome/browser/ui/scoped_tabbed_browser_displayer.h" | 41 #include "chrome/browser/ui/scoped_tabbed_browser_displayer.h" |
| 42 #include "chrome/common/chrome_constants.h" | 42 #include "chrome/common/chrome_constants.h" |
| 43 #include "chrome/common/features.h" | 43 #include "chrome/common/features.h" |
| 44 #include "chrome/common/pref_names.h" | 44 #include "chrome/common/pref_names.h" |
| 45 #include "chrome/common/safe_browsing/file_type_policies.h" |
| 46 #include "chrome/grit/generated_resources.h" |
| 45 #include "components/pref_registry/pref_registry_syncable.h" | 47 #include "components/pref_registry/pref_registry_syncable.h" |
| 46 #include "components/prefs/pref_member.h" | 48 #include "components/prefs/pref_member.h" |
| 47 #include "components/prefs/pref_service.h" | 49 #include "components/prefs/pref_service.h" |
| 48 #include "content/public/browser/download_item.h" | 50 #include "content/public/browser/download_item.h" |
| 49 #include "content/public/browser/download_manager.h" | 51 #include "content/public/browser/download_manager.h" |
| 50 #include "content/public/browser/notification_source.h" | 52 #include "content/public/browser/notification_source.h" |
| 51 #include "content/public/browser/page_navigator.h" | 53 #include "content/public/browser/page_navigator.h" |
| 52 #include "net/base/filename_util.h" | 54 #include "net/base/filename_util.h" |
| 53 #include "net/base/mime_util.h" | 55 #include "net/base/mime_util.h" |
| 56 #include "ui/base/l10n/l10n_util.h" |
| 54 | 57 |
| 55 #if BUILDFLAG(ANDROID_JAVA_UI) | 58 #if BUILDFLAG(ANDROID_JAVA_UI) |
| 56 #include "chrome/browser/android/download/chrome_download_manager_overwrite_info
bar_delegate.h" | 59 #include "chrome/browser/android/download/chrome_download_manager_overwrite_info
bar_delegate.h" |
| 57 #include "chrome/browser/infobars/infobar_service.h" | 60 #include "chrome/browser/infobars/infobar_service.h" |
| 58 #endif | 61 #endif |
| 59 | 62 |
| 60 #if defined(OS_CHROMEOS) | 63 #if defined(OS_CHROMEOS) |
| 61 #include "chrome/browser/chromeos/drive/download_handler.h" | 64 #include "chrome/browser/chromeos/drive/download_handler.h" |
| 62 #include "chrome/browser/chromeos/drive/file_system_util.h" | 65 #include "chrome/browser/chromeos/drive/file_system_util.h" |
| 63 #endif | 66 #endif |
| (...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 425 // Deletes itself. | 428 // Deletes itself. |
| 426 new SavePackageFilePicker( | 429 new SavePackageFilePicker( |
| 427 web_contents, | 430 web_contents, |
| 428 suggested_path, | 431 suggested_path, |
| 429 default_extension, | 432 default_extension, |
| 430 can_save_as_complete, | 433 can_save_as_complete, |
| 431 download_prefs_.get(), | 434 download_prefs_.get(), |
| 432 callback); | 435 callback); |
| 433 } | 436 } |
| 434 | 437 |
| 438 void ChromeDownloadManagerDelegate::SanitizeSavePackageResourceName( |
| 439 base::FilePath* filename) { |
| 440 safe_browsing::FileTypePolicies* file_type_policies = |
| 441 safe_browsing::FileTypePolicies::GetInstance(); |
| 442 |
| 443 if (file_type_policies->GetFileDangerLevel(*filename) == |
| 444 safe_browsing::DownloadFileType::NOT_DANGEROUS) |
| 445 return; |
| 446 |
| 447 base::FilePath default_filename = base::FilePath::FromUTF8Unsafe( |
| 448 l10n_util::GetStringUTF8(IDS_DEFAULT_DOWNLOAD_FILENAME)); |
| 449 *filename = filename->AddExtension(default_filename.BaseName().value()); |
| 450 } |
| 451 |
| 435 void ChromeDownloadManagerDelegate::OpenDownloadUsingPlatformHandler( | 452 void ChromeDownloadManagerDelegate::OpenDownloadUsingPlatformHandler( |
| 436 DownloadItem* download) { | 453 DownloadItem* download) { |
| 437 base::FilePath platform_path( | 454 base::FilePath platform_path( |
| 438 GetPlatformDownloadPath(profile_, download, PLATFORM_TARGET_PATH)); | 455 GetPlatformDownloadPath(profile_, download, PLATFORM_TARGET_PATH)); |
| 439 DCHECK(!platform_path.empty()); | 456 DCHECK(!platform_path.empty()); |
| 440 platform_util::OpenItem(profile_, platform_path, platform_util::OPEN_FILE, | 457 platform_util::OpenItem(profile_, platform_path, platform_util::OPEN_FILE, |
| 441 platform_util::OpenOperationCallback()); | 458 platform_util::OpenOperationCallback()); |
| 442 } | 459 } |
| 443 | 460 |
| 444 void ChromeDownloadManagerDelegate::OpenDownload(DownloadItem* download) { | 461 void ChromeDownloadManagerDelegate::OpenDownload(DownloadItem* download) { |
| (...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 772 path.MatchesExtension(FILE_PATH_LITERAL(".xht")) || | 789 path.MatchesExtension(FILE_PATH_LITERAL(".xht")) || |
| 773 path.MatchesExtension(FILE_PATH_LITERAL(".xhtm")) || | 790 path.MatchesExtension(FILE_PATH_LITERAL(".xhtm")) || |
| 774 path.MatchesExtension(FILE_PATH_LITERAL(".xhtml")) || | 791 path.MatchesExtension(FILE_PATH_LITERAL(".xhtml")) || |
| 775 path.MatchesExtension(FILE_PATH_LITERAL(".xsl")) || | 792 path.MatchesExtension(FILE_PATH_LITERAL(".xsl")) || |
| 776 path.MatchesExtension(FILE_PATH_LITERAL(".xslt"))) { | 793 path.MatchesExtension(FILE_PATH_LITERAL(".xslt"))) { |
| 777 return true; | 794 return true; |
| 778 } | 795 } |
| 779 #endif | 796 #endif |
| 780 return false; | 797 return false; |
| 781 } | 798 } |
| OLD | NEW |