#include "content/public/browser/content_browser_client.h"
#include "content/public/common/content_client.h"
#include "content/public/common/content_switches.h"
-#include "content/public/common/url_constants.h"
-#include "webkit/browser/fileapi/external_mount_points.h"
-#include "webkit/browser/fileapi/file_permission_policy.h"
-#include "webkit/browser/fileapi/file_system_backend.h"
-#include "webkit/browser/fileapi/file_system_operation_runner.h"
-#include "webkit/browser/fileapi/file_system_options.h"
-#include "webkit/browser/quota/quota_manager.h"
+#include "storage/browser/fileapi/external_mount_points.h"
+#include "storage/browser/fileapi/file_permission_policy.h"
+#include "storage/browser/fileapi/file_system_backend.h"
+#include "storage/browser/fileapi/file_system_context.h"
+#include "storage/browser/fileapi/file_system_operation_runner.h"
+#include "storage/browser/fileapi/file_system_options.h"
+#include "storage/browser/quota/quota_manager.h"
+#include "url/url_constants.h"
namespace content {
namespace {
-using fileapi::FileSystemOptions;
+using storage::FileSystemOptions;
FileSystemOptions CreateBrowserFileSystemOptions(bool is_incognito) {
FileSystemOptions::ProfileMode profile_mode =
&additional_allowed_schemes);
if (CommandLine::ForCurrentProcess()->HasSwitch(
switches::kAllowFileAccessFromFiles)) {
- additional_allowed_schemes.push_back(chrome::kFileScheme);
+ additional_allowed_schemes.push_back(url::kFileScheme);
}
- return FileSystemOptions(profile_mode, additional_allowed_schemes);
+ return FileSystemOptions(profile_mode, additional_allowed_schemes, NULL);
}
} // namespace
-scoped_refptr<fileapi::FileSystemContext> CreateFileSystemContext(
+scoped_refptr<storage::FileSystemContext> CreateFileSystemContext(
BrowserContext* browser_context,
const base::FilePath& profile_path,
bool is_incognito,
- quota::QuotaManagerProxy* quota_manager_proxy) {
-
- base::SequencedWorkerPool* pool = content::BrowserThread::GetBlockingPool();
+ storage::QuotaManagerProxy* quota_manager_proxy) {
+ base::SequencedWorkerPool* pool = BrowserThread::GetBlockingPool();
scoped_refptr<base::SequencedTaskRunner> file_task_runner =
pool->GetSequencedTaskRunnerWithShutdownBehavior(
pool->GetNamedSequenceToken("FileAPI"),
base::SequencedWorkerPool::SKIP_ON_SHUTDOWN);
// Setting up additional filesystem backends.
- ScopedVector<fileapi::FileSystemBackend> additional_backends;
+ ScopedVector<storage::FileSystemBackend> additional_backends;
GetContentClient()->browser()->GetAdditionalFileSystemBackends(
browser_context,
profile_path,
&additional_backends);
- scoped_refptr<fileapi::FileSystemContext> file_system_context =
- new fileapi::FileSystemContext(
+ // Set up the auto mount handlers for url requests.
+ std::vector<storage::URLRequestAutoMountHandler>
+ url_request_auto_mount_handlers;
+ GetContentClient()->browser()->GetURLRequestAutoMountHandlers(
+ &url_request_auto_mount_handlers);
+
+ scoped_refptr<storage::FileSystemContext> file_system_context =
+ new storage::FileSystemContext(
BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO).get(),
file_task_runner.get(),
BrowserContext::GetMountPoints(browser_context),
browser_context->GetSpecialStoragePolicy(),
quota_manager_proxy,
additional_backends.Pass(),
+ url_request_auto_mount_handlers,
profile_path,
CreateBrowserFileSystemOptions(is_incognito));
- std::vector<fileapi::FileSystemType> types;
+ std::vector<storage::FileSystemType> types;
file_system_context->GetFileSystemTypes(&types);
for (size_t i = 0; i < types.size(); ++i) {
- ChildProcessSecurityPolicyImpl::GetInstance()->
- RegisterFileSystemPermissionPolicy(
+ ChildProcessSecurityPolicyImpl::GetInstance()
+ ->RegisterFileSystemPermissionPolicy(
types[i],
- fileapi::FileSystemContext::GetPermissionPolicy(types[i]));
+ storage::FileSystemContext::GetPermissionPolicy(types[i]));
}
return file_system_context;
}
-bool FileSystemURLIsValid(
- fileapi::FileSystemContext* context,
- const fileapi::FileSystemURL& url) {
+bool FileSystemURLIsValid(storage::FileSystemContext* context,
+ const storage::FileSystemURL& url) {
if (!url.is_valid())
return false;
return context->GetFileSystemBackend(url.type()) != NULL;
}
-void SyncGetPlatformPath(fileapi::FileSystemContext* context,
+void SyncGetPlatformPath(storage::FileSystemContext* context,
int process_id,
const GURL& path,
base::FilePath* platform_path) {
RunsTasksOnCurrentThread());
DCHECK(platform_path);
*platform_path = base::FilePath();
- fileapi::FileSystemURL url(context->CrackURL(path));
+ storage::FileSystemURL url(context->CrackURL(path));
if (!FileSystemURLIsValid(context, url))
return;