| Index: webkit/browser/fileapi/file_system_context.cc
|
| diff --git a/webkit/browser/fileapi/file_system_context.cc b/webkit/browser/fileapi/file_system_context.cc
|
| index c42eadb4e10af5d7825e6d8f2dc0776e0cf696c7..067b25b43941a75aad66e55e56e4812e54b8ae7b 100644
|
| --- a/webkit/browser/fileapi/file_system_context.cc
|
| +++ b/webkit/browser/fileapi/file_system_context.cc
|
| @@ -8,6 +8,7 @@
|
| #include "base/single_thread_task_runner.h"
|
| #include "base/stl_util.h"
|
| #include "base/task_runner_util.h"
|
| +#include "net/url_request/url_request.h"
|
| #include "url/gurl.h"
|
| #include "webkit/browser/blob/file_stream_reader.h"
|
| #include "webkit/browser/fileapi/copy_or_move_file_validator.h"
|
| @@ -113,6 +114,7 @@ FileSystemContext::FileSystemContext(
|
| quota::SpecialStoragePolicy* special_storage_policy,
|
| quota::QuotaManagerProxy* quota_manager_proxy,
|
| ScopedVector<FileSystemBackend> additional_backends,
|
| + const std::vector<URLRequestAutoMountHandler>& auto_mount_handlers,
|
| const base::FilePath& partition_path,
|
| const FileSystemOptions& options)
|
| : io_task_runner_(io_task_runner),
|
| @@ -133,6 +135,7 @@ FileSystemContext::FileSystemContext(
|
| special_storage_policy,
|
| options)),
|
| additional_backends_(additional_backends.Pass()),
|
| + auto_mount_handlers_(auto_mount_handlers),
|
| external_mount_points_(external_mount_points),
|
| partition_path_(partition_path),
|
| is_incognito_(options.is_incognito()),
|
| @@ -337,6 +340,22 @@ void FileSystemContext::ResolveURL(
|
| callback));
|
| }
|
|
|
| +void FileSystemContext::AttemptAutoMountForURLRequest(
|
| + const net::URLRequest* url_request,
|
| + const std::string& storage_domain,
|
| + const StatusCallback& callback) {
|
| + FileSystemURL filesystem_url(url_request->url());
|
| + if (filesystem_url.type() == kFileSystemTypeExternal) {
|
| + for (size_t i = 0; i < auto_mount_handlers_.size(); i++) {
|
| + if (auto_mount_handlers_[i].Run(url_request, filesystem_url,
|
| + storage_domain, callback)) {
|
| + return;
|
| + }
|
| + }
|
| + }
|
| + callback.Run(base::File::FILE_ERROR_NOT_FOUND);
|
| +}
|
| +
|
| void FileSystemContext::DeleteFileSystem(
|
| const GURL& origin_url,
|
| FileSystemType type,
|
|
|