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

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

Issue 1115663002: [storage/browser/fileapi] Replace MessageLoopProxy usage with ThreadTaskRunnerHandle (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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 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 "storage/browser/fileapi/file_system_operation_runner.h" 5 #include "storage/browser/fileapi/file_system_operation_runner.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/message_loop/message_loop_proxy.h"
9 #include "base/stl_util.h" 8 #include "base/stl_util.h"
9 #include "base/thread_task_runner_handle.h"
10 #include "net/url_request/url_request_context.h" 10 #include "net/url_request/url_request_context.h"
11 #include "storage/browser/blob/blob_url_request_job_factory.h" 11 #include "storage/browser/blob/blob_url_request_job_factory.h"
12 #include "storage/browser/blob/shareable_file_reference.h" 12 #include "storage/browser/blob/shareable_file_reference.h"
13 #include "storage/browser/fileapi/file_observers.h" 13 #include "storage/browser/fileapi/file_observers.h"
14 #include "storage/browser/fileapi/file_stream_writer.h" 14 #include "storage/browser/fileapi/file_stream_writer.h"
15 #include "storage/browser/fileapi/file_system_context.h" 15 #include "storage/browser/fileapi/file_system_context.h"
16 #include "storage/browser/fileapi/file_system_operation.h" 16 #include "storage/browser/fileapi/file_system_operation.h"
17 #include "storage/browser/fileapi/file_writer_delegate.h" 17 #include "storage/browser/fileapi/file_writer_delegate.h"
18 18
19 namespace storage { 19 namespace storage {
(...skipping 487 matching lines...) Expand 10 before | Expand all | Expand 10 after
507 FileSystemOperationRunner::FileSystemOperationRunner( 507 FileSystemOperationRunner::FileSystemOperationRunner(
508 FileSystemContext* file_system_context) 508 FileSystemContext* file_system_context)
509 : file_system_context_(file_system_context) {} 509 : file_system_context_(file_system_context) {}
510 510
511 void FileSystemOperationRunner::DidFinish( 511 void FileSystemOperationRunner::DidFinish(
512 const OperationHandle& handle, 512 const OperationHandle& handle,
513 const StatusCallback& callback, 513 const StatusCallback& callback,
514 base::File::Error rv) { 514 base::File::Error rv) {
515 if (handle.scope) { 515 if (handle.scope) {
516 finished_operations_.insert(handle.id); 516 finished_operations_.insert(handle.id);
517 base::MessageLoopProxy::current()->PostTask( 517 base::ThreadTaskRunnerHandle::Get()->PostTask(
518 FROM_HERE, base::Bind(&FileSystemOperationRunner::DidFinish, 518 FROM_HERE, base::Bind(&FileSystemOperationRunner::DidFinish,
519 AsWeakPtr(), handle, callback, rv)); 519 AsWeakPtr(), handle, callback, rv));
520 return; 520 return;
521 } 521 }
522 callback.Run(rv); 522 callback.Run(rv);
523 FinishOperation(handle.id); 523 FinishOperation(handle.id);
524 } 524 }
525 525
526 void FileSystemOperationRunner::DidGetMetadata( 526 void FileSystemOperationRunner::DidGetMetadata(
527 const OperationHandle& handle, 527 const OperationHandle& handle,
528 const GetMetadataCallback& callback, 528 const GetMetadataCallback& callback,
529 base::File::Error rv, 529 base::File::Error rv,
530 const base::File::Info& file_info) { 530 const base::File::Info& file_info) {
531 if (handle.scope) { 531 if (handle.scope) {
532 finished_operations_.insert(handle.id); 532 finished_operations_.insert(handle.id);
533 base::MessageLoopProxy::current()->PostTask( 533 base::ThreadTaskRunnerHandle::Get()->PostTask(
534 FROM_HERE, base::Bind(&FileSystemOperationRunner::DidGetMetadata, 534 FROM_HERE, base::Bind(&FileSystemOperationRunner::DidGetMetadata,
535 AsWeakPtr(), handle, callback, rv, file_info)); 535 AsWeakPtr(), handle, callback, rv, file_info));
536 return; 536 return;
537 } 537 }
538 callback.Run(rv, file_info); 538 callback.Run(rv, file_info);
539 FinishOperation(handle.id); 539 FinishOperation(handle.id);
540 } 540 }
541 541
542 void FileSystemOperationRunner::DidReadDirectory( 542 void FileSystemOperationRunner::DidReadDirectory(
543 const OperationHandle& handle, 543 const OperationHandle& handle,
544 const ReadDirectoryCallback& callback, 544 const ReadDirectoryCallback& callback,
545 base::File::Error rv, 545 base::File::Error rv,
546 const std::vector<DirectoryEntry>& entries, 546 const std::vector<DirectoryEntry>& entries,
547 bool has_more) { 547 bool has_more) {
548 if (handle.scope) { 548 if (handle.scope) {
549 finished_operations_.insert(handle.id); 549 finished_operations_.insert(handle.id);
550 base::MessageLoopProxy::current()->PostTask( 550 base::ThreadTaskRunnerHandle::Get()->PostTask(
551 FROM_HERE, base::Bind(&FileSystemOperationRunner::DidReadDirectory, 551 FROM_HERE, base::Bind(&FileSystemOperationRunner::DidReadDirectory,
552 AsWeakPtr(), handle, callback, rv, 552 AsWeakPtr(), handle, callback, rv,
553 entries, has_more)); 553 entries, has_more));
554 return; 554 return;
555 } 555 }
556 callback.Run(rv, entries, has_more); 556 callback.Run(rv, entries, has_more);
557 if (rv != base::File::FILE_OK || !has_more) 557 if (rv != base::File::FILE_OK || !has_more)
558 FinishOperation(handle.id); 558 FinishOperation(handle.id);
559 } 559 }
560 560
561 void FileSystemOperationRunner::DidWrite( 561 void FileSystemOperationRunner::DidWrite(
562 const OperationHandle& handle, 562 const OperationHandle& handle,
563 const WriteCallback& callback, 563 const WriteCallback& callback,
564 base::File::Error rv, 564 base::File::Error rv,
565 int64 bytes, 565 int64 bytes,
566 bool complete) { 566 bool complete) {
567 if (handle.scope) { 567 if (handle.scope) {
568 finished_operations_.insert(handle.id); 568 finished_operations_.insert(handle.id);
569 base::MessageLoopProxy::current()->PostTask( 569 base::ThreadTaskRunnerHandle::Get()->PostTask(
570 FROM_HERE, base::Bind(&FileSystemOperationRunner::DidWrite, AsWeakPtr(), 570 FROM_HERE, base::Bind(&FileSystemOperationRunner::DidWrite, AsWeakPtr(),
571 handle, callback, rv, bytes, complete)); 571 handle, callback, rv, bytes, complete));
572 return; 572 return;
573 } 573 }
574 callback.Run(rv, bytes, complete); 574 callback.Run(rv, bytes, complete);
575 if (rv != base::File::FILE_OK || complete) 575 if (rv != base::File::FILE_OK || complete)
576 FinishOperation(handle.id); 576 FinishOperation(handle.id);
577 } 577 }
578 578
579 void FileSystemOperationRunner::DidOpenFile( 579 void FileSystemOperationRunner::DidOpenFile(
580 const OperationHandle& handle, 580 const OperationHandle& handle,
581 const OpenFileCallback& callback, 581 const OpenFileCallback& callback,
582 base::File file, 582 base::File file,
583 const base::Closure& on_close_callback) { 583 const base::Closure& on_close_callback) {
584 if (handle.scope) { 584 if (handle.scope) {
585 finished_operations_.insert(handle.id); 585 finished_operations_.insert(handle.id);
586 base::MessageLoopProxy::current()->PostTask( 586 base::ThreadTaskRunnerHandle::Get()->PostTask(
587 FROM_HERE, base::Bind(&FileSystemOperationRunner::DidOpenFile, 587 FROM_HERE, base::Bind(&FileSystemOperationRunner::DidOpenFile,
588 AsWeakPtr(), handle, callback, Passed(&file), 588 AsWeakPtr(), handle, callback, Passed(&file),
589 on_close_callback)); 589 on_close_callback));
590 return; 590 return;
591 } 591 }
592 callback.Run(file.Pass(), on_close_callback); 592 callback.Run(file.Pass(), on_close_callback);
593 FinishOperation(handle.id); 593 FinishOperation(handle.id);
594 } 594 }
595 595
596 void FileSystemOperationRunner::DidCreateSnapshot( 596 void FileSystemOperationRunner::DidCreateSnapshot(
597 const OperationHandle& handle, 597 const OperationHandle& handle,
598 const SnapshotFileCallback& callback, 598 const SnapshotFileCallback& callback,
599 base::File::Error rv, 599 base::File::Error rv,
600 const base::File::Info& file_info, 600 const base::File::Info& file_info,
601 const base::FilePath& platform_path, 601 const base::FilePath& platform_path,
602 const scoped_refptr<storage::ShareableFileReference>& file_ref) { 602 const scoped_refptr<storage::ShareableFileReference>& file_ref) {
603 if (handle.scope) { 603 if (handle.scope) {
604 finished_operations_.insert(handle.id); 604 finished_operations_.insert(handle.id);
605 base::MessageLoopProxy::current()->PostTask( 605 base::ThreadTaskRunnerHandle::Get()->PostTask(
606 FROM_HERE, base::Bind(&FileSystemOperationRunner::DidCreateSnapshot, 606 FROM_HERE, base::Bind(&FileSystemOperationRunner::DidCreateSnapshot,
607 AsWeakPtr(), handle, callback, rv, file_info, 607 AsWeakPtr(), handle, callback, rv, file_info,
608 platform_path, file_ref)); 608 platform_path, file_ref));
609 return; 609 return;
610 } 610 }
611 callback.Run(rv, file_info, platform_path, file_ref); 611 callback.Run(rv, file_info, platform_path, file_ref);
612 FinishOperation(handle.id); 612 FinishOperation(handle.id);
613 } 613 }
614 614
615 void FileSystemOperationRunner::OnCopyProgress( 615 void FileSystemOperationRunner::OnCopyProgress(
616 const OperationHandle& handle, 616 const OperationHandle& handle,
617 const CopyProgressCallback& callback, 617 const CopyProgressCallback& callback,
618 FileSystemOperation::CopyProgressType type, 618 FileSystemOperation::CopyProgressType type,
619 const FileSystemURL& source_url, 619 const FileSystemURL& source_url,
620 const FileSystemURL& dest_url, 620 const FileSystemURL& dest_url,
621 int64 size) { 621 int64 size) {
622 if (handle.scope) { 622 if (handle.scope) {
623 base::MessageLoopProxy::current()->PostTask( 623 base::ThreadTaskRunnerHandle::Get()->PostTask(
624 FROM_HERE, base::Bind( 624 FROM_HERE, base::Bind(
625 &FileSystemOperationRunner::OnCopyProgress, 625 &FileSystemOperationRunner::OnCopyProgress,
626 AsWeakPtr(), handle, callback, type, source_url, dest_url, size)); 626 AsWeakPtr(), handle, callback, type, source_url, dest_url, size));
627 return; 627 return;
628 } 628 }
629 callback.Run(type, source_url, dest_url, size); 629 callback.Run(type, source_url, dest_url, size);
630 } 630 }
631 631
632 void FileSystemOperationRunner::PrepareForWrite(OperationID id, 632 void FileSystemOperationRunner::PrepareForWrite(OperationID id,
633 const FileSystemURL& url) { 633 const FileSystemURL& url) {
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
681 stray_cancel_callbacks_.find(id); 681 stray_cancel_callbacks_.find(id);
682 if (found_cancel != stray_cancel_callbacks_.end()) { 682 if (found_cancel != stray_cancel_callbacks_.end()) {
683 // This cancel has been requested after the operation has finished, 683 // This cancel has been requested after the operation has finished,
684 // so report that we failed to stop it. 684 // so report that we failed to stop it.
685 found_cancel->second.Run(base::File::FILE_ERROR_INVALID_OPERATION); 685 found_cancel->second.Run(base::File::FILE_ERROR_INVALID_OPERATION);
686 stray_cancel_callbacks_.erase(found_cancel); 686 stray_cancel_callbacks_.erase(found_cancel);
687 } 687 }
688 } 688 }
689 689
690 } // namespace storage 690 } // namespace storage
OLDNEW
« no previous file with comments | « storage/browser/fileapi/file_system_context.cc ('k') | storage/browser/fileapi/isolated_file_system_backend.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698