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

Unified Diff: chrome/browser/extensions/file_manager_util.cc

Issue 7584004: Keeping the current directory in URL. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Small fixes. Created 9 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/file_manager_util.cc
diff --git a/chrome/browser/extensions/file_manager_util.cc b/chrome/browser/extensions/file_manager_util.cc
index 1f1ca619eaeab88e714b5dfdcc1df618384461ac..32a790e1f6a894c104b2454aba0e40e59010c25b 100644
--- a/chrome/browser/extensions/file_manager_util.cc
+++ b/chrome/browser/extensions/file_manager_util.cc
@@ -14,6 +14,7 @@
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_list.h"
+#include "chrome/common/url_constants.h"
#include "content/browser/browser_thread.h"
#include "content/browser/user_metrics.h"
#include "grit/generated_resources.h"
@@ -152,25 +153,65 @@ GURL FileManagerUtil::GetFileBrowserUrlWithParams(
const SelectFileDialog::FileTypeInfo* file_types,
int file_type_index,
const FilePath::StringType& default_extension) {
- std::string json = GetArgumentsJson(type, title, default_virtual_path,
- file_types, file_type_index,
- default_extension);
- return GURL(FileManagerUtil::GetFileBrowserUrl().spec() + "?" +
- EscapeUrlEncodedData(json, false));
+ DictionaryValue arg_value;
Vladislav Kaznacheev 2011/08/05 13:01:36 Any special reason to inline the helper function?
SeRya 2011/08/05 13:45:42 This function is not used anywhere else anymore an
+ arg_value.SetString("type", GetDialogTypeAsString(type));
+ arg_value.SetString("title", title);
+ arg_value.SetString("defaultPath", default_virtual_path.value());
+ arg_value.SetString("defaultExtension", default_extension);
+
+ if (file_types) {
+ ListValue* types_list = new ListValue();
+ for (size_t i = 0; i < file_types->extensions.size(); ++i) {
+ ListValue* extensions_list = new ListValue();
+ for (size_t j = 0; j < file_types->extensions[i].size(); ++j) {
+ extensions_list->Set(
+ i, Value::CreateStringValue(file_types->extensions[i][j]));
+ }
+
+ DictionaryValue* dict = new DictionaryValue();
+ dict->Set("extensions", extensions_list);
+
+ if (i < file_types->extension_description_overrides.size()) {
+ string16 desc = file_types->extension_description_overrides[i];
+ dict->SetString("description", desc);
+ }
+
+ dict->SetBoolean("selected",
+ (static_cast<size_t>(file_type_index) == i));
+
+ types_list->Set(i, dict);
+ }
+ arg_value.Set("typeList", types_list);
+ }
+
+ std::string json_args;
+ base::JSONWriter::Write(&arg_value, false, &json_args);
+
+ // kChromeUIFileManagerURL could not be used since query parameters are not
+ // supported for it.
+ std::string url = FileManagerUtil::GetFileBrowserUrl().spec() +
+ '?' + EscapeUrlEncodedData(json_args, false);
+ return GURL(url);
}
// static
void FileManagerUtil::ShowFullTabUrl(Profile*,
- const FilePath& default_path) {
- std::string json = GetArgumentsJson(SelectFileDialog::SELECT_NONE, string16(),
- default_path, NULL, 0, FilePath::StringType());
- GURL url(std::string(kBaseFileBrowserUrl) + "?" +
- EscapeUrlEncodedData(json, false));
+ const FilePath& dir) {
Browser* browser = BrowserList::GetLastActive();
if (!browser)
return;
+ FilePath virtual_path;
+ if (!FileManagerUtil::ConvertFileToRelativeFileSystemPath(browser->profile(),
+ dir,
+ &virtual_path)) {
+ return;
+ }
+
+ std::string url = chrome::kChromeUIFileManagerURL;
+ url += '#' + EscapeUrlEncodedData(virtual_path.value(), false);
+
UserMetrics::RecordAction(UserMetricsAction("ShowFileBrowserFullTab"));
browser->ShowSingletonTab(GURL(url));
}
@@ -227,53 +268,6 @@ void FileManagerUtil::ViewItem(const FilePath& full_path, bool enqueue) {
}
// static
-std::string FileManagerUtil::GetArgumentsJson(
- SelectFileDialog::Type type,
- const string16& title,
- const FilePath& default_virtual_path,
- const SelectFileDialog::FileTypeInfo* file_types,
- int file_type_index,
- const FilePath::StringType& default_extension) {
- DictionaryValue arg_value;
- arg_value.SetString("type", GetDialogTypeAsString(type));
- arg_value.SetString("title", title);
- // TODO(zelidrag): Convert local system path into virtual path for File API.
- arg_value.SetString("defaultPath", default_virtual_path.value());
- arg_value.SetString("defaultExtension", default_extension);
-
-
- if (file_types) {
- ListValue* types_list = new ListValue();
- for (size_t i = 0; i < file_types->extensions.size(); ++i) {
- ListValue* extensions_list = new ListValue();
- for (size_t j = 0; j < file_types->extensions[i].size(); ++j) {
- extensions_list->Set(
- i, Value::CreateStringValue(file_types->extensions[i][j]));
- }
-
- DictionaryValue* dict = new DictionaryValue();
- dict->Set("extensions", extensions_list);
-
- if (i < file_types->extension_description_overrides.size()) {
- string16 desc = file_types->extension_description_overrides[i];
- dict->SetString("description", desc);
- }
-
- dict->SetBoolean("selected",
- (static_cast<size_t>(file_type_index) == i));
-
- types_list->Set(i, dict);
- }
- arg_value.Set("typeList", types_list);
- }
-
- std::string rv;
- base::JSONWriter::Write(&arg_value, false, &rv);
-
- return rv;
-}
-
-// static
std::string FileManagerUtil::GetDialogTypeAsString(
SelectFileDialog::Type dialog_type) {
std::string type_str;

Powered by Google App Engine
This is Rietveld 408576698