| OLD | NEW | 
|---|
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 // Download utility implementation | 5 // Download utility implementation | 
| 6 | 6 | 
| 7 #include "chrome/browser/download/download_util.h" | 7 #include "chrome/browser/download/download_util.h" | 
| 8 | 8 | 
| 9 #if defined(OS_WIN) | 9 #if defined(OS_WIN) | 
| 10 #include <shobjidl.h> | 10 #include <shobjidl.h> | 
| 11 #endif | 11 #endif | 
| 12 #include <string> | 12 #include <string> | 
| 13 | 13 | 
| 14 #include "app/l10n_util.h" | 14 #include "app/l10n_util.h" | 
| 15 #include "app/resource_bundle.h" | 15 #include "app/resource_bundle.h" | 
| 16 #include "base/file_util.h" | 16 #include "base/file_util.h" | 
| 17 #include "base/i18n/rtl.h" | 17 #include "base/i18n/rtl.h" | 
| 18 #include "base/i18n/time_formatting.h" | 18 #include "base/i18n/time_formatting.h" | 
|  | 19 #include "base/lazy_instance.h" | 
| 19 #include "base/path_service.h" | 20 #include "base/path_service.h" | 
| 20 #include "base/singleton.h" |  | 
| 21 #include "base/string16.h" | 21 #include "base/string16.h" | 
| 22 #include "base/string_number_conversions.h" | 22 #include "base/string_number_conversions.h" | 
| 23 #include "base/stringprintf.h" | 23 #include "base/stringprintf.h" | 
| 24 #include "base/sys_string_conversions.h" | 24 #include "base/sys_string_conversions.h" | 
| 25 #include "base/thread_restrictions.h" | 25 #include "base/thread_restrictions.h" | 
| 26 #include "base/utf_string_conversions.h" | 26 #include "base/utf_string_conversions.h" | 
| 27 #include "base/values.h" | 27 #include "base/values.h" | 
| 28 #include "base/win/windows_version.h" | 28 #include "base/win/windows_version.h" | 
| 29 #include "chrome/browser/browser_thread.h" | 29 #include "chrome/browser/browser_thread.h" | 
| 30 #include "chrome/browser/download/download_extensions.h" | 30 #include "chrome/browser/download/download_extensions.h" | 
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 101   DefaultDownloadDirectory() { | 101   DefaultDownloadDirectory() { | 
| 102     if (!PathService::Get(chrome::DIR_DEFAULT_DOWNLOADS, &path_)) { | 102     if (!PathService::Get(chrome::DIR_DEFAULT_DOWNLOADS, &path_)) { | 
| 103       NOTREACHED(); | 103       NOTREACHED(); | 
| 104     } | 104     } | 
| 105     if (DownloadPathIsDangerous(path_)) { | 105     if (DownloadPathIsDangerous(path_)) { | 
| 106       if (!PathService::Get(chrome::DIR_DEFAULT_DOWNLOADS_SAFE, &path_)) { | 106       if (!PathService::Get(chrome::DIR_DEFAULT_DOWNLOADS_SAFE, &path_)) { | 
| 107         NOTREACHED(); | 107         NOTREACHED(); | 
| 108       } | 108       } | 
| 109     } | 109     } | 
| 110   } | 110   } | 
| 111   friend struct DefaultSingletonTraits<DefaultDownloadDirectory>; | 111   friend struct base::DefaultLazyInstanceTraits<DefaultDownloadDirectory>; | 
| 112   FilePath path_; | 112   FilePath path_; | 
| 113 }; | 113 }; | 
| 114 | 114 | 
|  | 115 static base::LazyInstance<DefaultDownloadDirectory> | 
|  | 116     g_default_download_directory(base::LINKER_INITIALIZED); | 
|  | 117 | 
| 115 const FilePath& GetDefaultDownloadDirectory() { | 118 const FilePath& GetDefaultDownloadDirectory() { | 
| 116   return Singleton<DefaultDownloadDirectory>::get()->path(); | 119   return g_default_download_directory.Get().path(); | 
| 117 } | 120 } | 
| 118 | 121 | 
| 119 bool CreateTemporaryFileForDownload(FilePath* temp_file) { | 122 bool CreateTemporaryFileForDownload(FilePath* temp_file) { | 
| 120   if (file_util::CreateTemporaryFileInDir(GetDefaultDownloadDirectory(), | 123   if (file_util::CreateTemporaryFileInDir(GetDefaultDownloadDirectory(), | 
| 121                                           temp_file)) | 124                                           temp_file)) | 
| 122     return true; | 125     return true; | 
| 123   return file_util::CreateTemporaryFile(temp_file); | 126   return file_util::CreateTemporaryFile(temp_file); | 
| 124 } | 127 } | 
| 125 | 128 | 
| 126 bool DownloadPathIsDangerous(const FilePath& download_path) { | 129 bool DownloadPathIsDangerous(const FilePath& download_path) { | 
| (...skipping 606 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 733         !service->IsDownloadFromGallery(info->url, info->referrer_url)) { | 736         !service->IsDownloadFromGallery(info->url, info->referrer_url)) { | 
| 734       // Extensions that are not from the gallery are considered dangerous. | 737       // Extensions that are not from the gallery are considered dangerous. | 
| 735       return true; | 738       return true; | 
| 736     } | 739     } | 
| 737   } | 740   } | 
| 738 | 741 | 
| 739   return false; | 742   return false; | 
| 740 } | 743 } | 
| 741 | 744 | 
| 742 }  // namespace download_util | 745 }  // namespace download_util | 
| OLD | NEW | 
|---|