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

Side by Side Diff: chrome/browser/sync_file_system/local/sync_file_system_backend.cc

Issue 492873002: Collapse fileapi, webkit_blob, webkit_database, quota, and webkit_common namespaces into single sto… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix chromeos build Created 6 years, 4 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/sync_file_system/local/sync_file_system_backend.h" 5 #include "chrome/browser/sync_file_system/local/sync_file_system_backend.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "chrome/browser/chrome_notification_types.h" 8 #include "chrome/browser/chrome_notification_types.h"
9 #include "chrome/browser/sync_file_system/local/local_file_change_tracker.h" 9 #include "chrome/browser/sync_file_system/local/local_file_change_tracker.h"
10 #include "chrome/browser/sync_file_system/local/local_file_sync_context.h" 10 #include "chrome/browser/sync_file_system/local/local_file_sync_context.h"
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 } 84 }
85 85
86 // static 86 // static
87 SyncFileSystemBackend* SyncFileSystemBackend::CreateForTesting() { 87 SyncFileSystemBackend* SyncFileSystemBackend::CreateForTesting() {
88 DCHECK(CalledOnUIThread()); 88 DCHECK(CalledOnUIThread());
89 SyncFileSystemBackend* backend = new SyncFileSystemBackend(NULL); 89 SyncFileSystemBackend* backend = new SyncFileSystemBackend(NULL);
90 backend->skip_initialize_syncfs_service_for_testing_ = true; 90 backend->skip_initialize_syncfs_service_for_testing_ = true;
91 return backend; 91 return backend;
92 } 92 }
93 93
94 bool SyncFileSystemBackend::CanHandleType( 94 bool SyncFileSystemBackend::CanHandleType(storage::FileSystemType type) const {
95 fileapi::FileSystemType type) const { 95 return type == storage::kFileSystemTypeSyncable ||
96 return type == fileapi::kFileSystemTypeSyncable || 96 type == storage::kFileSystemTypeSyncableForInternalSync;
97 type == fileapi::kFileSystemTypeSyncableForInternalSync;
98 } 97 }
99 98
100 void SyncFileSystemBackend::Initialize(fileapi::FileSystemContext* context) { 99 void SyncFileSystemBackend::Initialize(storage::FileSystemContext* context) {
101 DCHECK(context); 100 DCHECK(context);
102 DCHECK(!context_); 101 DCHECK(!context_);
103 context_ = context; 102 context_ = context;
104 103
105 fileapi::SandboxFileSystemBackendDelegate* delegate = GetDelegate(); 104 storage::SandboxFileSystemBackendDelegate* delegate = GetDelegate();
106 delegate->RegisterQuotaUpdateObserver(fileapi::kFileSystemTypeSyncable); 105 delegate->RegisterQuotaUpdateObserver(storage::kFileSystemTypeSyncable);
107 delegate->RegisterQuotaUpdateObserver( 106 delegate->RegisterQuotaUpdateObserver(
108 fileapi::kFileSystemTypeSyncableForInternalSync); 107 storage::kFileSystemTypeSyncableForInternalSync);
109 } 108 }
110 109
111 void SyncFileSystemBackend::ResolveURL(const fileapi::FileSystemURL& url, 110 void SyncFileSystemBackend::ResolveURL(const storage::FileSystemURL& url,
112 fileapi::OpenFileSystemMode mode, 111 storage::OpenFileSystemMode mode,
113 const OpenFileSystemCallback& callback) { 112 const OpenFileSystemCallback& callback) {
114 DCHECK(CanHandleType(url.type())); 113 DCHECK(CanHandleType(url.type()));
115 114
116 if (skip_initialize_syncfs_service_for_testing_) { 115 if (skip_initialize_syncfs_service_for_testing_) {
117 GetDelegate()->OpenFileSystem(url.origin(), 116 GetDelegate()->OpenFileSystem(url.origin(),
118 url.type(), 117 url.type(),
119 mode, 118 mode,
120 callback, 119 callback,
121 GetSyncableFileSystemRootURI(url.origin())); 120 GetSyncableFileSystemRootURI(url.origin()));
122 return; 121 return;
123 } 122 }
124 123
125 // It is safe to pass Unretained(this) since |context_| owns it. 124 // It is safe to pass Unretained(this) since |context_| owns it.
126 SyncStatusCallback initialize_callback = 125 SyncStatusCallback initialize_callback =
127 base::Bind(&SyncFileSystemBackend::DidInitializeSyncFileSystemService, 126 base::Bind(&SyncFileSystemBackend::DidInitializeSyncFileSystemService,
128 base::Unretained(this), 127 base::Unretained(this),
129 make_scoped_refptr(context_), 128 make_scoped_refptr(context_),
130 url.origin(), 129 url.origin(),
131 url.type(), 130 url.type(),
132 mode, 131 mode,
133 callback); 132 callback);
134 InitializeSyncFileSystemService(url.origin(), initialize_callback); 133 InitializeSyncFileSystemService(url.origin(), initialize_callback);
135 } 134 }
136 135
137 fileapi::AsyncFileUtil* SyncFileSystemBackend::GetAsyncFileUtil( 136 storage::AsyncFileUtil* SyncFileSystemBackend::GetAsyncFileUtil(
138 fileapi::FileSystemType type) { 137 storage::FileSystemType type) {
139 return GetDelegate()->file_util(); 138 return GetDelegate()->file_util();
140 } 139 }
141 140
142 fileapi::CopyOrMoveFileValidatorFactory* 141 storage::CopyOrMoveFileValidatorFactory*
143 SyncFileSystemBackend::GetCopyOrMoveFileValidatorFactory( 142 SyncFileSystemBackend::GetCopyOrMoveFileValidatorFactory(
144 fileapi::FileSystemType type, 143 storage::FileSystemType type,
145 base::File::Error* error_code) { 144 base::File::Error* error_code) {
146 DCHECK(error_code); 145 DCHECK(error_code);
147 *error_code = base::File::FILE_OK; 146 *error_code = base::File::FILE_OK;
148 return NULL; 147 return NULL;
149 } 148 }
150 149
151 fileapi::FileSystemOperation* 150 storage::FileSystemOperation* SyncFileSystemBackend::CreateFileSystemOperation(
152 SyncFileSystemBackend::CreateFileSystemOperation( 151 const storage::FileSystemURL& url,
153 const fileapi::FileSystemURL& url, 152 storage::FileSystemContext* context,
154 fileapi::FileSystemContext* context,
155 base::File::Error* error_code) const { 153 base::File::Error* error_code) const {
156 DCHECK(CanHandleType(url.type())); 154 DCHECK(CanHandleType(url.type()));
157 DCHECK(context); 155 DCHECK(context);
158 DCHECK(error_code); 156 DCHECK(error_code);
159 157
160 scoped_ptr<fileapi::FileSystemOperationContext> operation_context = 158 scoped_ptr<storage::FileSystemOperationContext> operation_context =
161 GetDelegate()->CreateFileSystemOperationContext(url, context, error_code); 159 GetDelegate()->CreateFileSystemOperationContext(url, context, error_code);
162 if (!operation_context) 160 if (!operation_context)
163 return NULL; 161 return NULL;
164 162
165 if (url.type() == fileapi::kFileSystemTypeSyncableForInternalSync) { 163 if (url.type() == storage::kFileSystemTypeSyncableForInternalSync) {
166 return fileapi::FileSystemOperation::Create( 164 return storage::FileSystemOperation::Create(
167 url, context, operation_context.Pass()); 165 url, context, operation_context.Pass());
168 } 166 }
169 167
170 return new SyncableFileSystemOperation( 168 return new SyncableFileSystemOperation(
171 url, context, operation_context.Pass()); 169 url, context, operation_context.Pass());
172 } 170 }
173 171
174 bool SyncFileSystemBackend::SupportsStreaming( 172 bool SyncFileSystemBackend::SupportsStreaming(
175 const fileapi::FileSystemURL& url) const { 173 const storage::FileSystemURL& url) const {
176 return false; 174 return false;
177 } 175 }
178 176
179 bool SyncFileSystemBackend::HasInplaceCopyImplementation( 177 bool SyncFileSystemBackend::HasInplaceCopyImplementation(
180 fileapi::FileSystemType type) const { 178 storage::FileSystemType type) const {
181 return false; 179 return false;
182 } 180 }
183 181
184 scoped_ptr<webkit_blob::FileStreamReader> 182 scoped_ptr<storage::FileStreamReader>
185 SyncFileSystemBackend::CreateFileStreamReader( 183 SyncFileSystemBackend::CreateFileStreamReader(
186 const fileapi::FileSystemURL& url, 184 const storage::FileSystemURL& url,
187 int64 offset, 185 int64 offset,
188 const base::Time& expected_modification_time, 186 const base::Time& expected_modification_time,
189 fileapi::FileSystemContext* context) const { 187 storage::FileSystemContext* context) const {
190 DCHECK(CanHandleType(url.type())); 188 DCHECK(CanHandleType(url.type()));
191 return GetDelegate()->CreateFileStreamReader( 189 return GetDelegate()->CreateFileStreamReader(
192 url, offset, expected_modification_time, context); 190 url, offset, expected_modification_time, context);
193 } 191 }
194 192
195 scoped_ptr<fileapi::FileStreamWriter> 193 scoped_ptr<storage::FileStreamWriter>
196 SyncFileSystemBackend::CreateFileStreamWriter( 194 SyncFileSystemBackend::CreateFileStreamWriter(
197 const fileapi::FileSystemURL& url, 195 const storage::FileSystemURL& url,
198 int64 offset, 196 int64 offset,
199 fileapi::FileSystemContext* context) const { 197 storage::FileSystemContext* context) const {
200 DCHECK(CanHandleType(url.type())); 198 DCHECK(CanHandleType(url.type()));
201 return GetDelegate()->CreateFileStreamWriter( 199 return GetDelegate()->CreateFileStreamWriter(
202 url, offset, context, fileapi::kFileSystemTypeSyncableForInternalSync); 200 url, offset, context, storage::kFileSystemTypeSyncableForInternalSync);
203 } 201 }
204 202
205 fileapi::FileSystemQuotaUtil* SyncFileSystemBackend::GetQuotaUtil() { 203 storage::FileSystemQuotaUtil* SyncFileSystemBackend::GetQuotaUtil() {
206 return GetDelegate(); 204 return GetDelegate();
207 } 205 }
208 206
209 // static 207 // static
210 SyncFileSystemBackend* SyncFileSystemBackend::GetBackend( 208 SyncFileSystemBackend* SyncFileSystemBackend::GetBackend(
211 const fileapi::FileSystemContext* file_system_context) { 209 const storage::FileSystemContext* file_system_context) {
212 DCHECK(file_system_context); 210 DCHECK(file_system_context);
213 return static_cast<SyncFileSystemBackend*>( 211 return static_cast<SyncFileSystemBackend*>(
214 file_system_context->GetFileSystemBackend( 212 file_system_context->GetFileSystemBackend(
215 fileapi::kFileSystemTypeSyncable)); 213 storage::kFileSystemTypeSyncable));
216 } 214 }
217 215
218 void SyncFileSystemBackend::SetLocalFileChangeTracker( 216 void SyncFileSystemBackend::SetLocalFileChangeTracker(
219 scoped_ptr<LocalFileChangeTracker> tracker) { 217 scoped_ptr<LocalFileChangeTracker> tracker) {
220 DCHECK(!change_tracker_); 218 DCHECK(!change_tracker_);
221 DCHECK(tracker); 219 DCHECK(tracker);
222 change_tracker_ = tracker.Pass(); 220 change_tracker_ = tracker.Pass();
223 221
224 fileapi::SandboxFileSystemBackendDelegate* delegate = GetDelegate(); 222 storage::SandboxFileSystemBackendDelegate* delegate = GetDelegate();
225 delegate->AddFileUpdateObserver( 223 delegate->AddFileUpdateObserver(storage::kFileSystemTypeSyncable,
226 fileapi::kFileSystemTypeSyncable, 224 change_tracker_.get(),
227 change_tracker_.get(), 225 delegate->file_task_runner());
228 delegate->file_task_runner()); 226 delegate->AddFileChangeObserver(storage::kFileSystemTypeSyncable,
229 delegate->AddFileChangeObserver( 227 change_tracker_.get(),
230 fileapi::kFileSystemTypeSyncable, 228 delegate->file_task_runner());
231 change_tracker_.get(),
232 delegate->file_task_runner());
233 } 229 }
234 230
235 void SyncFileSystemBackend::set_sync_context( 231 void SyncFileSystemBackend::set_sync_context(
236 LocalFileSyncContext* sync_context) { 232 LocalFileSyncContext* sync_context) {
237 DCHECK(!sync_context_); 233 DCHECK(!sync_context_);
238 sync_context_ = sync_context; 234 sync_context_ = sync_context;
239 } 235 }
240 236
241 fileapi::SandboxFileSystemBackendDelegate* 237 storage::SandboxFileSystemBackendDelegate* SyncFileSystemBackend::GetDelegate()
242 SyncFileSystemBackend::GetDelegate() const { 238 const {
243 DCHECK(context_); 239 DCHECK(context_);
244 DCHECK(context_->sandbox_delegate()); 240 DCHECK(context_->sandbox_delegate());
245 return context_->sandbox_delegate(); 241 return context_->sandbox_delegate();
246 } 242 }
247 243
248 void SyncFileSystemBackend::InitializeSyncFileSystemService( 244 void SyncFileSystemBackend::InitializeSyncFileSystemService(
249 const GURL& origin_url, 245 const GURL& origin_url,
250 const SyncStatusCallback& callback) { 246 const SyncStatusCallback& callback) {
251 // Repost to switch from IO thread to UI thread. 247 // Repost to switch from IO thread to UI thread.
252 if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) { 248 if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) {
(...skipping 12 matching lines...) Expand all
265 return; 261 return;
266 } 262 }
267 263
268 SyncFileSystemService* service = SyncFileSystemServiceFactory::GetForProfile( 264 SyncFileSystemService* service = SyncFileSystemServiceFactory::GetForProfile(
269 profile_holder_->GetProfile()); 265 profile_holder_->GetProfile());
270 DCHECK(service); 266 DCHECK(service);
271 service->InitializeForApp(context_, origin_url, callback); 267 service->InitializeForApp(context_, origin_url, callback);
272 } 268 }
273 269
274 void SyncFileSystemBackend::DidInitializeSyncFileSystemService( 270 void SyncFileSystemBackend::DidInitializeSyncFileSystemService(
275 fileapi::FileSystemContext* context, 271 storage::FileSystemContext* context,
276 const GURL& origin_url, 272 const GURL& origin_url,
277 fileapi::FileSystemType type, 273 storage::FileSystemType type,
278 fileapi::OpenFileSystemMode mode, 274 storage::OpenFileSystemMode mode,
279 const OpenFileSystemCallback& callback, 275 const OpenFileSystemCallback& callback,
280 SyncStatusCode status) { 276 SyncStatusCode status) {
281 // Repost to switch from UI thread to IO thread. 277 // Repost to switch from UI thread to IO thread.
282 if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) { 278 if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) {
283 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 279 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
284 // It is safe to pass Unretained(this) since |context| owns it. 280 // It is safe to pass Unretained(this) since |context| owns it.
285 BrowserThread::PostTask( 281 BrowserThread::PostTask(
286 BrowserThread::IO, FROM_HERE, 282 BrowserThread::IO, FROM_HERE,
287 base::Bind(&SyncFileSystemBackend::DidInitializeSyncFileSystemService, 283 base::Bind(&SyncFileSystemBackend::DidInitializeSyncFileSystemService,
288 base::Unretained(this), make_scoped_refptr(context), 284 base::Unretained(this), make_scoped_refptr(context),
289 origin_url, type, mode, callback, status)); 285 origin_url, type, mode, callback, status));
290 return; 286 return;
291 } 287 }
292 288
293 if (status != sync_file_system::SYNC_STATUS_OK) { 289 if (status != sync_file_system::SYNC_STATUS_OK) {
294 callback.Run(GURL(), std::string(), 290 callback.Run(GURL(), std::string(),
295 SyncStatusCodeToFileError(status)); 291 SyncStatusCodeToFileError(status));
296 return; 292 return;
297 } 293 }
298 294
299 callback.Run(GetSyncableFileSystemRootURI(origin_url), 295 callback.Run(GetSyncableFileSystemRootURI(origin_url),
300 GetFileSystemName(origin_url, type), 296 GetFileSystemName(origin_url, type),
301 base::File::FILE_OK); 297 base::File::FILE_OK);
302 } 298 }
303 299
304 } // namespace sync_file_system 300 } // namespace sync_file_system
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698