Index: chrome/browser/extensions/extension_file_browser_private_api.cc |
diff --git a/chrome/browser/extensions/extension_file_browser_private_api.cc b/chrome/browser/extensions/extension_file_browser_private_api.cc |
index 2c8b0b122142c70ec27b8b171a3b50da311e1dda..82cead992267af27ae51706ba9d002623ce4bbd0 100644 |
--- a/chrome/browser/extensions/extension_file_browser_private_api.cc |
+++ b/chrome/browser/extensions/extension_file_browser_private_api.cc |
@@ -47,7 +47,6 @@ |
#include "webkit/fileapi/file_system_mount_point_provider.h" |
#include "webkit/fileapi/file_system_operation.h" |
#include "webkit/fileapi/file_system_operation_context.h" |
-#include "webkit/fileapi/file_system_path_manager.h" |
#include "webkit/fileapi/file_system_types.h" |
#include "webkit/fileapi/file_system_util.h" |
@@ -383,10 +382,8 @@ class RequestLocalFileSystemFunction::LocalFileSystemCallbackDispatcher |
return false; |
} |
- fileapi::FileSystemPathManager* path_manager = |
- profile_->GetFileSystemContext()->path_manager(); |
fileapi::ExternalFileSystemMountPointProvider* provider = |
- path_manager->external_provider(); |
+ profile_->GetFileSystemContext()->external_provider(); |
if (!provider) |
return false; |
@@ -465,8 +462,6 @@ void RequestLocalFileSystemFunction::RespondFailedOnUIThread( |
bool FileWatchBrowserFunctionBase::GetLocalFilePath( |
const GURL& file_url, FilePath* local_path, FilePath* virtual_path) { |
- fileapi::FileSystemPathManager* path_manager = |
- profile_->GetFileSystemContext()->path_manager(); |
GURL file_origin_url; |
fileapi::FileSystemType type; |
if (!CrackFileSystemURL(file_url, &file_origin_url, &type, |
@@ -476,8 +471,8 @@ bool FileWatchBrowserFunctionBase::GetLocalFilePath( |
if (type != fileapi::kFileSystemTypeExternal) |
return false; |
- FilePath root_path = |
- path_manager->ValidateFileSystemRootAndGetPathOnFileThread( |
+ FilePath root_path = profile_->GetFileSystemContext()->external_provider()-> |
+ ValidateFileSystemRootAndGetPathOnFileThread( |
file_origin_url, |
fileapi::kFileSystemTypeExternal, |
*virtual_path, |
@@ -745,11 +740,14 @@ class ExecuteTasksFileBrowserFunction::ExecuteTasksFileSystemCallbackDispatcher |
if (type != fileapi::kFileSystemTypeExternal) |
return false; |
- fileapi::FileSystemPathManager* path_manager = |
- profile_->GetFileSystemContext()->path_manager(); |
- if (!path_manager->IsAccessAllowed(file_origin_url, |
- type, |
- virtual_path)) { |
+ fileapi::ExternalFileSystemMountPointProvider* external_provider = |
+ profile_->GetFileSystemContext()->external_provider(); |
+ if (!external_provider) |
+ return false; |
+ |
+ if (!external_provider->IsAccessAllowed(file_origin_url, |
+ type, |
+ virtual_path)) { |
return false; |
} |
@@ -760,18 +758,13 @@ class ExecuteTasksFileBrowserFunction::ExecuteTasksFileSystemCallbackDispatcher |
} |
FilePath root_path = |
- path_manager->ValidateFileSystemRootAndGetPathOnFileThread( |
+ external_provider->ValidateFileSystemRootAndGetPathOnFileThread( |
file_origin_url, |
fileapi::kFileSystemTypeExternal, |
virtual_path, |
false); // create |
FilePath final_file_path = root_path.Append(virtual_path); |
- fileapi::ExternalFileSystemMountPointProvider* external_provider = |
- path_manager->external_provider(); |
- if (!external_provider) |
- return false; |
- |
// Check if this file system entry exists first. |
base::PlatformFileInfo file_info; |
@@ -1012,10 +1005,16 @@ void FileBrowserFunction::GetLocalPathsOnFileThread( |
// FilePath(virtual_path) doesn't work on win, so limit this to ChromeOS. |
#if defined(OS_CHROMEOS) |
- GURL origin_url = source_url().GetOrigin(); |
- fileapi::FileSystemPathManager* path_manager = |
- profile()->GetFileSystemContext()->path_manager(); |
+ fileapi::ExternalFileSystemMountPointProvider* provider = |
+ profile_->GetFileSystemContext()->external_provider(); |
+ if (!provider) { |
+ LOG(WARNING) << "External provider is not available"; |
+ BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, |
+ base::Bind(callback, selected_files)); |
+ return; |
+ } |
+ GURL origin_url = source_url().GetOrigin(); |
size_t len = file_urls.size(); |
selected_files.reserve(len); |
for (size_t i = 0; i < len; ++i) { |
@@ -1031,7 +1030,7 @@ void FileBrowserFunction::GetLocalPathsOnFileThread( |
NOTREACHED(); |
continue; |
} |
- FilePath root = path_manager->ValidateFileSystemRootAndGetPathOnFileThread( |
+ FilePath root = provider->ValidateFileSystemRootAndGetPathOnFileThread( |
origin_url, |
fileapi::kFileSystemTypeExternal, |
FilePath(virtual_path), |