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

Unified Diff: webkit/browser/fileapi/file_system_context.cc

Issue 18668003: SyncFS: Introduce SyncFileSystemBackend (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: add Initialize() Created 7 years, 5 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: 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 24c505bb8a927d07b4b892768b411f3680c59005..dd8984cbb27f172a44056547e24e80f220ee770e 100644
--- a/webkit/browser/fileapi/file_system_context.cc
+++ b/webkit/browser/fileapi/file_system_context.cc
@@ -135,6 +135,7 @@ FileSystemContext::FileSystemContext(
for (ScopedVector<FileSystemBackend>::const_iterator iter =
additional_backends_.begin();
iter != additional_backends_.end(); ++iter) {
+ (*iter)->Initialize(this);
RegisterBackend(*iter);
kinuko 2013/07/23 06:41:51 I'd have another loop for Initialize after this lo
nhiroki 2013/07/24 05:58:47 Done in a separate CL.
}
@@ -220,25 +221,34 @@ bool FileSystemContext::IsSandboxFileSystem(FileSystemType type) const {
const UpdateObserverList* FileSystemContext::GetUpdateObservers(
FileSystemType type) const {
- // Currently update observer is only available in SandboxFileSystemBackend
- // and TestFileSystemBackend.
- // TODO(kinuko): Probably GetUpdateObservers() virtual method should be
- // added to FileSystemBackend interface and be called like
- // other GetFoo() methods do.
+ // Currently update observer is only available in SandboxFileSystemBackend,
+ // SyncFileSystemBackend and TestFileSystemBackend.
if (sandbox_backend_->CanHandleType(type))
return sandbox_backend_->GetUpdateObservers(type);
- if (type != kFileSystemTypeTest)
- return NULL;
FileSystemBackend* backend = GetFileSystemBackend(type);
- return static_cast<TestFileSystemBackend*>(
- backend)->GetUpdateObservers(type);
+ if (type == kFileSystemTypeSyncable ||
+ type == kFileSystemTypeSyncableForInternalSync) {
+ return static_cast<SandboxFileSystemBackend*>(
+ backend)->GetUpdateObservers(type);
+ }
+ if (type == kFileSystemTypeTest) {
+ return static_cast<TestFileSystemBackend*>(
+ backend)->GetUpdateObservers(type);
+ }
kinuko 2013/07/23 06:41:51 Can't this be simply written like: if (backend->G
nhiroki 2013/07/24 05:58:47 Done.
+ return NULL;
}
const AccessObserverList* FileSystemContext::GetAccessObservers(
FileSystemType type) const {
- // Currently access observer is only available in SandboxFileSystemBackend.
+ // Currently access observer is only available in SandboxFileSystemBackend and
+ // SyncFileSystemBackend.
if (sandbox_backend_->CanHandleType(type))
return sandbox_backend_->GetAccessObservers(type);
+ if (type == kFileSystemTypeSyncable ||
+ type == kFileSystemTypeSyncableForInternalSync) {
+ return static_cast<SandboxFileSystemBackend*>(
+ GetFileSystemBackend(type))->GetAccessObservers(type);
+ }
kinuko 2013/07/23 06:41:51 ditto
nhiroki 2013/07/24 05:58:47 Done.
return NULL;
}
@@ -326,21 +336,28 @@ scoped_ptr<FileStreamWriter> FileSystemContext::CreateFileStreamWriter(
return backend->CreateFileStreamWriter(url, offset, this);
}
+// TODO(nhiroki): Move into SyncFileSystemBackend (http://crbug.com/242422).
void FileSystemContext::SetLocalFileChangeTracker(
scoped_ptr<sync_file_system::LocalFileChangeTracker> tracker) {
DCHECK(!change_tracker_.get());
DCHECK(tracker.get());
change_tracker_ = tracker.Pass();
- sandbox_backend_->AddFileUpdateObserver(
+
+ SandboxFileSystemBackend* backend =
+ static_cast<SandboxFileSystemBackend*>(
+ GetFileSystemBackend(kFileSystemTypeSyncable));
+
+ backend->AddFileUpdateObserver(
kFileSystemTypeSyncable,
change_tracker_.get(),
task_runners_->file_task_runner());
- sandbox_backend_->AddFileChangeObserver(
+ backend->AddFileChangeObserver(
kFileSystemTypeSyncable,
change_tracker_.get(),
task_runners_->file_task_runner());
}
+// TODO(nhiroki): Move into SyncFileSystemBackend (http://crbug.com/242422).
void FileSystemContext::set_sync_context(
sync_file_system::LocalFileSyncContext* sync_context) {
sync_context_ = sync_context;

Powered by Google App Engine
This is Rietveld 408576698