Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(368)

Side by Side Diff: chrome/browser/extensions/file_manager_util.cc

Issue 8574054: Replace FileManagerUtil class with namespace file_manager_util. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: rebase Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/extensions/file_manager_util.h ('k') | chrome/browser/platform_util_chromeos.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 #include "chrome/browser/extensions/file_manager_util.h" 4 #include "chrome/browser/extensions/file_manager_util.h"
5 5
6 #include "base/bind.h" 6 #include "base/bind.h"
7 #include "base/json/json_writer.h" 7 #include "base/json/json_writer.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/metrics/histogram.h" 9 #include "base/metrics/histogram.h"
10 #include "base/path_service.h" 10 #include "base/path_service.h"
(...skipping 20 matching lines...) Expand all
31 31
32 #if defined(OS_CHROMEOS) 32 #if defined(OS_CHROMEOS)
33 #include "chrome/browser/chromeos/media/media_player.h" 33 #include "chrome/browser/chromeos/media/media_player.h"
34 #endif 34 #endif
35 35
36 using content::BrowserThread; 36 using content::BrowserThread;
37 37
38 #define FILEBROWSER_DOMAIN "hhaomjibdihmijegdhdafkllkbggdgoj" 38 #define FILEBROWSER_DOMAIN "hhaomjibdihmijegdhdafkllkbggdgoj"
39 const char kFileBrowserDomain[] = FILEBROWSER_DOMAIN; 39 const char kFileBrowserDomain[] = FILEBROWSER_DOMAIN;
40 40
41 namespace file_manager_util {
41 namespace { 42 namespace {
42 43
43 #define FILEBROWSER_URL(PATH) \ 44 #define FILEBROWSER_URL(PATH) \
44 ("chrome-extension://" FILEBROWSER_DOMAIN "/" PATH) 45 ("chrome-extension://" FILEBROWSER_DOMAIN "/" PATH)
45 // This is the "well known" url for the file manager extension from 46 // This is the "well known" url for the file manager extension from
46 // browser/resources/file_manager. In the future we may provide a way to swap 47 // browser/resources/file_manager. In the future we may provide a way to swap
47 // out this file manager for an aftermarket part, but not yet. 48 // out this file manager for an aftermarket part, but not yet.
48 const char kFileBrowserExtensionUrl[] = FILEBROWSER_URL(""); 49 const char kFileBrowserExtensionUrl[] = FILEBROWSER_URL("");
49 const char kBaseFileBrowserUrl[] = FILEBROWSER_URL("main.html"); 50 const char kBaseFileBrowserUrl[] = FILEBROWSER_URL("main.html");
50 const char kMediaPlayerUrl[] = FILEBROWSER_URL("mediaplayer.html"); 51 const char kMediaPlayerUrl[] = FILEBROWSER_URL("mediaplayer.html");
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 const char** array, 129 const char** array,
129 size_t array_size) { 130 size_t array_size) {
130 for (size_t i = 0; i < array_size; i++) { 131 for (size_t i = 0; i < array_size; i++) {
131 if (base::strcasecmp(ext, array[i]) == 0) { 132 if (base::strcasecmp(ext, array[i]) == 0) {
132 return i; 133 return i;
133 } 134 }
134 } 135 }
135 return 0; 136 return 0;
136 } 137 }
137 138
139 // Convert numeric dialog type to a string.
140 std::string GetDialogTypeAsString(
141 SelectFileDialog::Type dialog_type) {
142 std::string type_str;
143 switch (dialog_type) {
144 case SelectFileDialog::SELECT_NONE:
145 type_str = "full-page";
146 break;
147
148 case SelectFileDialog::SELECT_FOLDER:
149 type_str = "folder";
150 break;
151
152 case SelectFileDialog::SELECT_SAVEAS_FILE:
153 type_str = "saveas-file";
154 break;
155
156 case SelectFileDialog::SELECT_OPEN_FILE:
157 type_str = "open-file";
158 break;
159
160 case SelectFileDialog::SELECT_OPEN_MULTI_FILE:
161 type_str = "open-multi-file";
162 break;
163
164 default:
165 NOTREACHED();
166 }
167
168 return type_str;
169 }
170
138 } // namespace 171 } // namespace
139 172
140 // static 173 GURL GetFileBrowserExtensionUrl() {
141 GURL FileManagerUtil::GetFileBrowserExtensionUrl() {
142 return GURL(kFileBrowserExtensionUrl); 174 return GURL(kFileBrowserExtensionUrl);
143 } 175 }
144 176
145 // static 177 GURL GetFileBrowserUrl() {
146 GURL FileManagerUtil::GetFileBrowserUrl() {
147 return GURL(kBaseFileBrowserUrl); 178 return GURL(kBaseFileBrowserUrl);
148 } 179 }
149 180
150 // static 181 GURL GetMediaPlayerUrl() {
151 GURL FileManagerUtil::GetMediaPlayerUrl() {
152 return GURL(kMediaPlayerUrl); 182 return GURL(kMediaPlayerUrl);
153 } 183 }
154 184
155 // static 185 GURL GetMediaPlayerPlaylistUrl() {
156 GURL FileManagerUtil::GetMediaPlayerPlaylistUrl() {
157 return GURL(kMediaPlayerPlaylistUrl); 186 return GURL(kMediaPlayerPlaylistUrl);
158 } 187 }
159 188
160 // static 189 bool ConvertFileToFileSystemUrl(
161 bool FileManagerUtil::ConvertFileToFileSystemUrl(
162 Profile* profile, const FilePath& full_file_path, const GURL& origin_url, 190 Profile* profile, const FilePath& full_file_path, const GURL& origin_url,
163 GURL* url) { 191 GURL* url) {
164 FilePath virtual_path; 192 FilePath virtual_path;
165 if (!ConvertFileToRelativeFileSystemPath(profile, full_file_path, 193 if (!ConvertFileToRelativeFileSystemPath(profile, full_file_path,
166 &virtual_path)) { 194 &virtual_path)) {
167 return false; 195 return false;
168 } 196 }
169 197
170 GURL base_url = fileapi::GetFileSystemRootURI(origin_url, 198 GURL base_url = fileapi::GetFileSystemRootURI(origin_url,
171 fileapi::kFileSystemTypeExternal); 199 fileapi::kFileSystemTypeExternal);
172 *url = GURL(base_url.spec() + virtual_path.value()); 200 *url = GURL(base_url.spec() + virtual_path.value());
173 return true; 201 return true;
174 } 202 }
175 203
176 // static 204 bool ConvertFileToRelativeFileSystemPath(
177 bool FileManagerUtil::ConvertFileToRelativeFileSystemPath(
178 Profile* profile, const FilePath& full_file_path, FilePath* virtual_path) { 205 Profile* profile, const FilePath& full_file_path, FilePath* virtual_path) {
179 fileapi::FileSystemPathManager* path_manager = 206 fileapi::FileSystemPathManager* path_manager =
180 profile->GetFileSystemContext()->path_manager(); 207 profile->GetFileSystemContext()->path_manager();
181 fileapi::ExternalFileSystemMountPointProvider* provider = 208 fileapi::ExternalFileSystemMountPointProvider* provider =
182 path_manager->external_provider(); 209 path_manager->external_provider();
183 if (!provider) 210 if (!provider)
184 return false; 211 return false;
185 212
186 // Find if this file path is managed by the external provider. 213 // Find if this file path is managed by the external provider.
187 if (!provider->GetVirtualPath(full_file_path, virtual_path)) 214 if (!provider->GetVirtualPath(full_file_path, virtual_path))
188 return false; 215 return false;
189 216
190 return true; 217 return true;
191 } 218 }
192 219
193 // static 220 GURL GetFileBrowserUrlWithParams(
194 GURL FileManagerUtil::GetFileBrowserUrlWithParams(
195 SelectFileDialog::Type type, 221 SelectFileDialog::Type type,
196 const string16& title, 222 const string16& title,
197 const FilePath& default_virtual_path, 223 const FilePath& default_virtual_path,
198 const SelectFileDialog::FileTypeInfo* file_types, 224 const SelectFileDialog::FileTypeInfo* file_types,
199 int file_type_index, 225 int file_type_index,
200 const FilePath::StringType& default_extension) { 226 const FilePath::StringType& default_extension) {
201 DictionaryValue arg_value; 227 DictionaryValue arg_value;
202 arg_value.SetString("type", GetDialogTypeAsString(type)); 228 arg_value.SetString("type", GetDialogTypeAsString(type));
203 arg_value.SetString("title", title); 229 arg_value.SetString("title", title);
204 arg_value.SetString("defaultPath", default_virtual_path.value()); 230 arg_value.SetString("defaultPath", default_virtual_path.value());
(...skipping 22 matching lines...) Expand all
227 types_list->Set(i, dict); 253 types_list->Set(i, dict);
228 } 254 }
229 arg_value.Set("typeList", types_list); 255 arg_value.Set("typeList", types_list);
230 } 256 }
231 257
232 std::string json_args; 258 std::string json_args;
233 base::JSONWriter::Write(&arg_value, false, &json_args); 259 base::JSONWriter::Write(&arg_value, false, &json_args);
234 260
235 // kChromeUIFileManagerURL could not be used since query parameters are not 261 // kChromeUIFileManagerURL could not be used since query parameters are not
236 // supported for it. 262 // supported for it.
237 std::string url = FileManagerUtil::GetFileBrowserUrl().spec() + 263 std::string url = GetFileBrowserUrl().spec() +
238 '?' + net::EscapeUrlEncodedData(json_args, false); 264 '?' + net::EscapeUrlEncodedData(json_args, false);
239 return GURL(url); 265 return GURL(url);
240 } 266 }
241 267
242 // static 268 void ViewFolder(const FilePath& dir) {
243 void FileManagerUtil::ViewFolder(const FilePath& dir) {
244 Browser* browser = BrowserList::GetLastActive(); 269 Browser* browser = BrowserList::GetLastActive();
245 if (!browser) 270 if (!browser)
246 return; 271 return;
247 272
248 FilePath virtual_path; 273 FilePath virtual_path;
249 if (!FileManagerUtil::ConvertFileToRelativeFileSystemPath(browser->profile(), 274 if (!ConvertFileToRelativeFileSystemPath(browser->profile(), dir,
250 dir, 275 &virtual_path)) {
251 &virtual_path)) {
252 return; 276 return;
253 } 277 }
254 278
255 std::string url = chrome::kChromeUIFileManagerURL; 279 std::string url = chrome::kChromeUIFileManagerURL;
256 url += "#/" + net::EscapeUrlEncodedData(virtual_path.value(), false); 280 url += "#/" + net::EscapeUrlEncodedData(virtual_path.value(), false);
257 281
258 UserMetrics::RecordAction(UserMetricsAction("ShowFileBrowserFullTab")); 282 UserMetrics::RecordAction(UserMetricsAction("ShowFileBrowserFullTab"));
259 browser->ShowSingletonTabRespectRef(GURL(url)); 283 browser->ShowSingletonTabRespectRef(GURL(url));
260 } 284 }
261 285
262 // static 286 void ViewItem(const FilePath& full_path, bool enqueue) {
263 void FileManagerUtil::ViewItem(const FilePath& full_path, bool enqueue) {
264 if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) { 287 if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) {
265 bool result = BrowserThread::PostTask( 288 bool result = BrowserThread::PostTask(
266 BrowserThread::UI, FROM_HERE, 289 BrowserThread::UI, FROM_HERE,
267 base::Bind(&FileManagerUtil::ViewItem, full_path, enqueue)); 290 base::Bind(&ViewItem, full_path, enqueue));
268 DCHECK(result); 291 DCHECK(result);
269 return; 292 return;
270 } 293 }
271 294
272 // There is nothing we can do if the browser is not present. 295 // There is nothing we can do if the browser is not present.
273 Browser* browser = BrowserList::GetLastActive(); 296 Browser* browser = BrowserList::GetLastActive();
274 if (!browser) 297 if (!browser)
275 return; 298 return;
276 299
277 std::string ext = full_path.Extension(); 300 std::string ext = full_path.Extension();
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 337
315 browser::ShowErrorBox( 338 browser::ShowErrorBox(
316 browser->window()->GetNativeHandle(), 339 browser->window()->GetNativeHandle(),
317 l10n_util::GetStringFUTF16( 340 l10n_util::GetStringFUTF16(
318 IDS_FILEBROWSER_ERROR_VIEWING_FILE_TITLE, 341 IDS_FILEBROWSER_ERROR_VIEWING_FILE_TITLE,
319 UTF8ToUTF16(full_path.BaseName().value())), 342 UTF8ToUTF16(full_path.BaseName().value())),
320 l10n_util::GetStringUTF16( 343 l10n_util::GetStringUTF16(
321 IDS_FILEBROWSER_ERROR_VIEWING_FILE)); 344 IDS_FILEBROWSER_ERROR_VIEWING_FILE));
322 } 345 }
323 346
324 // static 347 } // namespace file_manager_util
325 std::string FileManagerUtil::GetDialogTypeAsString(
326 SelectFileDialog::Type dialog_type) {
327 std::string type_str;
328 switch (dialog_type) {
329 case SelectFileDialog::SELECT_NONE:
330 type_str = "full-page";
331 break;
332 348
333 case SelectFileDialog::SELECT_FOLDER:
334 type_str = "folder";
335 break;
336
337 case SelectFileDialog::SELECT_SAVEAS_FILE:
338 type_str = "saveas-file";
339 break;
340
341 case SelectFileDialog::SELECT_OPEN_FILE:
342 type_str = "open-file";
343 break;
344
345 case SelectFileDialog::SELECT_OPEN_MULTI_FILE:
346 type_str = "open-multi-file";
347 break;
348
349 default:
350 NOTREACHED();
351 }
352
353 return type_str;
354 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/file_manager_util.h ('k') | chrome/browser/platform_util_chromeos.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698