OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/browser/background_sync/background_sync_manager.h" | 5 #include "content/browser/background_sync/background_sync_manager.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/barrier_closure.h" | 9 #include "base/barrier_closure.h" |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 749 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
760 void BackgroundSyncManager::GetDataFromBackend( | 760 void BackgroundSyncManager::GetDataFromBackend( |
761 const std::string& backend_key, | 761 const std::string& backend_key, |
762 const ServiceWorkerStorage::GetUserDataForAllRegistrationsCallback& | 762 const ServiceWorkerStorage::GetUserDataForAllRegistrationsCallback& |
763 callback) { | 763 callback) { |
764 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 764 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
765 | 765 |
766 service_worker_context_->GetUserDataForAllRegistrations(backend_key, | 766 service_worker_context_->GetUserDataForAllRegistrations(backend_key, |
767 callback); | 767 callback); |
768 } | 768 } |
769 | 769 |
770 void BackgroundSyncManager::FireOneShotSync( | 770 void BackgroundSyncManager::DispatchSyncEvent( |
771 BackgroundSyncRegistrationHandle::HandleId handle_id, | 771 BackgroundSyncRegistrationHandle::HandleId handle_id, |
772 const scoped_refptr<ServiceWorkerVersion>& active_version, | 772 const scoped_refptr<ServiceWorkerVersion>& active_version, |
773 BackgroundSyncEventLastChance last_chance, | 773 BackgroundSyncEventLastChance last_chance, |
774 const ServiceWorkerVersion::StatusCallback& callback) { | 774 const ServiceWorkerVersion::StatusCallback& callback) { |
775 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 775 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
776 DCHECK(active_version); | 776 DCHECK(active_version); |
777 | 777 |
778 if (active_version->running_status() != ServiceWorkerVersion::RUNNING) { | 778 if (active_version->running_status() != ServiceWorkerVersion::RUNNING) { |
779 active_version->RunAfterStartWorker( | 779 active_version->RunAfterStartWorker( |
780 base::Bind(&BackgroundSyncManager::FireOneShotSync, | 780 base::Bind(&BackgroundSyncManager::DispatchSyncEvent, |
781 weak_ptr_factory_.GetWeakPtr(), handle_id, active_version, | 781 weak_ptr_factory_.GetWeakPtr(), handle_id, active_version, |
782 last_chance, callback), | 782 last_chance, callback), |
783 callback); | 783 callback); |
784 return; | 784 return; |
785 } | 785 } |
786 | 786 |
787 int request_id = active_version->StartRequestWithCustomTimeout( | 787 int request_id = active_version->StartRequestWithCustomTimeout( |
788 ServiceWorkerMetrics::EventType::SYNC, callback, | 788 ServiceWorkerMetrics::EventType::SYNC, callback, |
789 parameters_->max_sync_event_duration, | 789 parameters_->max_sync_event_duration, |
790 ServiceWorkerVersion::CONTINUE_ON_TIMEOUT); | 790 ServiceWorkerVersion::CONTINUE_ON_TIMEOUT); |
(...skipping 432 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1223 BackgroundSyncEventLastChance last_chance = | 1223 BackgroundSyncEventLastChance last_chance = |
1224 registration->value()->num_attempts() == | 1224 registration->value()->num_attempts() == |
1225 parameters_->max_sync_attempts - 1 | 1225 parameters_->max_sync_attempts - 1 |
1226 ? BackgroundSyncEventLastChance::IS_LAST_CHANCE | 1226 ? BackgroundSyncEventLastChance::IS_LAST_CHANCE |
1227 : BackgroundSyncEventLastChance::IS_NOT_LAST_CHANCE; | 1227 : BackgroundSyncEventLastChance::IS_NOT_LAST_CHANCE; |
1228 | 1228 |
1229 HasMainFrameProviderHost( | 1229 HasMainFrameProviderHost( |
1230 service_worker_registration->pattern().GetOrigin(), | 1230 service_worker_registration->pattern().GetOrigin(), |
1231 base::Bind(&BackgroundSyncMetrics::RecordEventStarted)); | 1231 base::Bind(&BackgroundSyncMetrics::RecordEventStarted)); |
1232 | 1232 |
1233 FireOneShotSync( | 1233 DispatchSyncEvent( |
1234 handle_id, service_worker_registration->active_version(), last_chance, | 1234 handle_id, service_worker_registration->active_version(), last_chance, |
1235 base::Bind(&BackgroundSyncManager::EventComplete, | 1235 base::Bind(&BackgroundSyncManager::EventComplete, |
1236 weak_ptr_factory_.GetWeakPtr(), service_worker_registration, | 1236 weak_ptr_factory_.GetWeakPtr(), service_worker_registration, |
1237 service_worker_registration->id(), | 1237 service_worker_registration->id(), |
1238 base::Passed(std::move(registration_handle)), | 1238 base::Passed(std::move(registration_handle)), |
1239 event_completed_callback)); | 1239 event_completed_callback)); |
1240 | 1240 |
1241 base::ThreadTaskRunnerHandle::Get()->PostTask( | 1241 base::ThreadTaskRunnerHandle::Get()->PostTask( |
1242 FROM_HERE, base::Bind(event_fired_callback)); | 1242 FROM_HERE, base::Bind(event_fired_callback)); |
1243 } | 1243 } |
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1487 BackgroundSyncManager::MakeStatusCompletion(const StatusCallback& callback) { | 1487 BackgroundSyncManager::MakeStatusCompletion(const StatusCallback& callback) { |
1488 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 1488 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
1489 | 1489 |
1490 return base::Bind( | 1490 return base::Bind( |
1491 &BackgroundSyncManager::CompleteOperationCallback<StatusCallback, | 1491 &BackgroundSyncManager::CompleteOperationCallback<StatusCallback, |
1492 BackgroundSyncStatus>, | 1492 BackgroundSyncStatus>, |
1493 weak_ptr_factory_.GetWeakPtr(), callback); | 1493 weak_ptr_factory_.GetWeakPtr(), callback); |
1494 } | 1494 } |
1495 | 1495 |
1496 } // namespace content | 1496 } // namespace content |
OLD | NEW |