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

Side by Side Diff: storage/browser/fileapi/file_system_context.cc

Issue 2890143004: Rename TaskRunner::RunsTasksOnCurrentThread() in //storage (Closed)
Patch Set: for Requirements Created 3 years, 7 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "storage/browser/fileapi/file_system_context.h" 5 #include "storage/browser/fileapi/file_system_context.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <memory> 10 #include <memory>
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 // Additional mount points must be added before regular system-wide 201 // Additional mount points must be added before regular system-wide
202 // mount points. 202 // mount points.
203 if (external_mount_points) 203 if (external_mount_points)
204 url_crackers_.push_back(external_mount_points); 204 url_crackers_.push_back(external_mount_points);
205 url_crackers_.push_back(ExternalMountPoints::GetSystemInstance()); 205 url_crackers_.push_back(ExternalMountPoints::GetSystemInstance());
206 url_crackers_.push_back(IsolatedContext::GetInstance()); 206 url_crackers_.push_back(IsolatedContext::GetInstance());
207 } 207 }
208 208
209 bool FileSystemContext::DeleteDataForOriginOnFileTaskRunner( 209 bool FileSystemContext::DeleteDataForOriginOnFileTaskRunner(
210 const GURL& origin_url) { 210 const GURL& origin_url) {
211 DCHECK(default_file_task_runner()->RunsTasksOnCurrentThread()); 211 DCHECK(default_file_task_runner()->RunsTasksInCurrentSequence());
212 DCHECK(origin_url == origin_url.GetOrigin()); 212 DCHECK(origin_url == origin_url.GetOrigin());
213 213
214 bool success = true; 214 bool success = true;
215 for (FileSystemBackendMap::iterator iter = backend_map_.begin(); 215 for (FileSystemBackendMap::iterator iter = backend_map_.begin();
216 iter != backend_map_.end(); 216 iter != backend_map_.end();
217 ++iter) { 217 ++iter) {
218 FileSystemBackend* backend = iter->second; 218 FileSystemBackend* backend = iter->second;
219 if (!backend->GetQuotaUtil()) 219 if (!backend->GetQuotaUtil())
220 continue; 220 continue;
221 if (backend->GetQuotaUtil()->DeleteOriginDataOnFileTaskRunner( 221 if (backend->GetQuotaUtil()->DeleteOriginDataOnFileTaskRunner(
222 this, quota_manager_proxy(), origin_url, iter->first) 222 this, quota_manager_proxy(), origin_url, iter->first)
223 != base::File::FILE_OK) { 223 != base::File::FILE_OK) {
224 // Continue the loop, but record the failure. 224 // Continue the loop, but record the failure.
225 success = false; 225 success = false;
226 } 226 }
227 } 227 }
228 228
229 return success; 229 return success;
230 } 230 }
231 231
232 scoped_refptr<QuotaReservation> 232 scoped_refptr<QuotaReservation>
233 FileSystemContext::CreateQuotaReservationOnFileTaskRunner( 233 FileSystemContext::CreateQuotaReservationOnFileTaskRunner(
234 const GURL& origin_url, 234 const GURL& origin_url,
235 FileSystemType type) { 235 FileSystemType type) {
236 DCHECK(default_file_task_runner()->RunsTasksOnCurrentThread()); 236 DCHECK(default_file_task_runner()->RunsTasksInCurrentSequence());
237 FileSystemBackend* backend = GetFileSystemBackend(type); 237 FileSystemBackend* backend = GetFileSystemBackend(type);
238 if (!backend || !backend->GetQuotaUtil()) 238 if (!backend || !backend->GetQuotaUtil())
239 return scoped_refptr<QuotaReservation>(); 239 return scoped_refptr<QuotaReservation>();
240 return backend->GetQuotaUtil()->CreateQuotaReservationOnFileTaskRunner( 240 return backend->GetQuotaUtil()->CreateQuotaReservationOnFileTaskRunner(
241 origin_url, type); 241 origin_url, type);
242 } 242 }
243 243
244 void FileSystemContext::Shutdown() { 244 void FileSystemContext::Shutdown() {
245 if (!io_task_runner_->RunsTasksOnCurrentThread()) { 245 if (!io_task_runner_->RunsTasksInCurrentSequence()) {
246 io_task_runner_->PostTask( 246 io_task_runner_->PostTask(
247 FROM_HERE, base::Bind(&FileSystemContext::Shutdown, 247 FROM_HERE, base::Bind(&FileSystemContext::Shutdown,
248 make_scoped_refptr(this))); 248 make_scoped_refptr(this)));
249 return; 249 return;
250 } 250 }
251 operation_runner_->Shutdown(); 251 operation_runner_->Shutdown();
252 } 252 }
253 253
254 FileSystemQuotaUtil* 254 FileSystemQuotaUtil*
255 FileSystemContext::GetQuotaUtil(FileSystemType type) const { 255 FileSystemContext::GetQuotaUtil(FileSystemType type) const {
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
331 FileSystemContext::external_backend() const { 331 FileSystemContext::external_backend() const {
332 return static_cast<ExternalFileSystemBackend*>( 332 return static_cast<ExternalFileSystemBackend*>(
333 GetFileSystemBackend(kFileSystemTypeExternal)); 333 GetFileSystemBackend(kFileSystemTypeExternal));
334 } 334 }
335 335
336 void FileSystemContext::OpenFileSystem( 336 void FileSystemContext::OpenFileSystem(
337 const GURL& origin_url, 337 const GURL& origin_url,
338 FileSystemType type, 338 FileSystemType type,
339 OpenFileSystemMode mode, 339 OpenFileSystemMode mode,
340 const OpenFileSystemCallback& callback) { 340 const OpenFileSystemCallback& callback) {
341 DCHECK(io_task_runner_->RunsTasksOnCurrentThread()); 341 DCHECK(io_task_runner_->RunsTasksInCurrentSequence());
342 DCHECK(!callback.is_null()); 342 DCHECK(!callback.is_null());
343 343
344 if (!FileSystemContext::IsSandboxFileSystem(type)) { 344 if (!FileSystemContext::IsSandboxFileSystem(type)) {
345 // Disallow opening a non-sandboxed filesystem. 345 // Disallow opening a non-sandboxed filesystem.
346 callback.Run(GURL(), std::string(), base::File::FILE_ERROR_SECURITY); 346 callback.Run(GURL(), std::string(), base::File::FILE_ERROR_SECURITY);
347 return; 347 return;
348 } 348 }
349 349
350 FileSystemBackend* backend = GetFileSystemBackend(type); 350 FileSystemBackend* backend = GetFileSystemBackend(type);
351 if (!backend) { 351 if (!backend) {
352 callback.Run(GURL(), std::string(), base::File::FILE_ERROR_SECURITY); 352 callback.Run(GURL(), std::string(), base::File::FILE_ERROR_SECURITY);
353 return; 353 return;
354 } 354 }
355 355
356 backend->ResolveURL( 356 backend->ResolveURL(
357 CreateCrackedFileSystemURL(origin_url, type, base::FilePath()), 357 CreateCrackedFileSystemURL(origin_url, type, base::FilePath()),
358 mode, 358 mode,
359 callback); 359 callback);
360 } 360 }
361 361
362 void FileSystemContext::ResolveURL( 362 void FileSystemContext::ResolveURL(
363 const FileSystemURL& url, 363 const FileSystemURL& url,
364 const ResolveURLCallback& callback) { 364 const ResolveURLCallback& callback) {
365 DCHECK(!callback.is_null()); 365 DCHECK(!callback.is_null());
366 366
367 // If not on IO thread, forward before passing the task to the backend. 367 // If not on IO thread, forward before passing the task to the backend.
368 if (!io_task_runner_->RunsTasksOnCurrentThread()) { 368 if (!io_task_runner_->RunsTasksInCurrentSequence()) {
369 ResolveURLCallback relay_callback = 369 ResolveURLCallback relay_callback =
370 base::Bind(&RelayResolveURLCallback, 370 base::Bind(&RelayResolveURLCallback,
371 base::ThreadTaskRunnerHandle::Get(), callback); 371 base::ThreadTaskRunnerHandle::Get(), callback);
372 io_task_runner_->PostTask( 372 io_task_runner_->PostTask(
373 FROM_HERE, 373 FROM_HERE,
374 base::Bind(&FileSystemContext::ResolveURL, this, url, relay_callback)); 374 base::Bind(&FileSystemContext::ResolveURL, this, url, relay_callback));
375 return; 375 return;
376 } 376 }
377 377
378 FileSystemBackend* backend = GetFileSystemBackend(url.type()); 378 FileSystemBackend* backend = GetFileSystemBackend(url.type());
(...skipping 26 matching lines...) Expand all
405 } 405 }
406 } 406 }
407 } 407 }
408 callback.Run(base::File::FILE_ERROR_NOT_FOUND); 408 callback.Run(base::File::FILE_ERROR_NOT_FOUND);
409 } 409 }
410 410
411 void FileSystemContext::DeleteFileSystem( 411 void FileSystemContext::DeleteFileSystem(
412 const GURL& origin_url, 412 const GURL& origin_url,
413 FileSystemType type, 413 FileSystemType type,
414 const StatusCallback& callback) { 414 const StatusCallback& callback) {
415 DCHECK(io_task_runner_->RunsTasksOnCurrentThread()); 415 DCHECK(io_task_runner_->RunsTasksInCurrentSequence());
416 DCHECK(origin_url == origin_url.GetOrigin()); 416 DCHECK(origin_url == origin_url.GetOrigin());
417 DCHECK(!callback.is_null()); 417 DCHECK(!callback.is_null());
418 418
419 FileSystemBackend* backend = GetFileSystemBackend(type); 419 FileSystemBackend* backend = GetFileSystemBackend(type);
420 if (!backend) { 420 if (!backend) {
421 callback.Run(base::File::FILE_ERROR_SECURITY); 421 callback.Run(base::File::FILE_ERROR_SECURITY);
422 return; 422 return;
423 } 423 }
424 if (!backend->GetQuotaUtil()) { 424 if (!backend->GetQuotaUtil()) {
425 callback.Run(base::File::FILE_ERROR_INVALID_OPERATION); 425 callback.Run(base::File::FILE_ERROR_INVALID_OPERATION);
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 OpenFileSystemMode mode, 503 OpenFileSystemMode mode,
504 const StatusCallback& callback) { 504 const StatusCallback& callback) {
505 DCHECK(plugin_private_backend_); 505 DCHECK(plugin_private_backend_);
506 plugin_private_backend_->OpenPrivateFileSystem( 506 plugin_private_backend_->OpenPrivateFileSystem(
507 origin_url, type, filesystem_id, plugin_id, mode, callback); 507 origin_url, type, filesystem_id, plugin_id, mode, callback);
508 } 508 }
509 509
510 FileSystemContext::~FileSystemContext() { 510 FileSystemContext::~FileSystemContext() {
511 } 511 }
512 512
513 void FileSystemContext::DeleteOnCorrectThread() const { 513 void FileSystemContext::DeleteOnCorrectSequence() const {
514 if (!io_task_runner_->RunsTasksOnCurrentThread() && 514 if (!io_task_runner_->RunsTasksInCurrentSequence() &&
515 io_task_runner_->DeleteSoon(FROM_HERE, this)) { 515 io_task_runner_->DeleteSoon(FROM_HERE, this)) {
516 return; 516 return;
517 } 517 }
518 delete this; 518 delete this;
519 } 519 }
520 520
521 FileSystemOperation* FileSystemContext::CreateFileSystemOperation( 521 FileSystemOperation* FileSystemContext::CreateFileSystemOperation(
522 const FileSystemURL& url, base::File::Error* error_code) { 522 const FileSystemURL& url, base::File::Error* error_code) {
523 if (!url.is_valid()) { 523 if (!url.is_valid()) {
524 if (error_code) 524 if (error_code)
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
595 } 595 }
596 } 596 }
597 } 597 }
598 598
599 void FileSystemContext::DidOpenFileSystemForResolveURL( 599 void FileSystemContext::DidOpenFileSystemForResolveURL(
600 const FileSystemURL& url, 600 const FileSystemURL& url,
601 const FileSystemContext::ResolveURLCallback& callback, 601 const FileSystemContext::ResolveURLCallback& callback,
602 const GURL& filesystem_root, 602 const GURL& filesystem_root,
603 const std::string& filesystem_name, 603 const std::string& filesystem_name,
604 base::File::Error error) { 604 base::File::Error error) {
605 DCHECK(io_task_runner_->RunsTasksOnCurrentThread()); 605 DCHECK(io_task_runner_->RunsTasksInCurrentSequence());
606 606
607 if (error != base::File::FILE_OK) { 607 if (error != base::File::FILE_OK) {
608 callback.Run(error, FileSystemInfo(), base::FilePath(), 608 callback.Run(error, FileSystemInfo(), base::FilePath(),
609 FileSystemContext::RESOLVED_ENTRY_NOT_FOUND); 609 FileSystemContext::RESOLVED_ENTRY_NOT_FOUND);
610 return; 610 return;
611 } 611 }
612 612
613 storage::FileSystemInfo info( 613 storage::FileSystemInfo info(
614 filesystem_name, filesystem_root, url.mount_type()); 614 filesystem_name, filesystem_root, url.mount_type());
615 615
(...skipping 11 matching lines...) Expand all
627 627
628 // TODO(mtomasz): Not all fields should be required for ResolveURL. 628 // TODO(mtomasz): Not all fields should be required for ResolveURL.
629 operation_runner()->GetMetadata( 629 operation_runner()->GetMetadata(
630 url, FileSystemOperation::GET_METADATA_FIELD_IS_DIRECTORY | 630 url, FileSystemOperation::GET_METADATA_FIELD_IS_DIRECTORY |
631 FileSystemOperation::GET_METADATA_FIELD_SIZE | 631 FileSystemOperation::GET_METADATA_FIELD_SIZE |
632 FileSystemOperation::GET_METADATA_FIELD_LAST_MODIFIED, 632 FileSystemOperation::GET_METADATA_FIELD_LAST_MODIFIED,
633 base::Bind(&DidGetMetadataForResolveURL, path, callback, info)); 633 base::Bind(&DidGetMetadataForResolveURL, path, callback, info));
634 } 634 }
635 635
636 } // namespace storage 636 } // namespace storage
OLDNEW
« no previous file with comments | « storage/browser/fileapi/file_system_context.h ('k') | storage/browser/fileapi/file_system_usage_cache.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698