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

Side by Side Diff: content/child/fileapi/webfilesystem_impl.cc

Issue 1815363002: Add RetainedRef uses where needed. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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 "content/child/fileapi/webfilesystem_impl.h" 5 #include "content/child/fileapi/webfilesystem_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/lazy_instance.h" 10 #include "base/lazy_instance.h"
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 96
97 template <typename Method, typename Params> 97 template <typename Method, typename Params>
98 void CallDispatcherOnMainThread( 98 void CallDispatcherOnMainThread(
99 const scoped_refptr<base::SingleThreadTaskRunner>& main_thread_task_runner, 99 const scoped_refptr<base::SingleThreadTaskRunner>& main_thread_task_runner,
100 Method method, const Params& params, 100 Method method, const Params& params,
101 WaitableCallbackResults* waitable_results) { 101 WaitableCallbackResults* waitable_results) {
102 if (!main_thread_task_runner->RunsTasksOnCurrentThread()) { 102 if (!main_thread_task_runner->RunsTasksOnCurrentThread()) {
103 main_thread_task_runner->PostTask( 103 main_thread_task_runner->PostTask(
104 FROM_HERE, 104 FROM_HERE,
105 base::Bind(&CallDispatcherOnMainThread<Method, Params>, 105 base::Bind(&CallDispatcherOnMainThread<Method, Params>,
106 main_thread_task_runner, method, params, 106 main_thread_task_runner, method, params, nullptr));
107 scoped_refptr<WaitableCallbackResults>()));
108 if (!waitable_results) 107 if (!waitable_results)
109 return; 108 return;
110 waitable_results->WaitAndRun(); 109 waitable_results->WaitAndRun();
111 } 110 }
112 if (!ChildThreadImpl::current() || 111 if (!ChildThreadImpl::current() ||
113 !ChildThreadImpl::current()->file_system_dispatcher()) 112 !ChildThreadImpl::current()->file_system_dispatcher())
114 return; 113 return;
115 114
116 DCHECK(!waitable_results); 115 DCHECK(!waitable_results);
117 DispatchToMethod(ChildThreadImpl::current()->file_system_dispatcher(), 116 DispatchToMethod(ChildThreadImpl::current()->file_system_dispatcher(),
(...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after
417 WebFileSystemCallbacks callbacks) { 416 WebFileSystemCallbacks callbacks) {
418 int callbacks_id = RegisterCallbacks(callbacks); 417 int callbacks_id = RegisterCallbacks(callbacks);
419 scoped_refptr<WaitableCallbackResults> waitable_results = 418 scoped_refptr<WaitableCallbackResults> waitable_results =
420 MaybeCreateWaitableResults(callbacks, callbacks_id); 419 MaybeCreateWaitableResults(callbacks, callbacks_id);
421 CallDispatcherOnMainThread( 420 CallDispatcherOnMainThread(
422 main_thread_task_runner_, &FileSystemDispatcher::OpenFileSystem, 421 main_thread_task_runner_, &FileSystemDispatcher::OpenFileSystem,
423 MakeTuple(GURL(storage_partition), 422 MakeTuple(GURL(storage_partition),
424 static_cast<storage::FileSystemType>(type), 423 static_cast<storage::FileSystemType>(type),
425 base::Bind(&OpenFileSystemCallbackAdapter, 424 base::Bind(&OpenFileSystemCallbackAdapter,
426 base::ThreadTaskRunnerHandle::Get(), callbacks_id, 425 base::ThreadTaskRunnerHandle::Get(), callbacks_id,
427 waitable_results), 426 base::RetainedRef(waitable_results)),
428 base::Bind(&StatusCallbackAdapter, 427 base::Bind(&StatusCallbackAdapter,
429 base::ThreadTaskRunnerHandle::Get(), callbacks_id, 428 base::ThreadTaskRunnerHandle::Get(), callbacks_id,
430 waitable_results)), 429 base::RetainedRef(waitable_results))),
431 waitable_results.get()); 430 waitable_results.get());
432 } 431 }
433 432
434 void WebFileSystemImpl::resolveURL( 433 void WebFileSystemImpl::resolveURL(
435 const blink::WebURL& filesystem_url, 434 const blink::WebURL& filesystem_url,
436 WebFileSystemCallbacks callbacks) { 435 WebFileSystemCallbacks callbacks) {
437 int callbacks_id = RegisterCallbacks(callbacks); 436 int callbacks_id = RegisterCallbacks(callbacks);
438 scoped_refptr<WaitableCallbackResults> waitable_results = 437 scoped_refptr<WaitableCallbackResults> waitable_results =
439 MaybeCreateWaitableResults(callbacks, callbacks_id); 438 MaybeCreateWaitableResults(callbacks, callbacks_id);
440 CallDispatcherOnMainThread( 439 CallDispatcherOnMainThread(
441 main_thread_task_runner_, &FileSystemDispatcher::ResolveURL, 440 main_thread_task_runner_, &FileSystemDispatcher::ResolveURL,
442 MakeTuple(GURL(filesystem_url), 441 MakeTuple(GURL(filesystem_url),
443 base::Bind(&ResolveURLCallbackAdapter, 442 base::Bind(&ResolveURLCallbackAdapter,
444 base::ThreadTaskRunnerHandle::Get(), callbacks_id, 443 base::ThreadTaskRunnerHandle::Get(), callbacks_id,
445 waitable_results), 444 base::RetainedRef(waitable_results)),
446 base::Bind(&StatusCallbackAdapter, 445 base::Bind(&StatusCallbackAdapter,
447 base::ThreadTaskRunnerHandle::Get(), callbacks_id, 446 base::ThreadTaskRunnerHandle::Get(), callbacks_id,
448 waitable_results)), 447 base::RetainedRef(waitable_results))),
449 waitable_results.get()); 448 waitable_results.get());
450 } 449 }
451 450
452 void WebFileSystemImpl::deleteFileSystem( 451 void WebFileSystemImpl::deleteFileSystem(
453 const blink::WebURL& storage_partition, 452 const blink::WebURL& storage_partition,
454 blink::WebFileSystemType type, 453 blink::WebFileSystemType type,
455 WebFileSystemCallbacks callbacks) { 454 WebFileSystemCallbacks callbacks) {
456 int callbacks_id = RegisterCallbacks(callbacks); 455 int callbacks_id = RegisterCallbacks(callbacks);
457 scoped_refptr<WaitableCallbackResults> waitable_results = 456 scoped_refptr<WaitableCallbackResults> waitable_results =
458 MaybeCreateWaitableResults(callbacks, callbacks_id); 457 MaybeCreateWaitableResults(callbacks, callbacks_id);
459 CallDispatcherOnMainThread( 458 CallDispatcherOnMainThread(
460 main_thread_task_runner_, &FileSystemDispatcher::DeleteFileSystem, 459 main_thread_task_runner_, &FileSystemDispatcher::DeleteFileSystem,
461 MakeTuple(GURL(storage_partition), 460 MakeTuple(GURL(storage_partition),
462 static_cast<storage::FileSystemType>(type), 461 static_cast<storage::FileSystemType>(type),
463 base::Bind(&StatusCallbackAdapter, 462 base::Bind(&StatusCallbackAdapter,
464 base::ThreadTaskRunnerHandle::Get(), callbacks_id, 463 base::ThreadTaskRunnerHandle::Get(), callbacks_id,
465 waitable_results)), 464 base::RetainedRef(waitable_results))),
466 waitable_results.get()); 465 waitable_results.get());
467 } 466 }
468 467
469 void WebFileSystemImpl::move( 468 void WebFileSystemImpl::move(
470 const blink::WebURL& src_path, 469 const blink::WebURL& src_path,
471 const blink::WebURL& dest_path, 470 const blink::WebURL& dest_path,
472 WebFileSystemCallbacks callbacks) { 471 WebFileSystemCallbacks callbacks) {
473 int callbacks_id = RegisterCallbacks(callbacks); 472 int callbacks_id = RegisterCallbacks(callbacks);
474 scoped_refptr<WaitableCallbackResults> waitable_results = 473 scoped_refptr<WaitableCallbackResults> waitable_results =
475 MaybeCreateWaitableResults(callbacks, callbacks_id); 474 MaybeCreateWaitableResults(callbacks, callbacks_id);
476 CallDispatcherOnMainThread( 475 CallDispatcherOnMainThread(
477 main_thread_task_runner_, &FileSystemDispatcher::Move, 476 main_thread_task_runner_, &FileSystemDispatcher::Move,
478 MakeTuple(GURL(src_path), GURL(dest_path), 477 MakeTuple(GURL(src_path), GURL(dest_path),
479 base::Bind(&StatusCallbackAdapter, 478 base::Bind(&StatusCallbackAdapter,
480 base::ThreadTaskRunnerHandle::Get(), callbacks_id, 479 base::ThreadTaskRunnerHandle::Get(), callbacks_id,
481 waitable_results)), 480 base::RetainedRef(waitable_results))),
482 waitable_results.get()); 481 waitable_results.get());
483 } 482 }
484 483
485 void WebFileSystemImpl::copy( 484 void WebFileSystemImpl::copy(
486 const blink::WebURL& src_path, 485 const blink::WebURL& src_path,
487 const blink::WebURL& dest_path, 486 const blink::WebURL& dest_path,
488 WebFileSystemCallbacks callbacks) { 487 WebFileSystemCallbacks callbacks) {
489 int callbacks_id = RegisterCallbacks(callbacks); 488 int callbacks_id = RegisterCallbacks(callbacks);
490 scoped_refptr<WaitableCallbackResults> waitable_results = 489 scoped_refptr<WaitableCallbackResults> waitable_results =
491 MaybeCreateWaitableResults(callbacks, callbacks_id); 490 MaybeCreateWaitableResults(callbacks, callbacks_id);
492 CallDispatcherOnMainThread( 491 CallDispatcherOnMainThread(
493 main_thread_task_runner_, &FileSystemDispatcher::Copy, 492 main_thread_task_runner_, &FileSystemDispatcher::Copy,
494 MakeTuple(GURL(src_path), GURL(dest_path), 493 MakeTuple(GURL(src_path), GURL(dest_path),
495 base::Bind(&StatusCallbackAdapter, 494 base::Bind(&StatusCallbackAdapter,
496 base::ThreadTaskRunnerHandle::Get(), callbacks_id, 495 base::ThreadTaskRunnerHandle::Get(), callbacks_id,
497 waitable_results)), 496 base::RetainedRef(waitable_results))),
498 waitable_results.get()); 497 waitable_results.get());
499 } 498 }
500 499
501 void WebFileSystemImpl::remove( 500 void WebFileSystemImpl::remove(
502 const blink::WebURL& path, 501 const blink::WebURL& path,
503 WebFileSystemCallbacks callbacks) { 502 WebFileSystemCallbacks callbacks) {
504 int callbacks_id = RegisterCallbacks(callbacks); 503 int callbacks_id = RegisterCallbacks(callbacks);
505 scoped_refptr<WaitableCallbackResults> waitable_results = 504 scoped_refptr<WaitableCallbackResults> waitable_results =
506 MaybeCreateWaitableResults(callbacks, callbacks_id); 505 MaybeCreateWaitableResults(callbacks, callbacks_id);
507 CallDispatcherOnMainThread( 506 CallDispatcherOnMainThread(
508 main_thread_task_runner_, &FileSystemDispatcher::Remove, 507 main_thread_task_runner_, &FileSystemDispatcher::Remove,
509 MakeTuple(GURL(path), false /* recursive */, 508 MakeTuple(GURL(path), false /* recursive */,
510 base::Bind(&StatusCallbackAdapter, 509 base::Bind(&StatusCallbackAdapter,
511 base::ThreadTaskRunnerHandle::Get(), callbacks_id, 510 base::ThreadTaskRunnerHandle::Get(), callbacks_id,
512 waitable_results)), 511 base::RetainedRef(waitable_results))),
513 waitable_results.get()); 512 waitable_results.get());
514 } 513 }
515 514
516 void WebFileSystemImpl::removeRecursively( 515 void WebFileSystemImpl::removeRecursively(
517 const blink::WebURL& path, 516 const blink::WebURL& path,
518 WebFileSystemCallbacks callbacks) { 517 WebFileSystemCallbacks callbacks) {
519 int callbacks_id = RegisterCallbacks(callbacks); 518 int callbacks_id = RegisterCallbacks(callbacks);
520 scoped_refptr<WaitableCallbackResults> waitable_results = 519 scoped_refptr<WaitableCallbackResults> waitable_results =
521 MaybeCreateWaitableResults(callbacks, callbacks_id); 520 MaybeCreateWaitableResults(callbacks, callbacks_id);
522 CallDispatcherOnMainThread( 521 CallDispatcherOnMainThread(
523 main_thread_task_runner_, &FileSystemDispatcher::Remove, 522 main_thread_task_runner_, &FileSystemDispatcher::Remove,
524 MakeTuple(GURL(path), true /* recursive */, 523 MakeTuple(GURL(path), true /* recursive */,
525 base::Bind(&StatusCallbackAdapter, 524 base::Bind(&StatusCallbackAdapter,
526 base::ThreadTaskRunnerHandle::Get(), callbacks_id, 525 base::ThreadTaskRunnerHandle::Get(), callbacks_id,
527 waitable_results)), 526 base::RetainedRef(waitable_results))),
528 waitable_results.get()); 527 waitable_results.get());
529 } 528 }
530 529
531 void WebFileSystemImpl::readMetadata( 530 void WebFileSystemImpl::readMetadata(
532 const blink::WebURL& path, 531 const blink::WebURL& path,
533 WebFileSystemCallbacks callbacks) { 532 WebFileSystemCallbacks callbacks) {
534 int callbacks_id = RegisterCallbacks(callbacks); 533 int callbacks_id = RegisterCallbacks(callbacks);
535 scoped_refptr<WaitableCallbackResults> waitable_results = 534 scoped_refptr<WaitableCallbackResults> waitable_results =
536 MaybeCreateWaitableResults(callbacks, callbacks_id); 535 MaybeCreateWaitableResults(callbacks, callbacks_id);
537 CallDispatcherOnMainThread( 536 CallDispatcherOnMainThread(
538 main_thread_task_runner_, &FileSystemDispatcher::ReadMetadata, 537 main_thread_task_runner_, &FileSystemDispatcher::ReadMetadata,
539 MakeTuple(GURL(path), base::Bind(&ReadMetadataCallbackAdapter, 538 MakeTuple(GURL(path),
540 base::ThreadTaskRunnerHandle::Get(), 539 base::Bind(&ReadMetadataCallbackAdapter,
541 callbacks_id, waitable_results), 540 base::ThreadTaskRunnerHandle::Get(), callbacks_id,
541 base::RetainedRef(waitable_results)),
542 base::Bind(&StatusCallbackAdapter, 542 base::Bind(&StatusCallbackAdapter,
543 base::ThreadTaskRunnerHandle::Get(), callbacks_id, 543 base::ThreadTaskRunnerHandle::Get(), callbacks_id,
544 waitable_results)), 544 base::RetainedRef(waitable_results))),
545 waitable_results.get()); 545 waitable_results.get());
546 } 546 }
547 547
548 void WebFileSystemImpl::createFile( 548 void WebFileSystemImpl::createFile(
549 const blink::WebURL& path, 549 const blink::WebURL& path,
550 bool exclusive, 550 bool exclusive,
551 WebFileSystemCallbacks callbacks) { 551 WebFileSystemCallbacks callbacks) {
552 int callbacks_id = RegisterCallbacks(callbacks); 552 int callbacks_id = RegisterCallbacks(callbacks);
553 scoped_refptr<WaitableCallbackResults> waitable_results = 553 scoped_refptr<WaitableCallbackResults> waitable_results =
554 MaybeCreateWaitableResults(callbacks, callbacks_id); 554 MaybeCreateWaitableResults(callbacks, callbacks_id);
555 CallDispatcherOnMainThread( 555 CallDispatcherOnMainThread(
556 main_thread_task_runner_, &FileSystemDispatcher::CreateFile, 556 main_thread_task_runner_, &FileSystemDispatcher::CreateFile,
557 MakeTuple(GURL(path), exclusive, 557 MakeTuple(GURL(path), exclusive,
558 base::Bind(&StatusCallbackAdapter, 558 base::Bind(&StatusCallbackAdapter,
559 base::ThreadTaskRunnerHandle::Get(), callbacks_id, 559 base::ThreadTaskRunnerHandle::Get(), callbacks_id,
560 waitable_results)), 560 base::RetainedRef(waitable_results))),
561 waitable_results.get()); 561 waitable_results.get());
562 } 562 }
563 563
564 void WebFileSystemImpl::createDirectory( 564 void WebFileSystemImpl::createDirectory(
565 const blink::WebURL& path, 565 const blink::WebURL& path,
566 bool exclusive, 566 bool exclusive,
567 WebFileSystemCallbacks callbacks) { 567 WebFileSystemCallbacks callbacks) {
568 int callbacks_id = RegisterCallbacks(callbacks); 568 int callbacks_id = RegisterCallbacks(callbacks);
569 scoped_refptr<WaitableCallbackResults> waitable_results = 569 scoped_refptr<WaitableCallbackResults> waitable_results =
570 MaybeCreateWaitableResults(callbacks, callbacks_id); 570 MaybeCreateWaitableResults(callbacks, callbacks_id);
571 CallDispatcherOnMainThread( 571 CallDispatcherOnMainThread(
572 main_thread_task_runner_, &FileSystemDispatcher::CreateDirectory, 572 main_thread_task_runner_, &FileSystemDispatcher::CreateDirectory,
573 MakeTuple(GURL(path), exclusive, false /* recursive */, 573 MakeTuple(GURL(path), exclusive, false /* recursive */,
574 base::Bind(&StatusCallbackAdapter, 574 base::Bind(&StatusCallbackAdapter,
575 base::ThreadTaskRunnerHandle::Get(), callbacks_id, 575 base::ThreadTaskRunnerHandle::Get(), callbacks_id,
576 waitable_results)), 576 base::RetainedRef(waitable_results))),
577 waitable_results.get()); 577 waitable_results.get());
578 } 578 }
579 579
580 void WebFileSystemImpl::fileExists( 580 void WebFileSystemImpl::fileExists(
581 const blink::WebURL& path, 581 const blink::WebURL& path,
582 WebFileSystemCallbacks callbacks) { 582 WebFileSystemCallbacks callbacks) {
583 int callbacks_id = RegisterCallbacks(callbacks); 583 int callbacks_id = RegisterCallbacks(callbacks);
584 scoped_refptr<WaitableCallbackResults> waitable_results = 584 scoped_refptr<WaitableCallbackResults> waitable_results =
585 MaybeCreateWaitableResults(callbacks, callbacks_id); 585 MaybeCreateWaitableResults(callbacks, callbacks_id);
586 CallDispatcherOnMainThread( 586 CallDispatcherOnMainThread(
587 main_thread_task_runner_, &FileSystemDispatcher::Exists, 587 main_thread_task_runner_, &FileSystemDispatcher::Exists,
588 MakeTuple(GURL(path), false /* directory */, 588 MakeTuple(GURL(path), false /* directory */,
589 base::Bind(&StatusCallbackAdapter, 589 base::Bind(&StatusCallbackAdapter,
590 base::ThreadTaskRunnerHandle::Get(), callbacks_id, 590 base::ThreadTaskRunnerHandle::Get(), callbacks_id,
591 waitable_results)), 591 base::RetainedRef(waitable_results))),
592 waitable_results.get()); 592 waitable_results.get());
593 } 593 }
594 594
595 void WebFileSystemImpl::directoryExists( 595 void WebFileSystemImpl::directoryExists(
596 const blink::WebURL& path, 596 const blink::WebURL& path,
597 WebFileSystemCallbacks callbacks) { 597 WebFileSystemCallbacks callbacks) {
598 int callbacks_id = RegisterCallbacks(callbacks); 598 int callbacks_id = RegisterCallbacks(callbacks);
599 scoped_refptr<WaitableCallbackResults> waitable_results = 599 scoped_refptr<WaitableCallbackResults> waitable_results =
600 MaybeCreateWaitableResults(callbacks, callbacks_id); 600 MaybeCreateWaitableResults(callbacks, callbacks_id);
601 CallDispatcherOnMainThread( 601 CallDispatcherOnMainThread(
602 main_thread_task_runner_, &FileSystemDispatcher::Exists, 602 main_thread_task_runner_, &FileSystemDispatcher::Exists,
603 MakeTuple(GURL(path), true /* directory */, 603 MakeTuple(GURL(path), true /* directory */,
604 base::Bind(&StatusCallbackAdapter, 604 base::Bind(&StatusCallbackAdapter,
605 base::ThreadTaskRunnerHandle::Get(), callbacks_id, 605 base::ThreadTaskRunnerHandle::Get(), callbacks_id,
606 waitable_results)), 606 base::RetainedRef(waitable_results))),
607 waitable_results.get()); 607 waitable_results.get());
608 } 608 }
609 609
610 int WebFileSystemImpl::readDirectory( 610 int WebFileSystemImpl::readDirectory(
611 const blink::WebURL& path, 611 const blink::WebURL& path,
612 WebFileSystemCallbacks callbacks) { 612 WebFileSystemCallbacks callbacks) {
613 int callbacks_id = RegisterCallbacks(callbacks); 613 int callbacks_id = RegisterCallbacks(callbacks);
614 scoped_refptr<WaitableCallbackResults> waitable_results = 614 scoped_refptr<WaitableCallbackResults> waitable_results =
615 MaybeCreateWaitableResults(callbacks, callbacks_id); 615 MaybeCreateWaitableResults(callbacks, callbacks_id);
616 CallDispatcherOnMainThread( 616 CallDispatcherOnMainThread(
617 main_thread_task_runner_, &FileSystemDispatcher::ReadDirectory, 617 main_thread_task_runner_, &FileSystemDispatcher::ReadDirectory,
618 MakeTuple(GURL(path), base::Bind(&ReadDirectoryCallbackAdapter, 618 MakeTuple(GURL(path),
619 base::ThreadTaskRunnerHandle::Get(), 619 base::Bind(&ReadDirectoryCallbackAdapter,
620 callbacks_id, waitable_results), 620 base::ThreadTaskRunnerHandle::Get(), callbacks_id,
621 base::RetainedRef(waitable_results)),
621 base::Bind(&StatusCallbackAdapter, 622 base::Bind(&StatusCallbackAdapter,
622 base::ThreadTaskRunnerHandle::Get(), callbacks_id, 623 base::ThreadTaskRunnerHandle::Get(), callbacks_id,
623 waitable_results)), 624 base::RetainedRef(waitable_results))),
624 waitable_results.get()); 625 waitable_results.get());
625 return callbacks_id; 626 return callbacks_id;
626 } 627 }
627 628
628 void WebFileSystemImpl::createFileWriter( 629 void WebFileSystemImpl::createFileWriter(
629 const WebURL& path, 630 const WebURL& path,
630 blink::WebFileWriterClient* client, 631 blink::WebFileWriterClient* client,
631 WebFileSystemCallbacks callbacks) { 632 WebFileSystemCallbacks callbacks) {
632 int callbacks_id = RegisterCallbacks(callbacks); 633 int callbacks_id = RegisterCallbacks(callbacks);
633 scoped_refptr<WaitableCallbackResults> waitable_results = 634 scoped_refptr<WaitableCallbackResults> waitable_results =
634 MaybeCreateWaitableResults(callbacks, callbacks_id); 635 MaybeCreateWaitableResults(callbacks, callbacks_id);
635 CallDispatcherOnMainThread( 636 CallDispatcherOnMainThread(
636 main_thread_task_runner_, &FileSystemDispatcher::ReadMetadata, 637 main_thread_task_runner_, &FileSystemDispatcher::ReadMetadata,
637 MakeTuple(GURL(path), 638 MakeTuple(GURL(path),
638 base::Bind(&CreateFileWriterCallbackAdapter, 639 base::Bind(&CreateFileWriterCallbackAdapter,
639 base::ThreadTaskRunnerHandle::Get(), callbacks_id, 640 base::ThreadTaskRunnerHandle::Get(), callbacks_id,
640 waitable_results, main_thread_task_runner_, 641 base::RetainedRef(waitable_results),
641 GURL(path), client), 642 main_thread_task_runner_, GURL(path), client),
642 base::Bind(&StatusCallbackAdapter, 643 base::Bind(&StatusCallbackAdapter,
643 base::ThreadTaskRunnerHandle::Get(), callbacks_id, 644 base::ThreadTaskRunnerHandle::Get(), callbacks_id,
644 waitable_results)), 645 base::RetainedRef(waitable_results))),
645 waitable_results.get()); 646 waitable_results.get());
646 } 647 }
647 648
648 void WebFileSystemImpl::createSnapshotFileAndReadMetadata( 649 void WebFileSystemImpl::createSnapshotFileAndReadMetadata(
649 const blink::WebURL& path, 650 const blink::WebURL& path,
650 WebFileSystemCallbacks callbacks) { 651 WebFileSystemCallbacks callbacks) {
651 int callbacks_id = RegisterCallbacks(callbacks); 652 int callbacks_id = RegisterCallbacks(callbacks);
652 scoped_refptr<WaitableCallbackResults> waitable_results = 653 scoped_refptr<WaitableCallbackResults> waitable_results =
653 MaybeCreateWaitableResults(callbacks, callbacks_id); 654 MaybeCreateWaitableResults(callbacks, callbacks_id);
654 CallDispatcherOnMainThread( 655 CallDispatcherOnMainThread(
655 main_thread_task_runner_, &FileSystemDispatcher::CreateSnapshotFile, 656 main_thread_task_runner_, &FileSystemDispatcher::CreateSnapshotFile,
656 MakeTuple(GURL(path), 657 MakeTuple(GURL(path),
657 base::Bind(&CreateSnapshotFileCallbackAdapter, 658 base::Bind(&CreateSnapshotFileCallbackAdapter,
658 base::ThreadTaskRunnerHandle::Get(), callbacks_id, 659 base::ThreadTaskRunnerHandle::Get(), callbacks_id,
659 waitable_results, main_thread_task_runner_), 660 base::RetainedRef(waitable_results),
661 main_thread_task_runner_),
660 base::Bind(&StatusCallbackAdapter, 662 base::Bind(&StatusCallbackAdapter,
661 base::ThreadTaskRunnerHandle::Get(), callbacks_id, 663 base::ThreadTaskRunnerHandle::Get(), callbacks_id,
662 waitable_results)), 664 base::RetainedRef(waitable_results))),
663 waitable_results.get()); 665 waitable_results.get());
664 } 666 }
665 667
666 bool WebFileSystemImpl::waitForAdditionalResult(int callbacksId) { 668 bool WebFileSystemImpl::waitForAdditionalResult(int callbacksId) {
667 WaitableCallbackResultsMap::iterator found = 669 WaitableCallbackResultsMap::iterator found =
668 waitable_results_.find(callbacksId); 670 waitable_results_.find(callbacksId);
669 if (found == waitable_results_.end()) 671 if (found == waitable_results_.end())
670 return false; 672 return false;
671 673
672 found->second->WaitAndRun(); 674 found->second->WaitAndRun();
(...skipping 27 matching lines...) Expand all
700 WaitableCallbackResults* WebFileSystemImpl::MaybeCreateWaitableResults( 702 WaitableCallbackResults* WebFileSystemImpl::MaybeCreateWaitableResults(
701 const WebFileSystemCallbacks& callbacks, int callbacks_id) { 703 const WebFileSystemCallbacks& callbacks, int callbacks_id) {
702 if (!callbacks.shouldBlockUntilCompletion()) 704 if (!callbacks.shouldBlockUntilCompletion())
703 return NULL; 705 return NULL;
704 WaitableCallbackResults* results = new WaitableCallbackResults(); 706 WaitableCallbackResults* results = new WaitableCallbackResults();
705 waitable_results_[callbacks_id] = results; 707 waitable_results_[callbacks_id] = results;
706 return results; 708 return results;
707 } 709 }
708 710
709 } // namespace content 711 } // namespace content
OLDNEW
« no previous file with comments | « content/child/child_gpu_memory_buffer_manager.cc ('k') | content/child/service_worker/web_service_worker_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698