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

Unified Diff: webkit/fileapi/file_system_path_manager.cc

Issue 5754002: Moving away from shell api to support long path names on windows for filesystem. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years 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: webkit/fileapi/file_system_path_manager.cc
===================================================================
--- webkit/fileapi/file_system_path_manager.cc (revision 69859)
+++ webkit/fileapi/file_system_path_manager.cc (working copy)
@@ -124,6 +124,7 @@
DispatchCallbackOnCallerThread(FilePath());
return;
}
+
DispatchCallbackOnCallerThread(root);
}
@@ -170,13 +171,23 @@
scoped_ptr<FileSystemPathManager::GetRootPathCallback> callback_;
};
+FilePath FileSystemPathManager::GetFileSystemCommonRootDirectory(
+ const FilePath& root_path) {
+#if defined(OS_WIN)
+ // To specify an extended-length path, "\\?\" prefix is used. Else path names
+ // are limited to 260 characters.
+ return root_path.GetLongPathHack().Append(kFileSystemDirectory);
+#endif
+ return root_path.Append(kFileSystemDirectory);
+}
+
FileSystemPathManager::FileSystemPathManager(
scoped_refptr<base::MessageLoopProxy> file_message_loop,
const FilePath& profile_path,
bool is_incognito,
bool allow_file_access_from_files)
: file_message_loop_(file_message_loop),
- base_path_(profile_path.Append(kFileSystemDirectory)),
+ base_path_(GetFileSystemCommonRootDirectory(profile_path)),
is_incognito_(is_incognito),
allow_file_access_from_files_(allow_file_access_from_files) {
}
@@ -215,7 +226,8 @@
DCHECK(!type_string.empty());
FilePath origin_base_path = base_path_.AppendASCII(storage_identifier)
- .AppendASCII(type_string);
+ .AppendASCII(type_string);
+
std::string name = storage_identifier + ":" + type_string;
scoped_refptr<GetFileSystemRootPathTask> task(

Powered by Google App Engine
This is Rietveld 408576698