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/download_prefs.h" | 5 #include "chrome/browser/download/download_prefs.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
152 | 152 |
153 prompt_for_download_.Init(prefs::kPromptForDownload, prefs); | 153 prompt_for_download_.Init(prefs::kPromptForDownload, prefs); |
154 download_path_.Init(prefs::kDownloadDefaultDirectory, prefs); | 154 download_path_.Init(prefs::kDownloadDefaultDirectory, prefs); |
155 save_file_path_.Init(prefs::kSaveFileDefaultDirectory, prefs); | 155 save_file_path_.Init(prefs::kSaveFileDefaultDirectory, prefs); |
156 save_file_type_.Init(prefs::kSaveFileType, prefs); | 156 save_file_type_.Init(prefs::kSaveFileType, prefs); |
157 | 157 |
158 // We store any file extension that should be opened automatically at | 158 // We store any file extension that should be opened automatically at |
159 // download completion in this pref. | 159 // download completion in this pref. |
160 std::string extensions_to_open = | 160 std::string extensions_to_open = |
161 prefs->GetString(prefs::kDownloadExtensionsToOpen); | 161 prefs->GetString(prefs::kDownloadExtensionsToOpen); |
162 std::vector<std::string> extensions; | |
163 base::SplitString(extensions_to_open, ':', &extensions); | |
164 | 162 |
165 for (const auto& extension_string : extensions) { | 163 for (const auto& extension_string : base::SplitString( |
| 164 extensions_to_open, ":", |
| 165 base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL)) { |
166 #if defined(OS_POSIX) | 166 #if defined(OS_POSIX) |
167 base::FilePath::StringType extension = extension_string; | 167 base::FilePath::StringType extension = extension_string; |
168 #elif defined(OS_WIN) | 168 #elif defined(OS_WIN) |
169 base::FilePath::StringType extension = base::UTF8ToWide(extension_string); | 169 base::FilePath::StringType extension = base::UTF8ToWide(extension_string); |
170 #endif | 170 #endif |
171 // If it's empty or malformed or not allowed to open automatically, then | 171 // If it's empty or malformed or not allowed to open automatically, then |
172 // skip the entry. Any such entries will be dropped from preferences the | 172 // skip the entry. Any such entries will be dropped from preferences the |
173 // next time SaveAutoOpenState() is called. | 173 // next time SaveAutoOpenState() is called. |
174 if (extension.empty() || | 174 if (extension.empty() || |
175 *extension.begin() == base::FilePath::kExtensionSeparator) | 175 *extension.begin() == base::FilePath::kExtensionSeparator) |
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
381 extensions.erase(extensions.size() - 1); | 381 extensions.erase(extensions.size() - 1); |
382 | 382 |
383 profile_->GetPrefs()->SetString(prefs::kDownloadExtensionsToOpen, extensions); | 383 profile_->GetPrefs()->SetString(prefs::kDownloadExtensionsToOpen, extensions); |
384 } | 384 } |
385 | 385 |
386 bool DownloadPrefs::AutoOpenCompareFunctor::operator()( | 386 bool DownloadPrefs::AutoOpenCompareFunctor::operator()( |
387 const base::FilePath::StringType& a, | 387 const base::FilePath::StringType& a, |
388 const base::FilePath::StringType& b) const { | 388 const base::FilePath::StringType& b) const { |
389 return base::FilePath::CompareLessIgnoreCase(a, b); | 389 return base::FilePath::CompareLessIgnoreCase(a, b); |
390 } | 390 } |
OLD | NEW |