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

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

Powered by Google App Engine
This is Rietveld 408576698