Chromium Code Reviews| Index: webkit/fileapi/file_system_path_manager.cc |
| =================================================================== |
| --- webkit/fileapi/file_system_path_manager.cc (revision 68690) |
| +++ webkit/fileapi/file_system_path_manager.cc (working copy) |
| @@ -124,6 +124,7 @@ |
| DispatchCallbackOnCallerThread(FilePath()); |
| return; |
| } |
| + |
| DispatchCallbackOnCallerThread(root); |
| } |
| @@ -170,13 +171,27 @@ |
| 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. |
| + if (!root_path.StartsWithExtendedPathPrefix()) { |
|
Mark Mentovai
2010/12/17 01:58:49
I thought that UNC paths weren’t restricted to 260
|
| + FilePath::StringType extended_length_str(FilePath::kExtendedPathPrefix); |
| + extended_length_str.append(root_path.value()); |
| + return FilePath(extended_length_str).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 +230,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( |