| Index: content/browser/background_sync/background_sync_service_impl.cc
|
| diff --git a/content/browser/background_sync/background_sync_service_impl.cc b/content/browser/background_sync/background_sync_service_impl.cc
|
| index 9f51f9a70af6ed03f9c631e5fbb0f07cba7ad88a..b8c03df798b7abba2e6f0ab90a4d0c8964c1e5c6 100644
|
| --- a/content/browser/background_sync/background_sync_service_impl.cc
|
| +++ b/content/browser/background_sync/background_sync_service_impl.cc
|
| @@ -227,6 +227,23 @@ void BackgroundSyncServiceImpl::ReleaseRegistration(
|
| active_handles_.Remove(handle_id);
|
| }
|
|
|
| +void BackgroundSyncServiceImpl::NotifyWhenDone(
|
| + BackgroundSyncRegistrationHandle::HandleId handle_id,
|
| + const NotifyWhenDoneCallback& callback) {
|
| + DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
| + BackgroundSyncRegistrationHandle* registration =
|
| + active_handles_.Lookup(handle_id);
|
| + if (!registration) {
|
| + callback.Run(BACKGROUND_SYNC_ERROR_NOT_ALLOWED,
|
| + BACKGROUND_SYNC_STATE_FAILED);
|
| + return;
|
| + }
|
| +
|
| + registration->NotifyWhenDone(
|
| + base::Bind(&BackgroundSyncServiceImpl::OnNotifyWhenDoneResult,
|
| + weak_ptr_factory_.GetWeakPtr(), callback));
|
| +}
|
| +
|
| void BackgroundSyncServiceImpl::OnRegisterResult(
|
| const RegisterCallback& callback,
|
| BackgroundSyncStatus status,
|
| @@ -271,4 +288,12 @@ void BackgroundSyncServiceImpl::OnGetRegistrationsResult(
|
| mojo_registrations.Pass());
|
| }
|
|
|
| +void BackgroundSyncServiceImpl::OnNotifyWhenDoneResult(
|
| + const NotifyWhenDoneCallback& callback,
|
| + BackgroundSyncStatus status,
|
| + BackgroundSyncState sync_state) {
|
| + DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
| + callback.Run(static_cast<content::BackgroundSyncError>(status), sync_state);
|
| +}
|
| +
|
| } // namespace content
|
|
|