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

Unified Diff: content/browser/fileapi/browser_file_system_helper.cc

Issue 14096022: Make MountPointProvider pluggable from outside webkit/fileapi (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 8 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
Index: content/browser/fileapi/browser_file_system_helper.cc
diff --git a/content/browser/fileapi/browser_file_system_helper.cc b/content/browser/fileapi/browser_file_system_helper.cc
index 485d96afcba2679de90537a0c45e218ab5f5f2d9..db78062c53c53faa36eb779a7674ba2b5ff4f8a7 100644
--- a/content/browser/fileapi/browser_file_system_helper.cc
+++ b/content/browser/fileapi/browser_file_system_helper.cc
@@ -20,10 +20,16 @@
#include "webkit/fileapi/file_permission_policy.h"
#include "webkit/fileapi/file_system_options.h"
#include "webkit/fileapi/file_system_task_runners.h"
+#include "webkit/fileapi/isolated_context.h"
#include "webkit/fileapi/local_file_system_operation.h"
+#include "webkit/fileapi/mount_points.h"
#include "webkit/fileapi/sandbox_mount_point_provider.h"
#include "webkit/quota/quota_manager.h"
+#if defined(OS_CHROMEOS)
+#include "webkit/chromeos/fileapi/cros_mount_point_provider.h"
+#endif
+
namespace content {
namespace {
@@ -47,10 +53,11 @@ FileSystemOptions CreateBrowserFileSystemOptions(bool is_incognito) {
} // namespace
scoped_refptr<fileapi::FileSystemContext> CreateFileSystemContext(
- const base::FilePath& profile_path, bool is_incognito,
- fileapi::ExternalMountPoints* external_mount_points,
- quota::SpecialStoragePolicy* special_storage_policy,
- quota::QuotaManagerProxy* quota_manager_proxy) {
+ const base::FilePath& partition_path,
+ bool is_incognito,
+ fileapi::ExternalMountPoints* external_mount_points,
+ quota::SpecialStoragePolicy* special_storage_policy,
+ quota::QuotaManagerProxy* quota_manager_proxy) {
base::SequencedWorkerPool* pool = BrowserThread::GetBlockingPool();
base::SequencedWorkerPool::SequenceToken media_sequence_token =
pool->GetNamedSequenceToken(fileapi::kMediaTaskRunnerName);
@@ -61,13 +68,32 @@ scoped_refptr<fileapi::FileSystemContext> CreateFileSystemContext(
BrowserThread::GetMessageLoopProxyForThread(BrowserThread::FILE),
pool->GetSequencedTaskRunner(media_sequence_token)));
+ fileapi::FileSystemOptions options(
+ CreateBrowserFileSystemOptions(is_incognito));
+
+ // Setting up mount points.
+ std::vector<fileapi::MountPoints*> additional_mount_points;
+ if (external_mount_points)
+ additional_mount_points.push_back(external_mount_points);
+
+ // Setting up additional mount point providers.
+ ScopedVector<fileapi::FileSystemMountPointProvider> additional_providers;
+#if defined(OS_CHROMEOS)
+ // TODO(kinuko): Move this to chrome/.
+ additional_providers.push_back(
+ new chromeos::CrosMountPointProvider(
+ special_storage_policy,
+ external_mount_points,
+ fileapi::ExternalMountPoints::GetSystemInstance()));
+#endif
+
return new fileapi::FileSystemContext(
task_runners.Pass(),
- external_mount_points,
- special_storage_policy,
quota_manager_proxy,
- profile_path,
- CreateBrowserFileSystemOptions(is_incognito));
+ additional_providers.Pass(),
+ additional_mount_points,
+ partition_path,
+ options);
}
bool CheckFileSystemPermissionsForProcess(

Powered by Google App Engine
This is Rietveld 408576698