summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
authormtomasz@chromium.org <mtomasz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-30 06:41:12 +0000
committermtomasz@chromium.org <mtomasz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-30 06:41:12 +0000
commit304db10e8d36aa505910810f60daf0179ee7bbf1 (patch)
treef813d45aab3f46b152907b7f5e912ff2f6ab4e5b /chrome/browser
parentae113f8339ed0559898ad1b26415add572740ceb (diff)
downloadchromium_src-304db10e8d36aa505910810f60daf0179ee7bbf1.zip
chromium_src-304db10e8d36aa505910810f60daf0179ee7bbf1.tar.gz
chromium_src-304db10e8d36aa505910810f60daf0179ee7bbf1.tar.bz2
Migrate fullPaths to URLs in appState.
This patch replaces currentDirectoryPath with currentDirectoryURL, and same for the selectionPath. As a result, the entire appState does not depend on paths anymore. TEST=browser_tests, also tested manually. BUG=333168 Review URL: https://codereview.chromium.org/132453007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247855 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r--chrome/browser/chromeos/file_manager/url_util.cc12
-rw-r--r--chrome/browser/chromeos/file_manager/url_util.h9
-rw-r--r--chrome/browser/chromeos/file_manager/url_util_unittest.cc22
-rw-r--r--chrome/browser/resources/file_manager/background/js/background.js30
-rw-r--r--chrome/browser/resources/file_manager/common/js/util.js19
-rw-r--r--chrome/browser/resources/file_manager/foreground/js/file_manager.js36
-rw-r--r--chrome/browser/resources/file_manager/foreground/js/file_manager_commands.js5
-rw-r--r--chrome/browser/resources/file_manager/foreground/js/photo/gallery.js9
-rw-r--r--chrome/browser/ui/views/select_file_dialog_extension.cc46
9 files changed, 88 insertions, 100 deletions
diff --git a/chrome/browser/chromeos/file_manager/url_util.cc b/chrome/browser/chromeos/file_manager/url_util.cc
index b670c96..d1a41b5 100644
--- a/chrome/browser/chromeos/file_manager/url_util.cc
+++ b/chrome/browser/chromeos/file_manager/url_util.cc
@@ -67,18 +67,18 @@ GURL GetFileManagerMainPageUrl() {
GURL GetFileManagerMainPageUrlWithParams(
ui::SelectFileDialog::Type type,
const base::string16& title,
- const base::FilePath& current_directory_virtual_path,
- const base::FilePath& selection_virtual_path,
+ const GURL& current_directory_url,
+ const GURL& selection_url,
+ const std::string& target_name,
const ui::SelectFileDialog::FileTypeInfo* file_types,
int file_type_index,
const base::FilePath::StringType& default_extension) {
base::DictionaryValue arg_value;
arg_value.SetString("type", GetDialogTypeAsString(type));
arg_value.SetString("title", title);
- arg_value.SetString(
- "currentDirectoryPath", current_directory_virtual_path.value());
- arg_value.SetString("selectionPath", selection_virtual_path.value());
- arg_value.SetString("targetName", selection_virtual_path.BaseName().value());
+ arg_value.SetString("currentDirectoryURL", current_directory_url.spec());
+ arg_value.SetString("selectionURL", selection_url.spec());
+ arg_value.SetString("targetName", target_name);
arg_value.SetString("defaultExtension", default_extension);
if (file_types) {
diff --git a/chrome/browser/chromeos/file_manager/url_util.h b/chrome/browser/chromeos/file_manager/url_util.h
index c1ab561..785183b 100644
--- a/chrome/browser/chromeos/file_manager/url_util.h
+++ b/chrome/browser/chromeos/file_manager/url_util.h
@@ -13,10 +13,6 @@
#include "ui/shell_dialogs/select_file_dialog.h"
#include "url/gurl.h"
-namespace base {
-class FilePath;
-}
-
namespace file_manager {
namespace util {
@@ -32,8 +28,9 @@ GURL GetFileManagerMainPageUrl();
GURL GetFileManagerMainPageUrlWithParams(
ui::SelectFileDialog::Type type,
const base::string16& title,
- const base::FilePath& current_directory_virtual_path,
- const base::FilePath& selection_virtual_path,
+ const GURL& current_directory_url,
+ const GURL& selection_url,
+ const std::string& target_name,
const ui::SelectFileDialog::FileTypeInfo* file_types,
int file_type_index,
const base::FilePath::StringType& default_extension);
diff --git a/chrome/browser/chromeos/file_manager/url_util_unittest.cc b/chrome/browser/chromeos/file_manager/url_util_unittest.cc
index cd24c18..20ad4ee 100644
--- a/chrome/browser/chromeos/file_manager/url_util_unittest.cc
+++ b/chrome/browser/chromeos/file_manager/url_util_unittest.cc
@@ -43,8 +43,9 @@ TEST(FileManagerUrlUtilTest, GetFileManagerMainPageUrlWithParams_NoFileTypes) {
const GURL url = GetFileManagerMainPageUrlWithParams(
ui::SelectFileDialog::SELECT_OPEN_FILE,
base::UTF8ToUTF16("some title"),
- base::FilePath::FromUTF8Unsafe("/Downloads"),
- base::FilePath::FromUTF8Unsafe("/Downloads/foo.txt"),
+ GURL("filesystem:chrome-extension://abc/Downloads/"),
+ GURL("filesystem:chrome-extension://abc/Downloads/foo.txt"),
+ "foo.txt",
NULL, // No file types
0, // Hence no file type index.
FILE_PATH_LITERAL("txt"));
@@ -56,9 +57,11 @@ TEST(FileManagerUrlUtilTest, GetFileManagerMainPageUrlWithParams_NoFileTypes) {
EXPECT_TRUE(url.query().find("%20") != std::string::npos);
// The escaped query is hard to read. Pretty print the escaped JSON.
EXPECT_EQ("{\n"
- " \"currentDirectoryPath\": \"/Downloads\",\n"
+ " \"currentDirectoryURL\": "
+ "\"filesystem:chrome-extension://abc/Downloads/\",\n"
" \"defaultExtension\": \"txt\",\n"
- " \"selectionPath\": \"/Downloads/foo.txt\",\n"
+ " \"selectionURL\": "
+ "\"filesystem:chrome-extension://abc/Downloads/foo.txt\",\n"
" \"shouldReturnLocalPath\": true,\n"
" \"targetName\": \"foo.txt\",\n"
" \"title\": \"some title\",\n"
@@ -88,8 +91,9 @@ TEST(FileManagerUrlUtilTest,
const GURL url = GetFileManagerMainPageUrlWithParams(
ui::SelectFileDialog::SELECT_OPEN_FILE,
base::UTF8ToUTF16("some title"),
- base::FilePath::FromUTF8Unsafe("/Downloads"),
- base::FilePath::FromUTF8Unsafe("/Downloads/foo.txt"),
+ GURL("filesystem:chrome-extension://abc/Downloads/"),
+ GURL("filesystem:chrome-extension://abc/Downloads/foo.txt"),
+ "foo.txt",
&file_types,
1, // The file type index is 1-based.
FILE_PATH_LITERAL("txt"));
@@ -101,10 +105,12 @@ TEST(FileManagerUrlUtilTest,
EXPECT_TRUE(url.query().find("%20") != std::string::npos);
// The escaped query is hard to read. Pretty print the escaped JSON.
EXPECT_EQ("{\n"
- " \"currentDirectoryPath\": \"/Downloads\",\n"
+ " \"currentDirectoryURL\": "
+ "\"filesystem:chrome-extension://abc/Downloads/\",\n"
" \"defaultExtension\": \"txt\",\n"
" \"includeAllFiles\": false,\n"
- " \"selectionPath\": \"/Downloads/foo.txt\",\n"
+ " \"selectionURL\": "
+ "\"filesystem:chrome-extension://abc/Downloads/foo.txt\",\n"
" \"shouldReturnLocalPath\": false,\n"
" \"targetName\": \"foo.txt\",\n"
" \"title\": \"some title\",\n"
diff --git a/chrome/browser/resources/file_manager/background/js/background.js b/chrome/browser/resources/file_manager/background/js/background.js
index 9783bad..0bad7770 100644
--- a/chrome/browser/resources/file_manager/background/js/background.js
+++ b/chrome/browser/resources/file_manager/background/js/background.js
@@ -518,7 +518,7 @@ function launchFileManager(opt_appState, opt_id, opt_type, opt_callback) {
// Wait until all windows are created.
background.queue.run(function(onTaskCompleted) {
- // Check if there is already a window with the same path. If so, then
+ // Check if there is already a window with the same URL. If so, then
// reuse it instead of opening a new one.
if (type == LaunchType.FOCUS_SAME_OR_CREATE ||
type == LaunchType.FOCUS_ANY_OR_CREATE) {
@@ -532,15 +532,15 @@ function launchFileManager(opt_appState, opt_id, opt_type, opt_callback) {
continue;
// Different current directories.
- if (opt_appState.currentDirectoryPath !==
- contentWindow.appState.currentDirectoryPath) {
+ if (opt_appState.currentDirectoryURL !==
+ contentWindow.appState.currentDirectoryURL) {
continue;
}
- // Selection path specified, and it is different.
- if (opt_appState.selectionPath &&
- opt_appState.selectionPath !==
- contentWindow.appState.selectionPath) {
+ // Selection URL specified, and it is different.
+ if (opt_appState.selectionURL &&
+ opt_appState.selectionURL !==
+ contentWindow.appState.selectionURL) {
continue;
}
@@ -669,9 +669,9 @@ Background.prototype.onExecute_ = function(action, details) {
},
// It is not allowed to call getParent() here, since there may be
// no permissions to access it at this stage. Therefore we are passing
- // the selectionPath only, and the currentDirectory will be resolved
+ // the selectionURL only, and the currentDirectory will be resolved
// later.
- selectionPath: details.entries[0].fullPath
+ selectionURL: details.entries[0].toURL()
};
// For mounted devices just focus any Files.app window. The mounted
// volume will appear on the navigation list.
@@ -798,15 +798,15 @@ Background.prototype.onRestarted_ = function() {
*/
Background.prototype.onContextMenuClicked_ = function(info) {
if (info.menuItemId == 'new-window') {
- // Find the focused window (if any) and use it's current path for the
- // new window. If not found, then launch with the default path.
+ // Find the focused window (if any) and use it's current url for the
+ // new window. If not found, then launch with the default url.
for (var key in background.appWindows) {
try {
if (background.appWindows[key].contentWindow.isFocused()) {
var appState = {
- // Do not clone the selection path, only the current directory.
- currentDirectoryPath: background.appWindows[key].contentWindow.
- appState.currentDirectoryPath
+ // Do not clone the selection url, only the current directory.
+ currentDirectoryURL: background.appWindows[key].contentWindow.
+ appState.currentDirectoryURL
};
launchFileManager(appState);
return;
@@ -817,7 +817,7 @@ Background.prototype.onContextMenuClicked_ = function(info) {
}
}
- // Launch with the default path.
+ // Launch with the default URL.
launchFileManager();
}
};
diff --git a/chrome/browser/resources/file_manager/common/js/util.js b/chrome/browser/resources/file_manager/common/js/util.js
index 8494abc..2fa30ec 100644
--- a/chrome/browser/resources/file_manager/common/js/util.js
+++ b/chrome/browser/resources/file_manager/common/js/util.js
@@ -684,23 +684,22 @@ util.createChild = function(parent, opt_className, opt_tag) {
/**
* Updates the app state.
- * TODO(mtomasz): Migrate to URLs.
*
- * @param {string} currentDirectoryPath Currently opened path. If null the path
- * is left unchanged.
- * @param {string} selectionPath Currently selected path. If null the path is
-* left unchanged.
+ * @param {string} currentDirectoryURL Currently opened directory as an URL.
+ * If null the value is left unchanged.
+ * @param {string} selectionURL Currently selected entry as an URL. If null the
+ * value is left unchanged.
* @param {string|Object=} opt_param Additional parameters, to be stored. If
* null, then left unchanged.
*/
-util.updateAppState = function(currentDirectoryPath, selectionPath, opt_param) {
+util.updateAppState = function(currentDirectoryURL, selectionURL, opt_param) {
window.appState = window.appState || {};
if (opt_param !== undefined && opt_param !== null)
window.appState.params = opt_param;
- if (currentDirectoryPath !== null)
- window.appState.currentDirectoryPath = currentDirectoryPath;
- if (selectionPath !== null)
- window.appState.selectionPath = selectionPath;
+ if (currentDirectoryURL !== null)
+ window.appState.currentDirectoryURL = currentDirectoryURL;
+ if (selectionURL !== null)
+ window.appState.selectionURL = selectionURL;
util.saveAppState();
};
diff --git a/chrome/browser/resources/file_manager/foreground/js/file_manager.js b/chrome/browser/resources/file_manager/foreground/js/file_manager.js
index e39955e..ec287d3 100644
--- a/chrome/browser/resources/file_manager/foreground/js/file_manager.js
+++ b/chrome/browser/resources/file_manager/foreground/js/file_manager.js
@@ -578,16 +578,16 @@ var BOTTOM_MARGIN_FOR_PREVIEW_PANEL_PX = 52;
// TODO(mtomasz): Unify window.appState with location.search format.
if (window.appState) {
this.params_ = window.appState.params || {};
- this.initCurrentDirectoryPath_ = window.appState.currentDirectoryPath;
- this.initSelectionPath_ = window.appState.selectionPath;
+ this.initCurrentDirectoryURL_ = window.appState.currentDirectoryURL;
+ this.initSelectionPath_ = window.appState.selectionURL;
this.initTargetName_ = window.appState.targetName;
} else {
// Used by the select dialog only.
this.params_ = location.search ?
JSON.parse(decodeURIComponent(location.search.substr(1))) :
{};
- this.initCurrentDirectoryPath_ = this.params_.currentDirectoryPath;
- this.initSelectionPath_ = this.params_.selectionPath;
+ this.initCurrentDirectoryURL_ = this.params_.currentDirectoryURL;
+ this.initSelectionURL_ = this.params_.selectionURL;
this.initTargetName_ = this.params_.targetName;
}
@@ -1407,16 +1407,16 @@ var BOTTOM_MARGIN_FOR_PREVIEW_PANEL_PX = 52;
var nextCurrentDirEntry;
var selectionEntry;
- // Resolve the selectionPath to selectionEntry or to currentDirectoryEntry
+ // Resolve the selectionURL to selectionEntry or to currentDirectoryEntry
// in case of being a display root.
queue.run(function(callback) {
- // TODO(mtomasz): Migrate to URLs, and stop calling resolveAbsolutePath.
- if (!this.initSelectionPath_) {
+ // TODO(mtomasz): Migrate to URLs, and stop calling resolveAbsoluteURL.
+ if (!this.initSelectionURL_) {
callback();
return;
}
- this.volumeManager_.resolveAbsolutePath(
- this.initSelectionPath_,
+ webkitResolveLocalFileSystemURL(
+ this.initSelectionURL_,
function(inEntry) {
var locationInfo = this.volumeManager_.getLocationInfo(inEntry);
// If the selection is root, then use it as a current directory
@@ -1429,16 +1429,15 @@ var BOTTOM_MARGIN_FOR_PREVIEW_PANEL_PX = 52;
callback();
}.bind(this), callback);
}.bind(this));
- // Resolve the currentDirectoryPath to currentDirectoryEntry (if not done
+ // Resolve the currentDirectoryURL to currentDirectoryEntry (if not done
// by the previous step).
queue.run(function(callback) {
- if (nextCurrentDirEntry || !this.initCurrentDirectoryPath_) {
+ if (nextCurrentDirEntry || !this.initCurrentDirectoryURL_) {
callback();
return;
}
- // TODO(mtomasz): Migrate to URLs, and stop calling resolveAbsolutePath.
- this.volumeManager_.resolveAbsolutePath(
- this.initCurrentDirectoryPath_,
+ webkitResolveLocalFileSystemURL(
+ this.initCurrentDirectoryURL_,
function(inEntry) {
nextCurrentDirEntry = inEntry;
callback();
@@ -1541,7 +1540,7 @@ var BOTTOM_MARGIN_FOR_PREVIEW_PANEL_PX = 52;
}
if (this.dialogType === DialogType.FULL_PAGE) {
- // In the FULL_PAGE mode if the restored path points to a file we might
+ // In the FULL_PAGE mode if the restored URL points to a file we might
// have to invoke a task after selecting it.
if (this.params_.action === 'select')
return;
@@ -1574,7 +1573,7 @@ var BOTTOM_MARGIN_FOR_PREVIEW_PANEL_PX = 52;
var listener = function() {
if (!util.isSameEntry(this.directoryModel_.getCurrentDirEntry(),
directoryEntry)) {
- // Opened on a different path. Probably fallbacked. Therefore,
+ // Opened on a different URL. Probably fallbacked. Therefore,
// do not invoke a task.
return;
}
@@ -2300,12 +2299,11 @@ var BOTTOM_MARGIN_FOR_PREVIEW_PANEL_PX = 52;
this.selectionHandler_.onFileSelectionChanged();
this.ui_.searchBox.clear();
- // TODO(mtomasz): Use Entry.toURL() instead of fullPath.
// TODO(mtomasz): Consider remembering the selection.
util.updateAppState(
this.getCurrentDirectoryEntry() ?
- this.getCurrentDirectoryEntry().fullPath : '',
- '' /* selectionPath */,
+ this.getCurrentDirectoryEntry().toURL() : '',
+ '' /* selectionURL */,
'' /* opt_param */);
if (this.commandHandler)
diff --git a/chrome/browser/resources/file_manager/foreground/js/file_manager_commands.js b/chrome/browser/resources/file_manager/foreground/js/file_manager_commands.js
index eaa37f4..932bb62 100644
--- a/chrome/browser/resources/file_manager/foreground/js/file_manager_commands.js
+++ b/chrome/browser/resources/file_manager/foreground/js/file_manager_commands.js
@@ -462,10 +462,9 @@ CommandHandler.COMMANDS_['new-folder'] = {
*/
CommandHandler.COMMANDS_['new-window'] = {
execute: function(event, fileManager) {
- // TODO(mtomasz): Use Entry.toURL() instead of fullPath.
fileManager.backgroundPage.launchFileManager({
- currentDirectoryPath: fileManager.getCurrentDirectoryEntry() &&
- fileManager.getCurrentDirectoryEntry().fullPath
+ currentDirectoryURL: fileManager.getCurrentDirectoryEntry() &&
+ fileManager.getCurrentDirectoryEntry().toURL()
});
},
canExecute: function(event, fileManager) {
diff --git a/chrome/browser/resources/file_manager/foreground/js/photo/gallery.js b/chrome/browser/resources/file_manager/foreground/js/photo/gallery.js
index 8b3ae3f..1cc7918 100644
--- a/chrome/browser/resources/file_manager/foreground/js/photo/gallery.js
+++ b/chrome/browser/resources/file_manager/foreground/js/photo/gallery.js
@@ -499,7 +499,7 @@ Gallery.prototype.delete_ = function() {
// TODO(hirono): Use fileOperationManager.
var entry = itemsToRemove.pop().getEntry();
entry.remove(deleteNext, function() {
- util.flog('Error deleting: ' + entry.fullPath, deleteNext);
+ util.flog('Error deleting: ' + entry.name, deleteNext);
});
}
@@ -637,22 +637,18 @@ Gallery.prototype.onKeyDown_ = function(event) {
* @private
*/
Gallery.prototype.updateSelectionAndState_ = function() {
- var path;
var displayName = '';
- // TODO(mtomasz): Migrate fullPath to toURL().
var selectedItems = this.getSelectedItems();
if (selectedItems.length === 1) {
var item = selectedItems[0];
var entry = item.getEntry();
- path = entry.fullPath;
window.top.document.title = entry.name;
displayName = ImageUtil.getDisplayNameFromName(entry.name);
} else if (selectedItems.length > 1 && this.context_.curDirEntry) {
// If the Gallery was opened on search results the search query will not be
// recorded in the app state and the relaunch will just open the gallery
// in the curDirEntry directory.
- path = this.context_.curDirEntry.fullPath;
window.top.document.title = this.context_.curDirEntry.name;
displayName =
this.displayStringFunction_('GALLERY_ITEMS_SELECTED',
@@ -661,7 +657,7 @@ Gallery.prototype.updateSelectionAndState_ = function() {
window.top.util.updateAppState(
null, // Keep the current directory.
- path, // Update the selection.
+ entry.toURL(), // Update the selection.
{gallery: (this.currentMode_ === this.mosaicMode_ ? 'mosaic' : 'slide')});
// We can't rename files in readonly directory.
@@ -671,7 +667,6 @@ Gallery.prototype.updateSelectionAndState_ = function() {
this.filenameEdit_.value = displayName;
- // Resolve real filesystem path of the current file.
if (this.selectionModel_.selectedIndexes.length) {
var selectedIndex = this.selectionModel_.selectedIndex;
var selectedItem =
diff --git a/chrome/browser/ui/views/select_file_dialog_extension.cc b/chrome/browser/ui/views/select_file_dialog_extension.cc
index 6a28051..ce6e83e 100644
--- a/chrome/browser/ui/views/select_file_dialog_extension.cc
+++ b/chrome/browser/ui/views/select_file_dialog_extension.cc
@@ -333,52 +333,45 @@ void SelectFileDialogExtension::SelectFileImpl(
base::FilePath fallback_path = profile_->last_selected_directory().empty() ?
download_default_path : profile_->last_selected_directory();
- // Convert the above absolute paths to virtual paths.
- // TODO(mtomasz): Use URLs instead of paths.
- base::FilePath selection_virtual_path;
- if (!file_manager::util::ConvertAbsoluteFilePathToRelativeFileSystemPath(
+ // Convert the above absolute paths to file system URLs.
+ GURL selection_url;
+ if (!file_manager::util::ConvertAbsoluteFilePathToFileSystemUrl(
profile_,
- file_manager::kFileManagerAppId,
selection_path,
- &selection_virtual_path)) {
+ file_manager::kFileManagerAppId,
+ &selection_url)) {
// Due to the current design, an invalid temporal cache file path may passed
// as |default_path| (crbug.com/178013 #9-#11). In such a case, we use the
// last selected directory as a workaround. Real fix is tracked at
// crbug.com/110119.
- if (!file_manager::util::ConvertAbsoluteFilePathToRelativeFileSystemPath(
+ if (!file_manager::util::ConvertAbsoluteFilePathToFileSystemUrl(
profile_,
- file_manager::kFileManagerAppId,
fallback_path.Append(default_path.BaseName()),
- &selection_virtual_path)) {
- LOG(ERROR) << "Unable to resolve the selection path.";
+ file_manager::kFileManagerAppId,
+ &selection_url)) {
+ LOG(ERROR) << "Unable to resolve the selection URL.";
return;
}
}
- // TODO(mtomasz): Adding a leading separator works, because this code is
- // executed on Chrome OS only. This trick will be removed, once migration to
- // URLs is finished.
- selection_virtual_path = base::FilePath("/").Append(selection_virtual_path);
- base::FilePath current_directory_virtual_path;
+ GURL current_directory_url;
base::FilePath current_directory_path = selection_path.DirName();
- if (!file_manager::util::ConvertAbsoluteFilePathToRelativeFileSystemPath(
+ if (!file_manager::util::ConvertAbsoluteFilePathToFileSystemUrl(
profile_,
- file_manager::kFileManagerAppId,
current_directory_path,
- &current_directory_virtual_path)) {
+ file_manager::kFileManagerAppId,
+ &current_directory_url)) {
// Fallback if necessary, see the comment above.
- if (!file_manager::util::ConvertAbsoluteFilePathToRelativeFileSystemPath(
+ if (!file_manager::util::ConvertAbsoluteFilePathToFileSystemUrl(
profile_,
- file_manager::kFileManagerAppId,
fallback_path,
- &current_directory_virtual_path)) {
- LOG(ERROR) << "Unable to resolve the current directory path: "
+ file_manager::kFileManagerAppId,
+ &current_directory_url)) {
+ LOG(ERROR) << "Unable to resolve the current directory URL for: "
<< fallback_path.value();
return;
}
}
- current_directory_virtual_path = base::FilePath("/").Append(
- current_directory_virtual_path);
has_multiple_file_type_choices_ =
!file_types || (file_types->extensions.size() > 1);
@@ -387,8 +380,9 @@ void SelectFileDialogExtension::SelectFileImpl(
file_manager::util::GetFileManagerMainPageUrlWithParams(
type,
title,
- current_directory_virtual_path,
- selection_virtual_path,
+ current_directory_url,
+ selection_url,
+ default_path.BaseName().value(),
file_types,
file_type_index,
default_extension);