Index: chrome/browser/extensions/api/file_system/file_system_api.cc |
diff --git a/chrome/browser/extensions/api/file_system/file_system_api.cc b/chrome/browser/extensions/api/file_system/file_system_api.cc |
index d70eea3cd5feda788bd7bec34a7e616e99e31873..3802eea3f44cc414767ee85c2bc734800eee7f15 100644 |
--- a/chrome/browser/extensions/api/file_system/file_system_api.cc |
+++ b/chrome/browser/extensions/api/file_system/file_system_api.cc |
@@ -19,6 +19,8 @@ |
#include "webkit/fileapi/file_system_util.h" |
#include "webkit/fileapi/isolated_context.h" |
+using fileapi::IsolatedContext; |
+ |
const char kInvalidParameters[] = "Invalid parameters"; |
const char kSecurityError[] = "Security error"; |
const char kInvalidCallingPage[] = "Invalid calling page"; |
@@ -56,10 +58,10 @@ bool GetFilePathOfFileEntry(const std::string& filesystem_name, |
return false; |
} |
- fileapi::IsolatedContext* context = fileapi::IsolatedContext::GetInstance(); |
+ IsolatedContext* context = IsolatedContext::GetInstance(); |
FilePath relative_path = FilePath::FromUTF8Unsafe(filesystem_path); |
- FilePath virtual_path = context->CreateVirtualPath(filesystem_id, |
- relative_path); |
+ FilePath virtual_path = context->CreateVirtualRootPath(filesystem_id) |
+ .Append(relative_path); |
if (!context->CrackIsolatedPath(virtual_path, |
&filesystem_id, |
NULL, |
@@ -252,14 +254,13 @@ void FileSystemPickerFunction::CheckWritableFile(const FilePath& path) { |
void FileSystemPickerFunction::RegisterFileSystemAndSendResponse( |
const FilePath& path, bool for_save) { |
DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
- std::set<FilePath> filesets; |
- filesets.insert(path); |
- fileapi::IsolatedContext* isolated_context = |
- fileapi::IsolatedContext::GetInstance(); |
+ IsolatedContext* isolated_context = IsolatedContext::GetInstance(); |
+ std::string file_name = IsolatedContext::GetNameForPath(path); |
+ |
DCHECK(isolated_context); |
- std::string filesystem_id = isolated_context->RegisterIsolatedFileSystem( |
- filesets); |
+ std::string filesystem_id = isolated_context->RegisterFileSystemForFile( |
+ file_name, path); |
content::ChildProcessSecurityPolicy* policy = |
content::ChildProcessSecurityPolicy::GetInstance(); |
@@ -278,7 +279,7 @@ void FileSystemPickerFunction::RegisterFileSystemAndSendResponse( |
DictionaryValue* dict = new DictionaryValue(); |
result_.reset(dict); |
dict->SetString("fileSystemId", filesystem_id); |
- dict->SetString("baseName", path.BaseName().AsUTF8Unsafe()); |
+ dict->SetString("baseName", file_name); |
SendResponse(true); |
} |