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

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

Issue 12674003: Fix playing video files with hash in the filename in Files.app. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added some comments. Created 7 years, 9 months 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 | « no previous file | chrome/browser/resources/file_manager/js/util.js » ('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) 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 #include "chrome/browser/chromeos/extensions/file_manager_util.h" 4 #include "chrome/browser/chromeos/extensions/file_manager_util.h"
5 5
6 #include "ash/shell.h" 6 #include "ash/shell.h"
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/json/json_reader.h" 10 #include "base/json/json_reader.h"
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after
398 ExecuteHandler(profile, kFileBrowserDomain, action_id, url); 398 ExecuteHandler(profile, kFileBrowserDomain, action_id, url);
399 return; 399 return;
400 } 400 }
401 401
402 std::string url = chrome::kChromeUIFileManagerURL; 402 std::string url = chrome::kChromeUIFileManagerURL;
403 if (action_id.size()) { 403 if (action_id.size()) {
404 DictionaryValue arg_value; 404 DictionaryValue arg_value;
405 arg_value.SetString("action", action_id); 405 arg_value.SetString("action", action_id);
406 std::string query; 406 std::string query;
407 base::JSONWriter::Write(&arg_value, &query); 407 base::JSONWriter::Write(&arg_value, &query);
408 url += "?" + net::EscapeUrlEncodedData(query, false); 408 url += "?" +
409 net::EscapeUrlEncodedData(query,
410 false); // Space to %20 instead of +.
409 } 411 }
410 if (!path.empty()) { 412 if (!path.empty()) {
411 base::FilePath virtual_path; 413 base::FilePath virtual_path;
412 if (!ConvertFileToRelativeFileSystemPath(profile, kFileBrowserDomain, path, 414 if (!ConvertFileToRelativeFileSystemPath(profile, kFileBrowserDomain, path,
413 &virtual_path)) 415 &virtual_path))
414 return; 416 return;
415 url += "#/" + net::EscapeUrlEncodedData(virtual_path.value(), false); 417 url += "#/" +
yoshiki 2013/03/26 11:44:50 Should we use "#%2F" instead of "#/", because the
418 net::EscapeUrlEncodedData(virtual_path.value(),
419 false); // Space to %20 instead of +.
416 } 420 }
417 421
418 ExtensionService* service = 422 ExtensionService* service =
419 extensions::ExtensionSystem::Get(profile)->extension_service(); 423 extensions::ExtensionSystem::Get(profile)->extension_service();
420 if (!service) 424 if (!service)
421 return; 425 return;
422 426
423 const extensions::Extension* extension = 427 const extensions::Extension* extension =
424 service->GetExtensionById(kFileBrowserDomain, false); 428 service->GetExtensionById(kFileBrowserDomain, false);
425 if (!extension) 429 if (!extension)
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
610 GURL* url) { 614 GURL* url) {
611 GURL origin_url = Extension::GetBaseURLFromExtensionId(extension_id); 615 GURL origin_url = Extension::GetBaseURLFromExtensionId(extension_id);
612 base::FilePath virtual_path; 616 base::FilePath virtual_path;
613 if (!ConvertFileToRelativeFileSystemPath(profile, extension_id, 617 if (!ConvertFileToRelativeFileSystemPath(profile, extension_id,
614 full_file_path, &virtual_path)) { 618 full_file_path, &virtual_path)) {
615 return false; 619 return false;
616 } 620 }
617 621
618 GURL base_url = fileapi::GetFileSystemRootURI(origin_url, 622 GURL base_url = fileapi::GetFileSystemRootURI(origin_url,
619 fileapi::kFileSystemTypeExternal); 623 fileapi::kFileSystemTypeExternal);
620 *url = GURL(base_url.spec() + virtual_path.value()); 624 *url = GURL(base_url.spec() +
625 net::EscapeUrlEncodedData(virtual_path.value(),
626 false)); // Space to %20 instead of +.
621 return true; 627 return true;
622 } 628 }
623 629
624 bool ConvertFileToRelativeFileSystemPath( 630 bool ConvertFileToRelativeFileSystemPath(
625 Profile* profile, 631 Profile* profile,
626 const std::string& extension_id, 632 const std::string& extension_id,
627 const base::FilePath& full_file_path, 633 const base::FilePath& full_file_path,
628 base::FilePath* virtual_path) { 634 base::FilePath* virtual_path) {
629 ExtensionService* service = 635 ExtensionService* service =
630 extensions::ExtensionSystem::Get(profile)->extension_service(); 636 extensions::ExtensionSystem::Get(profile)->extension_service();
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
692 698
693 // Disable showing Drive unless it's specifically supported. 699 // Disable showing Drive unless it's specifically supported.
694 arg_value.SetBoolean("disableDrive", 700 arg_value.SetBoolean("disableDrive",
695 !file_types || !file_types->support_drive); 701 !file_types || !file_types->support_drive);
696 702
697 std::string json_args; 703 std::string json_args;
698 base::JSONWriter::Write(&arg_value, &json_args); 704 base::JSONWriter::Write(&arg_value, &json_args);
699 705
700 // kChromeUIFileManagerURL could not be used since query parameters are not 706 // kChromeUIFileManagerURL could not be used since query parameters are not
701 // supported for it. 707 // supported for it.
702 std::string url = GetFileBrowserUrl().spec() + 708 std::string url = GetFileBrowserUrl().spec() + '?' +
703 '?' + net::EscapeUrlEncodedData(json_args, false); 709 net::EscapeUrlEncodedData(json_args,
710 false); // Space to %20 instead of +.
704 return GURL(url); 711 return GURL(url);
705 } 712 }
706 713
707 string16 GetTitleFromType(ui::SelectFileDialog::Type dialog_type) { 714 string16 GetTitleFromType(ui::SelectFileDialog::Type dialog_type) {
708 string16 title; 715 string16 title;
709 switch (dialog_type) { 716 switch (dialog_type) {
710 case ui::SelectFileDialog::SELECT_NONE: 717 case ui::SelectFileDialog::SELECT_NONE:
711 // Full page file manager doesn't need a title. 718 // Full page file manager doesn't need a title.
712 break; 719 break;
713 720
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
767 // will have no title. 774 // will have no title.
768 const int kDialogHeight = 316 + 50; 775 const int kDialogHeight = 316 + 50;
769 776
770 Profile* profile = ProfileManager::GetDefaultProfileOrOffTheRecord(); 777 Profile* profile = ProfileManager::GetDefaultProfileOrOffTheRecord();
771 778
772 base::FilePath virtual_path; 779 base::FilePath virtual_path;
773 if (!ConvertFileToRelativeFileSystemPath(profile, kFileBrowserDomain, path, 780 if (!ConvertFileToRelativeFileSystemPath(profile, kFileBrowserDomain, path,
774 &virtual_path)) 781 &virtual_path))
775 return; 782 return;
776 std::string url = kActionChoiceUrl; 783 std::string url = kActionChoiceUrl;
777 url += "#/" + net::EscapeUrlEncodedData(virtual_path.value(), false); 784 url += "#/" + net::EscapeUrlEncodedData(virtual_path.value(),
yoshiki 2013/03/26 11:44:50 ditto
785 false); // Space to %20 instead of +.
778 GURL dialog_url(url); 786 GURL dialog_url(url);
779 787
780 const gfx::Size screen = ash::Shell::GetScreen()->GetPrimaryDisplay().size(); 788 const gfx::Size screen = ash::Shell::GetScreen()->GetPrimaryDisplay().size();
781 const gfx::Rect bounds((screen.width() - kDialogWidth) / 2, 789 const gfx::Rect bounds((screen.width() - kDialogWidth) / 2,
782 (screen.height() - kDialogHeight) / 2, 790 (screen.height() - kDialogHeight) / 2,
783 kDialogWidth, 791 kDialogWidth,
784 kDialogHeight); 792 kDialogHeight);
785 793
786 Browser* browser = GetBrowserForUrl(dialog_url); 794 Browser* browser = GetBrowserForUrl(dialog_url);
787 795
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
967 for (google_apis::OperationProgressStatusList::const_iterator iter = 975 for (google_apis::OperationProgressStatusList::const_iterator iter =
968 list.begin(); 976 list.begin();
969 iter != list.end(); ++iter) { 977 iter != list.end(); ++iter) {
970 result_list->Append( 978 result_list->Append(
971 ProgessStatusToDictionaryValue(profile, extension_id, *iter)); 979 ProgessStatusToDictionaryValue(profile, extension_id, *iter));
972 } 980 }
973 return result_list.release(); 981 return result_list.release();
974 } 982 }
975 983
976 } // namespace file_manager_util 984 } // namespace file_manager_util
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/resources/file_manager/js/util.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698