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

Unified Diff: chrome/browser/resources/file_manager/foreground/js/directory_model.js

Issue 138033007: Limit using full paths in the directory model in the Files app. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 11 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/resources/file_manager/foreground/js/directory_model.js
diff --git a/chrome/browser/resources/file_manager/foreground/js/directory_model.js b/chrome/browser/resources/file_manager/foreground/js/directory_model.js
index 1ddaf388a72480c30f3a2760e568640ab65f7140..b6c3dc95c3416896766c849016c13426d35a7a10 100644
--- a/chrome/browser/resources/file_manager/foreground/js/directory_model.js
+++ b/chrome/browser/resources/file_manager/foreground/js/directory_model.js
@@ -193,64 +193,53 @@ DirectoryModel.prototype.getCurrentDirEntry = function() {
};
/**
- * @return {Array.<string>} File paths of selected files.
+ * @return {Array.<Entry>} Array of selected entries..
* @private
*/
-DirectoryModel.prototype.getSelectedPaths_ = function() {
+DirectoryModel.prototype.getSelectedEntries_ = function() {
var indexes = this.fileListSelection_.selectedIndexes;
var fileList = this.getFileList();
if (fileList) {
return indexes.map(function(i) {
- return fileList.item(i).fullPath;
+ return fileList.item(i);
});
}
return [];
};
/**
- * @param {Array.<string>} value List of file paths of selected files.
+ * @param {Array.<Entry>} value List of selected entries.
* @private
*/
-DirectoryModel.prototype.setSelectedPaths_ = function(value) {
+DirectoryModel.prototype.setSelectedEntries_ = function(value) {
var indexes = [];
var fileList = this.getFileList();
-
- var safeKey = function(key) {
- // The transformation must:
- // 1. Never generate a reserved name ('__proto__')
- // 2. Keep different keys different.
- return '#' + key;
- };
-
- var hash = {};
-
- for (var i = 0; i < value.length; i++)
- hash[safeKey(value[i])] = 1;
+ var urls = util.entriesToURLs(value);
for (var i = 0; i < fileList.length; i++) {
- if (hash.hasOwnProperty(safeKey(fileList.item(i).fullPath)))
+ if (urls.indexOf(fileList.item(i).toURL()))
hirono 2014/01/17 03:11:29 !== -1 is needed?
mtomasz 2014/01/17 04:16:42 Oops. Done.
indexes.push(i);
}
this.fileListSelection_.selectedIndexes = indexes;
};
/**
- * @return {string} Lead item file path.
+ * @return {Entry} Lead entry.
* @private
*/
-DirectoryModel.prototype.getLeadPath_ = function() {
+DirectoryModel.prototype.getLeadEntry_ = function() {
var index = this.fileListSelection_.leadIndex;
- return index >= 0 && this.getFileList().item(index).fullPath;
+ return index >= 0 && this.getFileList().item(index);
};
/**
- * @param {string} value The name of new lead index.
+ * @param {Entry} value The new lead entry.
* @private
*/
-DirectoryModel.prototype.setLeadPath_ = function(value) {
+DirectoryModel.prototype.setLeadEntry_ = function(value) {
var fileList = this.getFileList();
for (var i = 0; i < fileList.length; i++) {
- if (fileList.item(i).fullPath === value) {
+ if (util.isSameEntry(fileList.item(i), value)) {
this.fileListSelection_.leadIndex = i;
return;
}
@@ -459,19 +448,19 @@ DirectoryModel.prototype.scan_ = function(
DirectoryModel.prototype.replaceDirectoryContents_ = function(dirContents) {
cr.dispatchSimpleEvent(this, 'begin-update-files');
this.updateSelectionAndPublishEvent_(this.fileListSelection_, function() {
- var selectedPaths = this.getSelectedPaths_();
+ var selectedEntries = this.getSelectedEntries_();
var selectedIndices = this.fileListSelection_.selectedIndexes;
// Restore leadIndex in case leadName no longer exists.
var leadIndex = this.fileListSelection_.leadIndex;
- var leadPath = this.getLeadPath_();
+ var leadEntry = this.getLeadEntry_();
this.currentDirContents_ = dirContents;
dirContents.replaceContextFileList();
- this.setSelectedPaths_(selectedPaths);
+ this.setSelectedEntries_(selectedEntries);
this.fileListSelection_.leadIndex = leadIndex;
- this.setLeadPath_(leadPath);
+ this.setLeadEntry_(leadEntry);
// If nothing is selected after update, then select file next to the
// latest selection
@@ -719,7 +708,7 @@ DirectoryModel.prototype.resolveDirectory = function(
};
/**
- * @param {DirectoryEntry} dirEntry The absolute path to the new directory.
+ * @param {DirectoryEntry} dirEntry The entry of the new directory.
* @param {function()=} opt_callback Executed if the directory loads
* successfully.
* @private
@@ -746,7 +735,7 @@ DirectoryModel.prototype.changeDirectoryEntrySilent_ = function(dirEntry,
* Dispatches the 'directory-changed' event when the directory is successfully
* changed.
*
- * @param {DirectoryEntry} dirEntry The absolute path to the new directory.
+ * @param {DirectoryEntry} dirEntry The entry of the new directory.
* @param {function()=} opt_callback Executed if the directory loads
* successfully.
*/
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698