OLD | NEW |
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/drive_backend/sync_engine.h" | 5 #include "chrome/browser/sync_file_system/drive_backend/sync_engine.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
119 | 119 |
120 void OnPendingFileListUpdated(int item_count) override { | 120 void OnPendingFileListUpdated(int item_count) override { |
121 if (ui_task_runner_->RunsTasksOnCurrentThread()) { | 121 if (ui_task_runner_->RunsTasksOnCurrentThread()) { |
122 if (sync_engine_) | 122 if (sync_engine_) |
123 sync_engine_->OnPendingFileListUpdated(item_count); | 123 sync_engine_->OnPendingFileListUpdated(item_count); |
124 return; | 124 return; |
125 } | 125 } |
126 | 126 |
127 DCHECK(sequence_checker_.CalledOnValidSequence()); | 127 DCHECK(sequence_checker_.CalledOnValidSequence()); |
128 ui_task_runner_->PostTask( | 128 ui_task_runner_->PostTask( |
129 FROM_HERE, | 129 FROM_HERE, base::BindOnce(&SyncEngine::OnPendingFileListUpdated, |
130 base::Bind(&SyncEngine::OnPendingFileListUpdated, | 130 sync_engine_, item_count)); |
131 sync_engine_, | |
132 item_count)); | |
133 } | 131 } |
134 | 132 |
135 void OnFileStatusChanged(const storage::FileSystemURL& url, | 133 void OnFileStatusChanged(const storage::FileSystemURL& url, |
136 SyncFileType file_type, | 134 SyncFileType file_type, |
137 SyncFileStatus file_status, | 135 SyncFileStatus file_status, |
138 SyncAction sync_action, | 136 SyncAction sync_action, |
139 SyncDirection direction) override { | 137 SyncDirection direction) override { |
140 if (ui_task_runner_->RunsTasksOnCurrentThread()) { | 138 if (ui_task_runner_->RunsTasksOnCurrentThread()) { |
141 if (sync_engine_) | 139 if (sync_engine_) |
142 sync_engine_->OnFileStatusChanged( | 140 sync_engine_->OnFileStatusChanged( |
143 url, file_type, file_status, sync_action, direction); | 141 url, file_type, file_status, sync_action, direction); |
144 return; | 142 return; |
145 } | 143 } |
146 | 144 |
147 DCHECK(sequence_checker_.CalledOnValidSequence()); | 145 DCHECK(sequence_checker_.CalledOnValidSequence()); |
148 ui_task_runner_->PostTask( | 146 ui_task_runner_->PostTask( |
149 FROM_HERE, | 147 FROM_HERE, |
150 base::Bind(&SyncEngine::OnFileStatusChanged, | 148 base::BindOnce(&SyncEngine::OnFileStatusChanged, sync_engine_, url, |
151 sync_engine_, | 149 file_type, file_status, sync_action, direction)); |
152 url, file_type, file_status, sync_action, direction)); | |
153 } | 150 } |
154 | 151 |
155 void UpdateServiceState(RemoteServiceState state, | 152 void UpdateServiceState(RemoteServiceState state, |
156 const std::string& description) override { | 153 const std::string& description) override { |
157 if (ui_task_runner_->RunsTasksOnCurrentThread()) { | 154 if (ui_task_runner_->RunsTasksOnCurrentThread()) { |
158 if (sync_engine_) | 155 if (sync_engine_) |
159 sync_engine_->UpdateServiceState(state, description); | 156 sync_engine_->UpdateServiceState(state, description); |
160 return; | 157 return; |
161 } | 158 } |
162 | 159 |
163 DCHECK(sequence_checker_.CalledOnValidSequence()); | 160 DCHECK(sequence_checker_.CalledOnValidSequence()); |
164 ui_task_runner_->PostTask( | 161 ui_task_runner_->PostTask( |
165 FROM_HERE, | 162 FROM_HERE, base::BindOnce(&SyncEngine::UpdateServiceState, sync_engine_, |
166 base::Bind(&SyncEngine::UpdateServiceState, | 163 state, description)); |
167 sync_engine_, state, description)); | |
168 } | 164 } |
169 | 165 |
170 void DetachFromSequence() { | 166 void DetachFromSequence() { |
171 sequence_checker_.DetachFromSequence(); | 167 sequence_checker_.DetachFromSequence(); |
172 } | 168 } |
173 | 169 |
174 private: | 170 private: |
175 scoped_refptr<base::SequencedTaskRunner> ui_task_runner_; | 171 scoped_refptr<base::SequencedTaskRunner> ui_task_runner_; |
176 base::WeakPtr<SyncEngine> sync_engine_; | 172 base::WeakPtr<SyncEngine> sync_engine_; |
177 | 173 |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
338 sync_worker.reset(new SyncWorker( | 334 sync_worker.reset(new SyncWorker( |
339 sync_file_system_dir_, | 335 sync_file_system_dir_, |
340 extension_service_weak_ptr, | 336 extension_service_weak_ptr, |
341 env_override_)); | 337 env_override_)); |
342 } | 338 } |
343 | 339 |
344 sync_worker_ = std::move(sync_worker); | 340 sync_worker_ = std::move(sync_worker); |
345 sync_worker_->AddObserver(worker_observer_.get()); | 341 sync_worker_->AddObserver(worker_observer_.get()); |
346 | 342 |
347 worker_task_runner_->PostTask( | 343 worker_task_runner_->PostTask( |
348 FROM_HERE, | 344 FROM_HERE, base::BindOnce(&SyncWorkerInterface::Initialize, |
349 base::Bind(&SyncWorkerInterface::Initialize, | 345 base::Unretained(sync_worker_.get()), |
350 base::Unretained(sync_worker_.get()), | 346 base::Passed(&sync_engine_context))); |
351 base::Passed(&sync_engine_context))); | |
352 if (remote_change_processor_) | 347 if (remote_change_processor_) |
353 SetRemoteChangeProcessor(remote_change_processor_); | 348 SetRemoteChangeProcessor(remote_change_processor_); |
354 | 349 |
355 drive_service_->AddObserver(this); | 350 drive_service_->AddObserver(this); |
356 | 351 |
357 service_state_ = REMOTE_SERVICE_TEMPORARY_UNAVAILABLE; | 352 service_state_ = REMOTE_SERVICE_TEMPORARY_UNAVAILABLE; |
358 OnNetworkChanged(net::NetworkChangeNotifier::GetConnectionType()); | 353 OnNetworkChanged(net::NetworkChangeNotifier::GetConnectionType()); |
359 if (drive_service_->HasRefreshToken()) | 354 if (drive_service_->HasRefreshToken()) |
360 OnReadyToSendRequests(); | 355 OnReadyToSendRequests(); |
361 else | 356 else |
(...skipping 18 matching lines...) Expand all Loading... |
380 else | 375 else |
381 callback.Run(SYNC_STATUS_ABORT); | 376 callback.Run(SYNC_STATUS_ABORT); |
382 return; | 377 return; |
383 } | 378 } |
384 | 379 |
385 SyncStatusCallback relayed_callback = RelayCallbackToCurrentThread( | 380 SyncStatusCallback relayed_callback = RelayCallbackToCurrentThread( |
386 FROM_HERE, base::Bind(&DidRegisterOrigin, base::TimeTicks::Now(), | 381 FROM_HERE, base::Bind(&DidRegisterOrigin, base::TimeTicks::Now(), |
387 TrackCallback(callback))); | 382 TrackCallback(callback))); |
388 | 383 |
389 worker_task_runner_->PostTask( | 384 worker_task_runner_->PostTask( |
390 FROM_HERE, | 385 FROM_HERE, base::BindOnce(&SyncWorkerInterface::RegisterOrigin, |
391 base::Bind(&SyncWorkerInterface::RegisterOrigin, | 386 base::Unretained(sync_worker_.get()), origin, |
392 base::Unretained(sync_worker_.get()), | 387 relayed_callback)); |
393 origin, relayed_callback)); | |
394 } | 388 } |
395 | 389 |
396 void SyncEngine::EnableOrigin( | 390 void SyncEngine::EnableOrigin( |
397 const GURL& origin, const SyncStatusCallback& callback) { | 391 const GURL& origin, const SyncStatusCallback& callback) { |
398 if (!sync_worker_) { | 392 if (!sync_worker_) { |
399 // It's safe to return OK immediately since this is also checked in | 393 // It's safe to return OK immediately since this is also checked in |
400 // SyncWorker initialization. | 394 // SyncWorker initialization. |
401 callback.Run(SYNC_STATUS_OK); | 395 callback.Run(SYNC_STATUS_OK); |
402 return; | 396 return; |
403 } | 397 } |
404 | 398 |
405 SyncStatusCallback relayed_callback = RelayCallbackToCurrentThread( | 399 SyncStatusCallback relayed_callback = RelayCallbackToCurrentThread( |
406 FROM_HERE, TrackCallback(callback)); | 400 FROM_HERE, TrackCallback(callback)); |
407 | 401 |
408 worker_task_runner_->PostTask( | 402 worker_task_runner_->PostTask( |
409 FROM_HERE, | 403 FROM_HERE, base::BindOnce(&SyncWorkerInterface::EnableOrigin, |
410 base::Bind(&SyncWorkerInterface::EnableOrigin, | 404 base::Unretained(sync_worker_.get()), origin, |
411 base::Unretained(sync_worker_.get()), | 405 relayed_callback)); |
412 origin, relayed_callback)); | |
413 } | 406 } |
414 | 407 |
415 void SyncEngine::DisableOrigin( | 408 void SyncEngine::DisableOrigin( |
416 const GURL& origin, const SyncStatusCallback& callback) { | 409 const GURL& origin, const SyncStatusCallback& callback) { |
417 if (!sync_worker_) { | 410 if (!sync_worker_) { |
418 // It's safe to return OK immediately since this is also checked in | 411 // It's safe to return OK immediately since this is also checked in |
419 // SyncWorker initialization. | 412 // SyncWorker initialization. |
420 callback.Run(SYNC_STATUS_OK); | 413 callback.Run(SYNC_STATUS_OK); |
421 return; | 414 return; |
422 } | 415 } |
423 | 416 |
424 SyncStatusCallback relayed_callback = RelayCallbackToCurrentThread( | 417 SyncStatusCallback relayed_callback = RelayCallbackToCurrentThread( |
425 FROM_HERE, TrackCallback(callback)); | 418 FROM_HERE, TrackCallback(callback)); |
426 | 419 |
427 worker_task_runner_->PostTask( | 420 worker_task_runner_->PostTask( |
428 FROM_HERE, | 421 FROM_HERE, base::BindOnce(&SyncWorkerInterface::DisableOrigin, |
429 base::Bind(&SyncWorkerInterface::DisableOrigin, | 422 base::Unretained(sync_worker_.get()), origin, |
430 base::Unretained(sync_worker_.get()), | 423 relayed_callback)); |
431 origin, | |
432 relayed_callback)); | |
433 } | 424 } |
434 | 425 |
435 void SyncEngine::UninstallOrigin( | 426 void SyncEngine::UninstallOrigin( |
436 const GURL& origin, | 427 const GURL& origin, |
437 UninstallFlag flag, | 428 UninstallFlag flag, |
438 const SyncStatusCallback& callback) { | 429 const SyncStatusCallback& callback) { |
439 if (!sync_worker_) { | 430 if (!sync_worker_) { |
440 // It's safe to return OK immediately since this is also checked in | 431 // It's safe to return OK immediately since this is also checked in |
441 // SyncWorker initialization. | 432 // SyncWorker initialization. |
442 callback.Run(SYNC_STATUS_OK); | 433 callback.Run(SYNC_STATUS_OK); |
443 return; | 434 return; |
444 } | 435 } |
445 | 436 |
446 SyncStatusCallback relayed_callback = RelayCallbackToCurrentThread( | 437 SyncStatusCallback relayed_callback = RelayCallbackToCurrentThread( |
447 FROM_HERE, TrackCallback(callback)); | 438 FROM_HERE, TrackCallback(callback)); |
448 worker_task_runner_->PostTask( | 439 worker_task_runner_->PostTask( |
449 FROM_HERE, | 440 FROM_HERE, base::BindOnce(&SyncWorkerInterface::UninstallOrigin, |
450 base::Bind(&SyncWorkerInterface::UninstallOrigin, | 441 base::Unretained(sync_worker_.get()), origin, |
451 base::Unretained(sync_worker_.get()), | 442 flag, relayed_callback)); |
452 origin, flag, relayed_callback)); | |
453 } | 443 } |
454 | 444 |
455 void SyncEngine::ProcessRemoteChange(const SyncFileCallback& callback) { | 445 void SyncEngine::ProcessRemoteChange(const SyncFileCallback& callback) { |
456 if (GetCurrentState() == REMOTE_SERVICE_DISABLED) { | 446 if (GetCurrentState() == REMOTE_SERVICE_DISABLED) { |
457 callback.Run(SYNC_STATUS_SYNC_DISABLED, storage::FileSystemURL()); | 447 callback.Run(SYNC_STATUS_SYNC_DISABLED, storage::FileSystemURL()); |
458 return; | 448 return; |
459 } | 449 } |
460 | 450 |
461 base::Closure abort_closure = | 451 base::Closure abort_closure = |
462 base::Bind(callback, SYNC_STATUS_ABORT, storage::FileSystemURL()); | 452 base::Bind(callback, SYNC_STATUS_ABORT, storage::FileSystemURL()); |
463 | 453 |
464 if (!sync_worker_) { | 454 if (!sync_worker_) { |
465 abort_closure.Run(); | 455 abort_closure.Run(); |
466 return; | 456 return; |
467 } | 457 } |
468 | 458 |
469 SyncFileCallback tracked_callback = callback_tracker_.Register( | 459 SyncFileCallback tracked_callback = callback_tracker_.Register( |
470 abort_closure, callback); | 460 abort_closure, callback); |
471 SyncFileCallback relayed_callback = RelayCallbackToCurrentThread( | 461 SyncFileCallback relayed_callback = RelayCallbackToCurrentThread( |
472 FROM_HERE, tracked_callback); | 462 FROM_HERE, tracked_callback); |
473 worker_task_runner_->PostTask( | 463 worker_task_runner_->PostTask( |
474 FROM_HERE, | 464 FROM_HERE, |
475 base::Bind(&SyncWorkerInterface::ProcessRemoteChange, | 465 base::BindOnce(&SyncWorkerInterface::ProcessRemoteChange, |
476 base::Unretained(sync_worker_.get()), | 466 base::Unretained(sync_worker_.get()), relayed_callback)); |
477 relayed_callback)); | |
478 } | 467 } |
479 | 468 |
480 void SyncEngine::SetRemoteChangeProcessor(RemoteChangeProcessor* processor) { | 469 void SyncEngine::SetRemoteChangeProcessor(RemoteChangeProcessor* processor) { |
481 remote_change_processor_ = processor; | 470 remote_change_processor_ = processor; |
482 | 471 |
483 if (!sync_worker_) | 472 if (!sync_worker_) |
484 return; | 473 return; |
485 | 474 |
486 remote_change_processor_wrapper_.reset( | 475 remote_change_processor_wrapper_.reset( |
487 new RemoteChangeProcessorWrapper(processor)); | 476 new RemoteChangeProcessorWrapper(processor)); |
488 | 477 |
489 remote_change_processor_on_worker_.reset(new RemoteChangeProcessorOnWorker( | 478 remote_change_processor_on_worker_.reset(new RemoteChangeProcessorOnWorker( |
490 remote_change_processor_wrapper_->AsWeakPtr(), | 479 remote_change_processor_wrapper_->AsWeakPtr(), |
491 ui_task_runner_.get(), | 480 ui_task_runner_.get(), |
492 worker_task_runner_.get())); | 481 worker_task_runner_.get())); |
493 | 482 |
494 worker_task_runner_->PostTask( | 483 worker_task_runner_->PostTask( |
495 FROM_HERE, | 484 FROM_HERE, base::BindOnce(&SyncWorkerInterface::SetRemoteChangeProcessor, |
496 base::Bind(&SyncWorkerInterface::SetRemoteChangeProcessor, | 485 base::Unretained(sync_worker_.get()), |
497 base::Unretained(sync_worker_.get()), | 486 remote_change_processor_on_worker_.get())); |
498 remote_change_processor_on_worker_.get())); | |
499 } | 487 } |
500 | 488 |
501 LocalChangeProcessor* SyncEngine::GetLocalChangeProcessor() { | 489 LocalChangeProcessor* SyncEngine::GetLocalChangeProcessor() { |
502 return this; | 490 return this; |
503 } | 491 } |
504 | 492 |
505 RemoteServiceState SyncEngine::GetCurrentState() const { | 493 RemoteServiceState SyncEngine::GetCurrentState() const { |
506 if (!sync_enabled_) | 494 if (!sync_enabled_) |
507 return REMOTE_SERVICE_DISABLED; | 495 return REMOTE_SERVICE_DISABLED; |
508 if (!has_refresh_token_) | 496 if (!has_refresh_token_) |
(...skipping 10 matching lines...) Expand all Loading... |
519 return; | 507 return; |
520 } | 508 } |
521 | 509 |
522 StatusMapCallback tracked_callback = | 510 StatusMapCallback tracked_callback = |
523 callback_tracker_.Register(abort_closure, callback); | 511 callback_tracker_.Register(abort_closure, callback); |
524 StatusMapCallback relayed_callback = | 512 StatusMapCallback relayed_callback = |
525 RelayCallbackToCurrentThread(FROM_HERE, tracked_callback); | 513 RelayCallbackToCurrentThread(FROM_HERE, tracked_callback); |
526 | 514 |
527 worker_task_runner_->PostTask( | 515 worker_task_runner_->PostTask( |
528 FROM_HERE, | 516 FROM_HERE, |
529 base::Bind(&SyncWorkerInterface::GetOriginStatusMap, | 517 base::BindOnce(&SyncWorkerInterface::GetOriginStatusMap, |
530 base::Unretained(sync_worker_.get()), | 518 base::Unretained(sync_worker_.get()), relayed_callback)); |
531 relayed_callback)); | |
532 } | 519 } |
533 | 520 |
534 void SyncEngine::DumpFiles(const GURL& origin, | 521 void SyncEngine::DumpFiles(const GURL& origin, |
535 const ListCallback& callback) { | 522 const ListCallback& callback) { |
536 base::Closure abort_closure = | 523 base::Closure abort_closure = |
537 base::Bind(callback, base::Passed(std::unique_ptr<base::ListValue>())); | 524 base::Bind(callback, base::Passed(std::unique_ptr<base::ListValue>())); |
538 | 525 |
539 if (!sync_worker_) { | 526 if (!sync_worker_) { |
540 abort_closure.Run(); | 527 abort_closure.Run(); |
541 return; | 528 return; |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
579 if (sync_enabled_) { | 566 if (sync_enabled_) { |
580 if (!sync_worker_) | 567 if (!sync_worker_) |
581 Initialize(); | 568 Initialize(); |
582 | 569 |
583 // Have no login credential. | 570 // Have no login credential. |
584 if (!sync_worker_) | 571 if (!sync_worker_) |
585 return; | 572 return; |
586 | 573 |
587 worker_task_runner_->PostTask( | 574 worker_task_runner_->PostTask( |
588 FROM_HERE, | 575 FROM_HERE, |
589 base::Bind(&SyncWorkerInterface::SetSyncEnabled, | 576 base::BindOnce(&SyncWorkerInterface::SetSyncEnabled, |
590 base::Unretained(sync_worker_.get()), | 577 base::Unretained(sync_worker_.get()), sync_enabled_)); |
591 sync_enabled_)); | |
592 return; | 578 return; |
593 } | 579 } |
594 | 580 |
595 if (!sync_worker_) | 581 if (!sync_worker_) |
596 return; | 582 return; |
597 | 583 |
598 // TODO(tzik): Consider removing SyncWorkerInterface::SetSyncEnabled and | 584 // TODO(tzik): Consider removing SyncWorkerInterface::SetSyncEnabled and |
599 // let SyncEngine handle the flag. | 585 // let SyncEngine handle the flag. |
600 worker_task_runner_->PostTask( | 586 worker_task_runner_->PostTask( |
601 FROM_HERE, | 587 FROM_HERE, |
602 base::Bind(&SyncWorkerInterface::SetSyncEnabled, | 588 base::BindOnce(&SyncWorkerInterface::SetSyncEnabled, |
603 base::Unretained(sync_worker_.get()), | 589 base::Unretained(sync_worker_.get()), sync_enabled_)); |
604 sync_enabled_)); | |
605 Reset(); | 590 Reset(); |
606 } | 591 } |
607 | 592 |
608 void SyncEngine::PromoteDemotedChanges(const base::Closure& callback) { | 593 void SyncEngine::PromoteDemotedChanges(const base::Closure& callback) { |
609 if (!sync_worker_) { | 594 if (!sync_worker_) { |
610 callback.Run(); | 595 callback.Run(); |
611 return; | 596 return; |
612 } | 597 } |
613 | 598 |
614 base::Closure relayed_callback = RelayCallbackToCurrentThread( | 599 base::Closure relayed_callback = RelayCallbackToCurrentThread( |
615 FROM_HERE, callback_tracker_.Register(callback, callback)); | 600 FROM_HERE, callback_tracker_.Register(callback, callback)); |
616 | 601 |
617 worker_task_runner_->PostTask( | 602 worker_task_runner_->PostTask( |
618 FROM_HERE, | 603 FROM_HERE, |
619 base::Bind(&SyncWorkerInterface::PromoteDemotedChanges, | 604 base::BindOnce(&SyncWorkerInterface::PromoteDemotedChanges, |
620 base::Unretained(sync_worker_.get()), | 605 base::Unretained(sync_worker_.get()), relayed_callback)); |
621 relayed_callback)); | |
622 } | 606 } |
623 | 607 |
624 void SyncEngine::ApplyLocalChange(const FileChange& local_change, | 608 void SyncEngine::ApplyLocalChange(const FileChange& local_change, |
625 const base::FilePath& local_path, | 609 const base::FilePath& local_path, |
626 const SyncFileMetadata& local_metadata, | 610 const SyncFileMetadata& local_metadata, |
627 const storage::FileSystemURL& url, | 611 const storage::FileSystemURL& url, |
628 const SyncStatusCallback& callback) { | 612 const SyncStatusCallback& callback) { |
629 if (GetCurrentState() == REMOTE_SERVICE_DISABLED) { | 613 if (GetCurrentState() == REMOTE_SERVICE_DISABLED) { |
630 callback.Run(SYNC_STATUS_SYNC_DISABLED); | 614 callback.Run(SYNC_STATUS_SYNC_DISABLED); |
631 return; | 615 return; |
632 } | 616 } |
633 | 617 |
634 if (!sync_worker_) { | 618 if (!sync_worker_) { |
635 callback.Run(SYNC_STATUS_ABORT); | 619 callback.Run(SYNC_STATUS_ABORT); |
636 return; | 620 return; |
637 } | 621 } |
638 | 622 |
639 SyncStatusCallback relayed_callback = RelayCallbackToCurrentThread( | 623 SyncStatusCallback relayed_callback = RelayCallbackToCurrentThread( |
640 FROM_HERE, TrackCallback(callback)); | 624 FROM_HERE, TrackCallback(callback)); |
641 worker_task_runner_->PostTask( | 625 worker_task_runner_->PostTask( |
642 FROM_HERE, | 626 FROM_HERE, |
643 base::Bind(&SyncWorkerInterface::ApplyLocalChange, | 627 base::BindOnce(&SyncWorkerInterface::ApplyLocalChange, |
644 base::Unretained(sync_worker_.get()), | 628 base::Unretained(sync_worker_.get()), local_change, |
645 local_change, | 629 local_path, local_metadata, url, relayed_callback)); |
646 local_path, | |
647 local_metadata, | |
648 url, | |
649 relayed_callback)); | |
650 } | 630 } |
651 | 631 |
652 void SyncEngine::OnNotificationReceived() { | 632 void SyncEngine::OnNotificationReceived() { |
653 if (!sync_worker_) | 633 if (!sync_worker_) |
654 return; | 634 return; |
655 | 635 |
656 worker_task_runner_->PostTask( | 636 worker_task_runner_->PostTask( |
657 FROM_HERE, | 637 FROM_HERE, |
658 base::Bind(&SyncWorkerInterface::ActivateService, | 638 base::BindOnce(&SyncWorkerInterface::ActivateService, |
659 base::Unretained(sync_worker_.get()), | 639 base::Unretained(sync_worker_.get()), REMOTE_SERVICE_OK, |
660 REMOTE_SERVICE_OK, | 640 "Got push notification for Drive")); |
661 "Got push notification for Drive")); | |
662 } | 641 } |
663 | 642 |
664 void SyncEngine::OnPushNotificationEnabled(bool /* enabled */) {} | 643 void SyncEngine::OnPushNotificationEnabled(bool /* enabled */) {} |
665 | 644 |
666 void SyncEngine::OnReadyToSendRequests() { | 645 void SyncEngine::OnReadyToSendRequests() { |
667 has_refresh_token_ = true; | 646 has_refresh_token_ = true; |
668 if (!sync_worker_) | 647 if (!sync_worker_) |
669 return; | 648 return; |
670 | 649 |
671 worker_task_runner_->PostTask( | 650 worker_task_runner_->PostTask( |
672 FROM_HERE, | 651 FROM_HERE, base::BindOnce(&SyncWorkerInterface::ActivateService, |
673 base::Bind(&SyncWorkerInterface::ActivateService, | 652 base::Unretained(sync_worker_.get()), |
674 base::Unretained(sync_worker_.get()), | 653 REMOTE_SERVICE_OK, "Authenticated")); |
675 REMOTE_SERVICE_OK, | |
676 "Authenticated")); | |
677 } | 654 } |
678 | 655 |
679 void SyncEngine::OnRefreshTokenInvalid() { | 656 void SyncEngine::OnRefreshTokenInvalid() { |
680 has_refresh_token_ = false; | 657 has_refresh_token_ = false; |
681 if (!sync_worker_) | 658 if (!sync_worker_) |
682 return; | 659 return; |
683 | 660 |
684 worker_task_runner_->PostTask( | 661 worker_task_runner_->PostTask( |
685 FROM_HERE, | 662 FROM_HERE, base::BindOnce(&SyncWorkerInterface::DeactivateService, |
686 base::Bind(&SyncWorkerInterface::DeactivateService, | 663 base::Unretained(sync_worker_.get()), |
687 base::Unretained(sync_worker_.get()), | 664 "Found invalid refresh token.")); |
688 "Found invalid refresh token.")); | |
689 } | 665 } |
690 | 666 |
691 void SyncEngine::OnNetworkChanged( | 667 void SyncEngine::OnNetworkChanged( |
692 net::NetworkChangeNotifier::ConnectionType type) { | 668 net::NetworkChangeNotifier::ConnectionType type) { |
693 if (!sync_worker_) | 669 if (!sync_worker_) |
694 return; | 670 return; |
695 | 671 |
696 bool network_available_old = network_available_; | 672 bool network_available_old = network_available_; |
697 network_available_ = (type != net::NetworkChangeNotifier::CONNECTION_NONE); | 673 network_available_ = (type != net::NetworkChangeNotifier::CONNECTION_NONE); |
698 | 674 |
699 if (!network_available_old && network_available_) { | 675 if (!network_available_old && network_available_) { |
700 worker_task_runner_->PostTask( | 676 worker_task_runner_->PostTask( |
701 FROM_HERE, | 677 FROM_HERE, base::BindOnce(&SyncWorkerInterface::ActivateService, |
702 base::Bind(&SyncWorkerInterface::ActivateService, | 678 base::Unretained(sync_worker_.get()), |
703 base::Unretained(sync_worker_.get()), | 679 REMOTE_SERVICE_OK, "Connected")); |
704 REMOTE_SERVICE_OK, | |
705 "Connected")); | |
706 } else if (network_available_old && !network_available_) { | 680 } else if (network_available_old && !network_available_) { |
707 worker_task_runner_->PostTask( | 681 worker_task_runner_->PostTask( |
708 FROM_HERE, | 682 FROM_HERE, |
709 base::Bind(&SyncWorkerInterface::DeactivateService, | 683 base::BindOnce(&SyncWorkerInterface::DeactivateService, |
710 base::Unretained(sync_worker_.get()), | 684 base::Unretained(sync_worker_.get()), "Disconnected")); |
711 "Disconnected")); | |
712 } | 685 } |
713 } | 686 } |
714 | 687 |
715 void SyncEngine::GoogleSigninFailed(const GoogleServiceAuthError& error) { | 688 void SyncEngine::GoogleSigninFailed(const GoogleServiceAuthError& error) { |
716 Reset(); | 689 Reset(); |
717 UpdateServiceState(REMOTE_SERVICE_AUTHENTICATION_REQUIRED, | 690 UpdateServiceState(REMOTE_SERVICE_AUTHENTICATION_REQUIRED, |
718 "Failed to sign in."); | 691 "Failed to sign in."); |
719 } | 692 } |
720 | 693 |
721 void SyncEngine::GoogleSigninSucceeded(const std::string& account_id, | 694 void SyncEngine::GoogleSigninSucceeded(const std::string& account_id, |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
798 | 771 |
799 SyncStatusCallback SyncEngine::TrackCallback( | 772 SyncStatusCallback SyncEngine::TrackCallback( |
800 const SyncStatusCallback& callback) { | 773 const SyncStatusCallback& callback) { |
801 return callback_tracker_.Register( | 774 return callback_tracker_.Register( |
802 base::Bind(callback, SYNC_STATUS_ABORT), | 775 base::Bind(callback, SYNC_STATUS_ABORT), |
803 callback); | 776 callback); |
804 } | 777 } |
805 | 778 |
806 } // namespace drive_backend | 779 } // namespace drive_backend |
807 } // namespace sync_file_system | 780 } // namespace sync_file_system |
OLD | NEW |