| 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 16 matching lines...) Expand all Loading... |
| 27 #include "chrome/browser/download/download_util.h" | 27 #include "chrome/browser/download/download_util.h" |
| 28 #include "chrome/browser/download/save_package_file_picker.h" | 28 #include "chrome/browser/download/save_package_file_picker.h" |
| 29 #include "chrome/browser/extensions/api/downloads/downloads_api.h" | 29 #include "chrome/browser/extensions/api/downloads/downloads_api.h" |
| 30 #include "chrome/browser/extensions/crx_installer.h" | 30 #include "chrome/browser/extensions/crx_installer.h" |
| 31 #include "chrome/browser/extensions/extension_service.h" | 31 #include "chrome/browser/extensions/extension_service.h" |
| 32 #include "chrome/browser/extensions/extension_system.h" | 32 #include "chrome/browser/extensions/extension_system.h" |
| 33 #include "chrome/browser/history/history_service.h" | 33 #include "chrome/browser/history/history_service.h" |
| 34 #include "chrome/browser/history/history_service_factory.h" | 34 #include "chrome/browser/history/history_service_factory.h" |
| 35 #include "chrome/browser/intents/web_intents_util.h" | 35 #include "chrome/browser/intents/web_intents_util.h" |
| 36 #include "chrome/browser/platform_util.h" | 36 #include "chrome/browser/platform_util.h" |
| 37 #include "chrome/browser/prefs/pref_registry_syncable.h" |
| 37 #include "chrome/browser/prefs/pref_service.h" | 38 #include "chrome/browser/prefs/pref_service.h" |
| 38 #include "chrome/browser/profiles/profile.h" | 39 #include "chrome/browser/profiles/profile.h" |
| 39 #include "chrome/browser/safe_browsing/safe_browsing_service.h" | 40 #include "chrome/browser/safe_browsing/safe_browsing_service.h" |
| 40 #include "chrome/browser/ui/browser.h" | 41 #include "chrome/browser/ui/browser.h" |
| 41 #include "chrome/browser/ui/host_desktop.h" | 42 #include "chrome/browser/ui/host_desktop.h" |
| 42 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 43 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| 43 #include "chrome/common/chrome_notification_types.h" | 44 #include "chrome/common/chrome_notification_types.h" |
| 44 #include "chrome/common/extensions/feature_switch.h" | 45 #include "chrome/common/extensions/feature_switch.h" |
| 45 #include "chrome/common/extensions/user_script.h" | 46 #include "chrome/common/extensions/user_script.h" |
| 46 #include "chrome/common/pref_names.h" | 47 #include "chrome/common/pref_names.h" |
| (...skipping 453 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 500 return false; | 501 return false; |
| 501 #endif | 502 #endif |
| 502 } | 503 } |
| 503 | 504 |
| 504 void ChromeDownloadManagerDelegate::GetSaveDir( | 505 void ChromeDownloadManagerDelegate::GetSaveDir( |
| 505 BrowserContext* browser_context, | 506 BrowserContext* browser_context, |
| 506 base::FilePath* website_save_dir, | 507 base::FilePath* website_save_dir, |
| 507 base::FilePath* download_save_dir, | 508 base::FilePath* download_save_dir, |
| 508 bool* skip_dir_check) { | 509 bool* skip_dir_check) { |
| 509 Profile* profile = Profile::FromBrowserContext(browser_context); | 510 Profile* profile = Profile::FromBrowserContext(browser_context); |
| 510 PrefServiceSyncable* prefs = profile->GetPrefs(); | 511 PrefService* prefs = profile->GetPrefs(); |
| 511 | 512 |
| 512 // Check whether the preference has the preferred directory for saving file. | 513 // Check whether the preference has the preferred directory for saving file. |
| 513 // If not, initialize it with default directory. | 514 // If not, initialize it with default directory. |
| 514 if (!prefs->FindPreference(prefs::kSaveFileDefaultDirectory)) { | 515 if (!prefs->FindPreference(prefs::kSaveFileDefaultDirectory)) { |
| 515 DCHECK(prefs->FindPreference(prefs::kDownloadDefaultDirectory)); | 516 DCHECK(prefs->FindPreference(prefs::kDownloadDefaultDirectory)); |
| 516 base::FilePath default_save_path = prefs->GetFilePath( | 517 base::FilePath default_save_path = prefs->GetFilePath( |
| 517 prefs::kDownloadDefaultDirectory); | 518 prefs::kDownloadDefaultDirectory); |
| 518 prefs->RegisterFilePathPref(prefs::kSaveFileDefaultDirectory, | 519 |
| 519 default_save_path, | 520 // TODO(joi): All registration should be done up front. |
| 520 PrefServiceSyncable::UNSYNCABLE_PREF); | 521 scoped_refptr<PrefRegistrySyncable> registry( |
| 522 static_cast<PrefRegistrySyncable*>(prefs->DeprecatedGetPrefRegistry())); |
| 523 registry->RegisterFilePathPref(prefs::kSaveFileDefaultDirectory, |
| 524 default_save_path, |
| 525 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 521 } | 526 } |
| 522 | 527 |
| 523 // Get the directory from preference. | 528 // Get the directory from preference. |
| 524 *website_save_dir = prefs->GetFilePath(prefs::kSaveFileDefaultDirectory); | 529 *website_save_dir = prefs->GetFilePath(prefs::kSaveFileDefaultDirectory); |
| 525 DCHECK(!website_save_dir->empty()); | 530 DCHECK(!website_save_dir->empty()); |
| 526 | 531 |
| 527 *download_save_dir = prefs->GetFilePath(prefs::kDownloadDefaultDirectory); | 532 *download_save_dir = prefs->GetFilePath(prefs::kDownloadDefaultDirectory); |
| 528 | 533 |
| 529 *skip_dir_check = false; | 534 *skip_dir_check = false; |
| 530 #if defined(OS_CHROMEOS) | 535 #if defined(OS_CHROMEOS) |
| (...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 926 // TODO(asanka): This logic is a hack. DownloadFilePicker should give us a | 931 // TODO(asanka): This logic is a hack. DownloadFilePicker should give us a |
| 927 // directory to persist. Or perhaps, if the Drive path | 932 // directory to persist. Or perhaps, if the Drive path |
| 928 // substitution logic is moved here, then we would have a | 933 // substitution logic is moved here, then we would have a |
| 929 // persistable path after the DownloadFilePicker is done. | 934 // persistable path after the DownloadFilePicker is done. |
| 930 if (disposition == DownloadItem::TARGET_DISPOSITION_PROMPT && | 935 if (disposition == DownloadItem::TARGET_DISPOSITION_PROMPT && |
| 931 !download->IsTemporary()) | 936 !download->IsTemporary()) |
| 932 last_download_path_ = target_path.DirName(); | 937 last_download_path_ = target_path.DirName(); |
| 933 } | 938 } |
| 934 callback.Run(target_path, disposition, danger_type, intermediate_path); | 939 callback.Run(target_path, disposition, danger_type, intermediate_path); |
| 935 } | 940 } |
| OLD | NEW |