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

Unified Diff: content/browser/background_sync/background_sync_manager.cc

Issue 2954433002: BackgroundSync: Convert to base::BindOnce/OnceCallback/OnceClosure (Closed)
Patch Set: rename local variable Created 3 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/background_sync/background_sync_manager.cc
diff --git a/content/browser/background_sync/background_sync_manager.cc b/content/browser/background_sync/background_sync_manager.cc
index 43c905851e292dbc43f777eea723a71cfb2bdefd..14a07320d43c4a9936097d4403ae770f1aaa7b08 100644
--- a/content/browser/background_sync/background_sync_manager.cc
+++ b/content/browser/background_sync/background_sync_manager.cc
@@ -43,11 +43,11 @@ const char kBackgroundSyncUserDataKey[] = "BackgroundSyncUserData";
void RecordFailureAndPostError(
BackgroundSyncStatus status,
- const BackgroundSyncManager::StatusAndRegistrationCallback& callback) {
+ BackgroundSyncManager::StatusAndRegistrationCallback callback) {
BackgroundSyncMetrics::CountRegisterFailure(status);
base::ThreadTaskRunnerHandle::Get()->PostTask(
- FROM_HERE, base::Bind(callback, status, nullptr));
+ FROM_HERE, base::BindOnce(std::move(callback), status, nullptr));
}
// Returns nullptr if the browser context cannot be accessed for any reason.
@@ -192,39 +192,40 @@ BackgroundSyncManager::~BackgroundSyncManager() {
void BackgroundSyncManager::Register(
int64_t sw_registration_id,
const BackgroundSyncRegistrationOptions& options,
- const StatusAndRegistrationCallback& callback) {
+ StatusAndRegistrationCallback callback) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
if (disabled_) {
- RecordFailureAndPostError(BACKGROUND_SYNC_STATUS_STORAGE_ERROR, callback);
+ RecordFailureAndPostError(BACKGROUND_SYNC_STATUS_STORAGE_ERROR,
+ std::move(callback));
return;
}
- op_scheduler_.ScheduleOperation(
- base::Bind(&BackgroundSyncManager::RegisterCheckIfHasMainFrame,
- weak_ptr_factory_.GetWeakPtr(), sw_registration_id, options,
- op_scheduler_.WrapCallbackToRunNext(callback)));
+ op_scheduler_.ScheduleOperation(base::BindOnce(
+ &BackgroundSyncManager::RegisterCheckIfHasMainFrame,
+ weak_ptr_factory_.GetWeakPtr(), sw_registration_id, options,
+ op_scheduler_.WrapCallbackToRunNext(std::move(callback))));
}
void BackgroundSyncManager::GetRegistrations(
int64_t sw_registration_id,
- const StatusAndRegistrationsCallback& callback) {
+ StatusAndRegistrationsCallback callback) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
if (disabled_) {
base::ThreadTaskRunnerHandle::Get()->PostTask(
FROM_HERE,
- base::Bind(
- callback, BACKGROUND_SYNC_STATUS_STORAGE_ERROR,
+ base::BindOnce(
+ std::move(callback), BACKGROUND_SYNC_STATUS_STORAGE_ERROR,
base::Passed(
std::vector<std::unique_ptr<BackgroundSyncRegistration>>())));
return;
}
op_scheduler_.ScheduleOperation(
- base::Bind(&BackgroundSyncManager::GetRegistrationsImpl,
- weak_ptr_factory_.GetWeakPtr(), sw_registration_id,
- op_scheduler_.WrapCallbackToRunNext(callback)));
+ base::BindOnce(&BackgroundSyncManager::GetRegistrationsImpl,
+ weak_ptr_factory_.GetWeakPtr(), sw_registration_id,
+ op_scheduler_.WrapCallbackToRunNext(std::move(callback))));
}
void BackgroundSyncManager::OnRegistrationDeleted(int64_t sw_registration_id,
@@ -235,9 +236,9 @@ void BackgroundSyncManager::OnRegistrationDeleted(int64_t sw_registration_id,
// or return stale results based on registrations loaded in memory. This is
// inconsequential since the service worker is gone.
op_scheduler_.ScheduleOperation(
- base::Bind(&BackgroundSyncManager::OnRegistrationDeletedImpl,
- weak_ptr_factory_.GetWeakPtr(), sw_registration_id,
- MakeEmptyCompletion()));
+ base::BindOnce(&BackgroundSyncManager::OnRegistrationDeletedImpl,
+ weak_ptr_factory_.GetWeakPtr(), sw_registration_id,
+ MakeEmptyCompletion()));
}
void BackgroundSyncManager::OnStorageWiped() {
@@ -247,13 +248,13 @@ void BackgroundSyncManager::OnStorageWiped() {
// or return stale results based on registrations loaded in memory. This is
// inconsequential since the service workers are gone.
op_scheduler_.ScheduleOperation(
- base::Bind(&BackgroundSyncManager::OnStorageWipedImpl,
- weak_ptr_factory_.GetWeakPtr(), MakeEmptyCompletion()));
+ base::BindOnce(&BackgroundSyncManager::OnStorageWipedImpl,
+ weak_ptr_factory_.GetWeakPtr(), MakeEmptyCompletion()));
}
void BackgroundSyncManager::SetMaxSyncAttemptsForTesting(int max_attempts) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
- op_scheduler_.ScheduleOperation(base::Bind(
+ op_scheduler_.ScheduleOperation(base::BindOnce(
&BackgroundSyncManager::SetMaxSyncAttemptsImpl,
weak_ptr_factory_.GetWeakPtr(), max_attempts, MakeEmptyCompletion()));
}
@@ -287,12 +288,12 @@ BackgroundSyncManager::BackgroundSyncManager(
#if defined(OS_ANDROID)
network_observer_.reset(new BackgroundSyncNetworkObserverAndroid(
- base::Bind(&BackgroundSyncManager::OnNetworkChanged,
- weak_ptr_factory_.GetWeakPtr())));
+ base::BindRepeating(&BackgroundSyncManager::OnNetworkChanged,
+ weak_ptr_factory_.GetWeakPtr())));
#else
network_observer_.reset(new BackgroundSyncNetworkObserver(
- base::Bind(&BackgroundSyncManager::OnNetworkChanged,
- weak_ptr_factory_.GetWeakPtr())));
+ base::BindRepeating(&BackgroundSyncManager::OnNetworkChanged,
+ weak_ptr_factory_.GetWeakPtr())));
#endif
}
@@ -301,55 +302,57 @@ void BackgroundSyncManager::Init() {
DCHECK(!op_scheduler_.ScheduledOperations());
DCHECK(!disabled_);
- op_scheduler_.ScheduleOperation(base::Bind(&BackgroundSyncManager::InitImpl,
- weak_ptr_factory_.GetWeakPtr(),
- MakeEmptyCompletion()));
+ op_scheduler_.ScheduleOperation(
+ base::BindOnce(&BackgroundSyncManager::InitImpl,
+ weak_ptr_factory_.GetWeakPtr(), MakeEmptyCompletion()));
}
-void BackgroundSyncManager::InitImpl(const base::Closure& callback) {
+void BackgroundSyncManager::InitImpl(base::OnceClosure callback) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
if (disabled_) {
- base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, callback);
+ base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
+ std::move(callback));
return;
}
BrowserThread::PostTaskAndReplyWithResult(
BrowserThread::UI, FROM_HERE,
- base::Bind(&GetControllerParameters, service_worker_context_,
- base::Passed(
- base::MakeUnique<BackgroundSyncParameters>(*parameters_))),
- base::Bind(&BackgroundSyncManager::InitDidGetControllerParameters,
- weak_ptr_factory_.GetWeakPtr(), callback));
+ base::BindOnce(&GetControllerParameters, service_worker_context_,
+ base::Passed(base::MakeUnique<BackgroundSyncParameters>(
+ *parameters_))),
+ base::BindOnce(&BackgroundSyncManager::InitDidGetControllerParameters,
+ weak_ptr_factory_.GetWeakPtr(), std::move(callback)));
}
void BackgroundSyncManager::InitDidGetControllerParameters(
- const base::Closure& callback,
+ base::OnceClosure callback,
std::unique_ptr<BackgroundSyncParameters> updated_parameters) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
parameters_ = std::move(updated_parameters);
if (parameters_->disable) {
disabled_ = true;
- base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, callback);
+ base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
+ std::move(callback));
return;
}
- GetDataFromBackend(
- kBackgroundSyncUserDataKey,
- base::Bind(&BackgroundSyncManager::InitDidGetDataFromBackend,
- weak_ptr_factory_.GetWeakPtr(), callback));
+ GetDataFromBackend(kBackgroundSyncUserDataKey,
+ base::AdaptCallbackForRepeating(base::BindOnce(
+ &BackgroundSyncManager::InitDidGetDataFromBackend,
+ weak_ptr_factory_.GetWeakPtr(), std::move(callback))));
}
void BackgroundSyncManager::InitDidGetDataFromBackend(
- const base::Closure& callback,
+ base::OnceClosure callback,
const std::vector<std::pair<int64_t, std::string>>& user_data,
ServiceWorkerStatusCode status) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
if (status != SERVICE_WORKER_OK && status != SERVICE_WORKER_ERROR_NOT_FOUND) {
LOG(ERROR) << "BackgroundSync failed to init due to backend failure.";
- DisableAndClearManager(callback);
+ DisableAndClearManager(std::move(callback));
return;
}
@@ -392,63 +395,66 @@ void BackgroundSyncManager::InitDidGetDataFromBackend(
if (corruption_detected) {
LOG(ERROR) << "Corruption detected in background sync backend";
- DisableAndClearManager(callback);
+ DisableAndClearManager(std::move(callback));
return;
}
FireReadyEvents();
- base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, callback);
+ base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, std::move(callback));
}
void BackgroundSyncManager::RegisterCheckIfHasMainFrame(
int64_t sw_registration_id,
const BackgroundSyncRegistrationOptions& options,
- const StatusAndRegistrationCallback& callback) {
+ StatusAndRegistrationCallback callback) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
ServiceWorkerRegistration* sw_registration =
service_worker_context_->GetLiveRegistration(sw_registration_id);
if (!sw_registration || !sw_registration->active_version()) {
RecordFailureAndPostError(BACKGROUND_SYNC_STATUS_NO_SERVICE_WORKER,
- callback);
+ std::move(callback));
return;
}
HasMainFrameProviderHost(
sw_registration->pattern().GetOrigin(),
- base::Bind(&BackgroundSyncManager::RegisterDidCheckIfMainFrame,
- weak_ptr_factory_.GetWeakPtr(), sw_registration_id, options,
- callback));
+ base::BindOnce(&BackgroundSyncManager::RegisterDidCheckIfMainFrame,
+ weak_ptr_factory_.GetWeakPtr(), sw_registration_id,
+ options, std::move(callback)));
}
void BackgroundSyncManager::RegisterDidCheckIfMainFrame(
int64_t sw_registration_id,
const BackgroundSyncRegistrationOptions& options,
- const StatusAndRegistrationCallback& callback,
+ StatusAndRegistrationCallback callback,
bool has_main_frame_client) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
if (!has_main_frame_client) {
- RecordFailureAndPostError(BACKGROUND_SYNC_STATUS_NOT_ALLOWED, callback);
+ RecordFailureAndPostError(BACKGROUND_SYNC_STATUS_NOT_ALLOWED,
+ std::move(callback));
return;
}
- RegisterImpl(sw_registration_id, options, callback);
+ RegisterImpl(sw_registration_id, options, std::move(callback));
}
void BackgroundSyncManager::RegisterImpl(
int64_t sw_registration_id,
const BackgroundSyncRegistrationOptions& options,
- const StatusAndRegistrationCallback& callback) {
+ StatusAndRegistrationCallback callback) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
if (disabled_) {
- RecordFailureAndPostError(BACKGROUND_SYNC_STATUS_STORAGE_ERROR, callback);
+ RecordFailureAndPostError(BACKGROUND_SYNC_STATUS_STORAGE_ERROR,
+ std::move(callback));
return;
}
if (options.tag.length() > kMaxTagLength) {
- RecordFailureAndPostError(BACKGROUND_SYNC_STATUS_NOT_ALLOWED, callback);
+ RecordFailureAndPostError(BACKGROUND_SYNC_STATUS_NOT_ALLOWED,
+ std::move(callback));
return;
}
@@ -456,30 +462,30 @@ void BackgroundSyncManager::RegisterImpl(
service_worker_context_->GetLiveRegistration(sw_registration_id);
if (!sw_registration || !sw_registration->active_version()) {
RecordFailureAndPostError(BACKGROUND_SYNC_STATUS_NO_SERVICE_WORKER,
- callback);
+ std::move(callback));
return;
}
BrowserThread::PostTaskAndReplyWithResult(
BrowserThread::UI, FROM_HERE,
- base::Bind(&GetBackgroundSyncPermissionOnUIThread,
- service_worker_context_,
- sw_registration->pattern().GetOrigin()),
- base::Bind(&BackgroundSyncManager::RegisterDidAskForPermission,
- weak_ptr_factory_.GetWeakPtr(), sw_registration_id, options,
- callback));
+ base::BindOnce(&GetBackgroundSyncPermissionOnUIThread,
+ service_worker_context_,
+ sw_registration->pattern().GetOrigin()),
+ base::BindOnce(&BackgroundSyncManager::RegisterDidAskForPermission,
+ weak_ptr_factory_.GetWeakPtr(), sw_registration_id,
+ options, std::move(callback)));
}
void BackgroundSyncManager::RegisterDidAskForPermission(
int64_t sw_registration_id,
const BackgroundSyncRegistrationOptions& options,
- const StatusAndRegistrationCallback& callback,
+ StatusAndRegistrationCallback callback,
blink::mojom::PermissionStatus permission_status) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
if (permission_status == blink::mojom::PermissionStatus::DENIED) {
RecordFailureAndPostError(BACKGROUND_SYNC_STATUS_PERMISSION_DENIED,
- callback);
+ std::move(callback));
return;
}
DCHECK(permission_status == blink::mojom::PermissionStatus::GRANTED);
@@ -489,14 +495,15 @@ void BackgroundSyncManager::RegisterDidAskForPermission(
if (!sw_registration || !sw_registration->active_version()) {
// The service worker was shut down in the interim.
RecordFailureAndPostError(BACKGROUND_SYNC_STATUS_NO_SERVICE_WORKER,
- callback);
+ std::move(callback));
return;
}
- BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
- base::Bind(&NotifyBackgroundSyncRegisteredOnUIThread,
- service_worker_context_,
- sw_registration->pattern().GetOrigin()));
+ BrowserThread::PostTask(
+ BrowserThread::UI, FROM_HERE,
+ base::BindOnce(&NotifyBackgroundSyncRegisteredOnUIThread,
+ service_worker_context_,
+ sw_registration->pattern().GetOrigin()));
BackgroundSyncRegistration* existing_registration =
LookupActiveRegistration(sw_registration_id, options.tag);
@@ -518,9 +525,10 @@ void BackgroundSyncManager::RegisterDidAskForPermission(
base::ThreadTaskRunnerHandle::Get()->PostTask(
FROM_HERE,
- base::Bind(callback, BACKGROUND_SYNC_STATUS_OK,
- base::Passed(base::MakeUnique<BackgroundSyncRegistration>(
- *existing_registration))));
+ base::BindOnce(
+ std::move(callback), BACKGROUND_SYNC_STATUS_OK,
+ base::Passed(base::MakeUnique<BackgroundSyncRegistration>(
+ *existing_registration))));
return;
}
@@ -536,19 +544,19 @@ void BackgroundSyncManager::RegisterDidAskForPermission(
sw_registration->pattern().GetOrigin(),
new_registration);
- StoreRegistrations(
- sw_registration_id,
- base::Bind(&BackgroundSyncManager::RegisterDidStore,
- weak_ptr_factory_.GetWeakPtr(), sw_registration_id,
- new_registration, callback));
+ StoreRegistrations(sw_registration_id,
+ base::AdaptCallbackForRepeating(base::BindOnce(
+ &BackgroundSyncManager::RegisterDidStore,
+ weak_ptr_factory_.GetWeakPtr(), sw_registration_id,
+ new_registration, std::move(callback))));
}
-void BackgroundSyncManager::DisableAndClearManager(
- const base::Closure& callback) {
+void BackgroundSyncManager::DisableAndClearManager(base::OnceClosure callback) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
if (disabled_) {
- base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, callback);
+ base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
+ std::move(callback));
return;
}
@@ -561,39 +569,43 @@ void BackgroundSyncManager::DisableAndClearManager(
// loading from storage), so reload the registrations from storage again.
GetDataFromBackend(
kBackgroundSyncUserDataKey,
- base::Bind(&BackgroundSyncManager::DisableAndClearDidGetRegistrations,
- weak_ptr_factory_.GetWeakPtr(), callback));
+ base::AdaptCallbackForRepeating(base::BindOnce(
+ &BackgroundSyncManager::DisableAndClearDidGetRegistrations,
+ weak_ptr_factory_.GetWeakPtr(), std::move(callback))));
}
void BackgroundSyncManager::DisableAndClearDidGetRegistrations(
- const base::Closure& callback,
+ base::OnceClosure callback,
const std::vector<std::pair<int64_t, std::string>>& user_data,
ServiceWorkerStatusCode status) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
if (status != SERVICE_WORKER_OK || user_data.empty()) {
- base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, callback);
+ base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
+ std::move(callback));
return;
}
- base::Closure barrier_closure =
- base::BarrierClosure(user_data.size(), callback);
+ base::RepeatingClosure barrier_closure =
+ base::BarrierClosure(user_data.size(), std::move(callback));
for (const auto& sw_id_and_regs : user_data) {
service_worker_context_->ClearRegistrationUserData(
sw_id_and_regs.first, {kBackgroundSyncUserDataKey},
- base::Bind(&BackgroundSyncManager::DisableAndClearManagerClearedOne,
- weak_ptr_factory_.GetWeakPtr(), barrier_closure));
+ base::AdaptCallbackForRepeating(base::BindOnce(
+ &BackgroundSyncManager::DisableAndClearManagerClearedOne,
+ weak_ptr_factory_.GetWeakPtr(), barrier_closure)));
}
}
void BackgroundSyncManager::DisableAndClearManagerClearedOne(
- const base::Closure& barrier_closure,
+ base::OnceClosure barrier_closure,
ServiceWorkerStatusCode status) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
// The status doesn't matter at this point, there is nothing else to be done.
- base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, barrier_closure);
+ base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
+ std::move(barrier_closure));
}
BackgroundSyncRegistration* BackgroundSyncManager::LookupActiveRegistration(
@@ -653,14 +665,15 @@ void BackgroundSyncManager::StoreRegistrations(
void BackgroundSyncManager::RegisterDidStore(
int64_t sw_registration_id,
const BackgroundSyncRegistration& new_registration,
- const StatusAndRegistrationCallback& callback,
+ StatusAndRegistrationCallback callback,
ServiceWorkerStatusCode status) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
if (status == SERVICE_WORKER_ERROR_NOT_FOUND) {
// The service worker registration is gone.
active_registrations_.erase(sw_registration_id);
- RecordFailureAndPostError(BACKGROUND_SYNC_STATUS_STORAGE_ERROR, callback);
+ RecordFailureAndPostError(BACKGROUND_SYNC_STATUS_STORAGE_ERROR,
+ std::move(callback));
return;
}
@@ -669,8 +682,8 @@ void BackgroundSyncManager::RegisterDidStore(
"failure.";
BackgroundSyncMetrics::CountRegisterFailure(
BACKGROUND_SYNC_STATUS_STORAGE_ERROR);
- DisableAndClearManager(
- base::Bind(callback, BACKGROUND_SYNC_STATUS_STORAGE_ERROR, nullptr));
+ DisableAndClearManager(base::BindOnce(
+ std::move(callback), BACKGROUND_SYNC_STATUS_STORAGE_ERROR, nullptr));
return;
}
@@ -686,9 +699,9 @@ void BackgroundSyncManager::RegisterDidStore(
base::ThreadTaskRunnerHandle::Get()->PostTask(
FROM_HERE,
- base::Bind(callback, BACKGROUND_SYNC_STATUS_OK,
- base::Passed(base::MakeUnique<BackgroundSyncRegistration>(
- new_registration))));
+ base::BindOnce(std::move(callback), BACKGROUND_SYNC_STATUS_OK,
+ base::Passed(base::MakeUnique<BackgroundSyncRegistration>(
+ new_registration))));
}
void BackgroundSyncManager::RemoveActiveRegistration(int64_t sw_registration_id,
@@ -750,9 +763,10 @@ void BackgroundSyncManager::DispatchSyncEvent(
if (active_version->running_status() != EmbeddedWorkerStatus::RUNNING) {
active_version->RunAfterStartWorker(
ServiceWorkerMetrics::EventType::SYNC,
- base::Bind(&BackgroundSyncManager::DispatchSyncEvent,
- weak_ptr_factory_.GetWeakPtr(), tag, active_version,
- last_chance, callback),
+ base::AdaptCallbackForRepeating(
+ base::BindOnce(&BackgroundSyncManager::DispatchSyncEvent,
+ weak_ptr_factory_.GetWeakPtr(), tag, active_version,
+ last_chance, callback)),
callback);
return;
}
@@ -764,33 +778,34 @@ void BackgroundSyncManager::DispatchSyncEvent(
active_version->event_dispatcher()->DispatchSyncEvent(
tag, last_chance,
- base::Bind(&OnSyncEventFinished, std::move(active_version), request_id,
- callback));
+ base::BindOnce(&OnSyncEventFinished, std::move(active_version),
+ request_id, callback));
}
-void BackgroundSyncManager::ScheduleDelayedTask(const base::Closure& callback,
+void BackgroundSyncManager::ScheduleDelayedTask(base::OnceClosure callback,
base::TimeDelta delay) {
- base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(FROM_HERE, callback,
- delay);
+ base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
+ FROM_HERE, std::move(callback), delay);
}
-void BackgroundSyncManager::HasMainFrameProviderHost(
- const GURL& origin,
- const BoolCallback& callback) {
- service_worker_context_->HasMainFrameProviderHost(origin, callback);
+void BackgroundSyncManager::HasMainFrameProviderHost(const GURL& origin,
+ BoolCallback callback) {
+ service_worker_context_->HasMainFrameProviderHost(
+ origin, base::AdaptCallbackForRepeating(std::move(callback)));
}
void BackgroundSyncManager::GetRegistrationsImpl(
int64_t sw_registration_id,
- const StatusAndRegistrationsCallback& callback) {
+ StatusAndRegistrationsCallback callback) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
std::vector<std::unique_ptr<BackgroundSyncRegistration>> out_registrations;
if (disabled_) {
base::ThreadTaskRunnerHandle::Get()->PostTask(
- FROM_HERE, base::Bind(callback, BACKGROUND_SYNC_STATUS_STORAGE_ERROR,
- base::Passed(&out_registrations)));
+ FROM_HERE, base::BindOnce(std::move(callback),
+ BACKGROUND_SYNC_STATUS_STORAGE_ERROR,
+ base::Passed(&out_registrations)));
return;
}
@@ -808,8 +823,8 @@ void BackgroundSyncManager::GetRegistrationsImpl(
}
base::ThreadTaskRunnerHandle::Get()->PostTask(
- FROM_HERE, base::Bind(callback, BACKGROUND_SYNC_STATUS_OK,
- base::Passed(&out_registrations)));
+ FROM_HERE, base::BindOnce(std::move(callback), BACKGROUND_SYNC_STATUS_OK,
+ base::Passed(&out_registrations)));
}
bool BackgroundSyncManager::AreOptionConditionsMet(
@@ -873,9 +888,10 @@ void BackgroundSyncManager::RunInBackgroundIfNecessary() {
// keep the browser running.
BrowserThread::PostTask(
BrowserThread::UI, FROM_HERE,
- base::Bind(RunInBackgroundOnUIThread, service_worker_context_,
- !soonest_wakeup_delta.is_max() /* should run in background */,
- soonest_wakeup_delta.InMilliseconds()));
+ base::BindOnce(
+ RunInBackgroundOnUIThread, service_worker_context_,
+ !soonest_wakeup_delta.is_max() /* should run in background */,
+ soonest_wakeup_delta.InMilliseconds()));
}
void BackgroundSyncManager::FireReadyEvents() {
@@ -885,15 +901,16 @@ void BackgroundSyncManager::FireReadyEvents() {
return;
op_scheduler_.ScheduleOperation(
- base::Bind(&BackgroundSyncManager::FireReadyEventsImpl,
- weak_ptr_factory_.GetWeakPtr(), MakeEmptyCompletion()));
+ base::BindOnce(&BackgroundSyncManager::FireReadyEventsImpl,
+ weak_ptr_factory_.GetWeakPtr(), MakeEmptyCompletion()));
}
-void BackgroundSyncManager::FireReadyEventsImpl(const base::Closure& callback) {
+void BackgroundSyncManager::FireReadyEventsImpl(base::OnceClosure callback) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
if (disabled_) {
- base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, callback);
+ base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
+ std::move(callback));
return;
}
@@ -918,7 +935,8 @@ void BackgroundSyncManager::FireReadyEventsImpl(const base::Closure& callback) {
if (sw_id_and_tags_to_fire.empty()) {
RunInBackgroundIfNecessary();
- base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, callback);
+ base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
+ std::move(callback));
return;
}
@@ -926,16 +944,16 @@ void BackgroundSyncManager::FireReadyEventsImpl(const base::Closure& callback) {
// Fire the sync event of the ready registrations and run |callback| once
// they're all done.
- base::Closure events_fired_barrier_closure = base::BarrierClosure(
+ base::RepeatingClosure events_fired_barrier_closure = base::BarrierClosure(
sw_id_and_tags_to_fire.size(),
- base::Bind(&BackgroundSyncManager::FireReadyEventsAllEventsFiring,
- weak_ptr_factory_.GetWeakPtr(), callback));
+ base::BindOnce(&BackgroundSyncManager::FireReadyEventsAllEventsFiring,
+ weak_ptr_factory_.GetWeakPtr(), std::move(callback)));
// Record the total time taken after all events have run to completion.
- base::Closure events_completed_barrier_closure =
+ base::RepeatingClosure events_completed_barrier_closure =
base::BarrierClosure(sw_id_and_tags_to_fire.size(),
- base::Bind(&OnAllSyncEventsCompleted, start_time,
- sw_id_and_tags_to_fire.size()));
+ base::BindOnce(&OnAllSyncEventsCompleted, start_time,
+ sw_id_and_tags_to_fire.size()));
for (const auto& sw_id_and_tag : sw_id_and_tags_to_fire) {
int64_t service_worker_id = sw_id_and_tag.first;
@@ -945,26 +963,27 @@ void BackgroundSyncManager::FireReadyEventsImpl(const base::Closure& callback) {
service_worker_context_->FindReadyRegistrationForId(
service_worker_id, active_registrations_[service_worker_id].origin,
- base::Bind(&BackgroundSyncManager::FireReadyEventsDidFindRegistration,
- weak_ptr_factory_.GetWeakPtr(), sw_id_and_tag.second,
- registration->id(), events_fired_barrier_closure,
- events_completed_barrier_closure));
+ base::AdaptCallbackForRepeating(base::BindOnce(
+ &BackgroundSyncManager::FireReadyEventsDidFindRegistration,
+ weak_ptr_factory_.GetWeakPtr(), sw_id_and_tag.second,
+ registration->id(), events_fired_barrier_closure,
+ events_completed_barrier_closure)));
}
}
void BackgroundSyncManager::FireReadyEventsDidFindRegistration(
const std::string& tag,
BackgroundSyncRegistration::RegistrationId registration_id,
- const base::Closure& event_fired_callback,
- const base::Closure& event_completed_callback,
+ base::OnceClosure event_fired_callback,
+ base::OnceClosure event_completed_callback,
ServiceWorkerStatusCode service_worker_status,
scoped_refptr<ServiceWorkerRegistration> service_worker_registration) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
if (service_worker_status != SERVICE_WORKER_OK) {
- base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
- event_fired_callback);
- base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
- event_completed_callback);
+ base::ThreadTaskRunnerHandle::Get()->PostTask(
+ FROM_HERE, std::move(event_fired_callback));
+ base::ThreadTaskRunnerHandle::Get()->PostTask(
+ FROM_HERE, std::move(event_completed_callback));
return;
}
@@ -981,26 +1000,26 @@ void BackgroundSyncManager::FireReadyEventsDidFindRegistration(
HasMainFrameProviderHost(
service_worker_registration->pattern().GetOrigin(),
- base::Bind(&BackgroundSyncMetrics::RecordEventStarted));
+ base::BindOnce(&BackgroundSyncMetrics::RecordEventStarted));
DispatchSyncEvent(
registration->options()->tag,
service_worker_registration->active_version(), last_chance,
- base::Bind(&BackgroundSyncManager::EventComplete,
- weak_ptr_factory_.GetWeakPtr(), service_worker_registration,
- service_worker_registration->id(), tag,
- event_completed_callback));
+ base::AdaptCallbackForRepeating(base::BindOnce(
+ &BackgroundSyncManager::EventComplete, weak_ptr_factory_.GetWeakPtr(),
+ service_worker_registration, service_worker_registration->id(), tag,
+ std::move(event_completed_callback))));
- base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
- event_fired_callback);
+ base::ThreadTaskRunnerHandle::Get()->PostTask(
+ FROM_HERE, std::move(event_fired_callback));
}
void BackgroundSyncManager::FireReadyEventsAllEventsFiring(
- const base::Closure& callback) {
+ base::OnceClosure callback) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
RunInBackgroundIfNecessary();
- base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, callback);
+ base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, std::move(callback));
}
// |service_worker_registration| is just to keep the registration alive
@@ -1009,30 +1028,32 @@ void BackgroundSyncManager::EventComplete(
scoped_refptr<ServiceWorkerRegistration> service_worker_registration,
int64_t service_worker_id,
const std::string& tag,
- const base::Closure& callback,
+ base::OnceClosure callback,
ServiceWorkerStatusCode status_code) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
if (disabled_) {
- base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, callback);
+ base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
+ std::move(callback));
return;
}
- op_scheduler_.ScheduleOperation(
- base::Bind(&BackgroundSyncManager::EventCompleteImpl,
- weak_ptr_factory_.GetWeakPtr(), service_worker_id, tag,
- status_code, op_scheduler_.WrapCallbackToRunNext(callback)));
+ op_scheduler_.ScheduleOperation(base::BindOnce(
+ &BackgroundSyncManager::EventCompleteImpl, weak_ptr_factory_.GetWeakPtr(),
+ service_worker_id, tag, status_code,
+ op_scheduler_.WrapCallbackToRunNext(std::move(callback))));
}
void BackgroundSyncManager::EventCompleteImpl(
int64_t service_worker_id,
const std::string& tag,
ServiceWorkerStatusCode status_code,
- const base::Closure& callback) {
+ base::OnceClosure callback) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
if (disabled_) {
- base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, callback);
+ base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
+ std::move(callback));
return;
}
@@ -1041,7 +1062,8 @@ void BackgroundSyncManager::EventCompleteImpl(
BackgroundSyncRegistration* registration =
LookupActiveRegistration(service_worker_id, tag);
if (!registration) {
- base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, callback);
+ base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
+ std::move(callback));
return;
}
@@ -1057,8 +1079,8 @@ void BackgroundSyncManager::EventCompleteImpl(
if (sw_registration) {
HasMainFrameProviderHost(
sw_registration->pattern().GetOrigin(),
- base::Bind(&BackgroundSyncMetrics::RecordEventResult,
- status_code == SERVICE_WORKER_OK));
+ base::BindOnce(&BackgroundSyncMetrics::RecordEventResult,
+ status_code == SERVICE_WORKER_OK));
}
bool registration_completed = true;
@@ -1090,36 +1112,38 @@ void BackgroundSyncManager::EventCompleteImpl(
}
}
- StoreRegistrations(
- service_worker_id,
- base::Bind(&BackgroundSyncManager::EventCompleteDidStore,
- weak_ptr_factory_.GetWeakPtr(), service_worker_id, callback));
+ StoreRegistrations(service_worker_id,
+ base::AdaptCallbackForRepeating(base::BindOnce(
+ &BackgroundSyncManager::EventCompleteDidStore,
+ weak_ptr_factory_.GetWeakPtr(), service_worker_id,
+ std::move(callback))));
}
void BackgroundSyncManager::EventCompleteDidStore(
int64_t service_worker_id,
- const base::Closure& callback,
+ base::OnceClosure callback,
ServiceWorkerStatusCode status_code) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
if (status_code == SERVICE_WORKER_ERROR_NOT_FOUND) {
// The registration is gone.
active_registrations_.erase(service_worker_id);
- base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, callback);
+ base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
+ std::move(callback));
return;
}
if (status_code != SERVICE_WORKER_OK) {
LOG(ERROR) << "BackgroundSync failed to store registration due to backend "
"failure.";
- DisableAndClearManager(callback);
+ DisableAndClearManager(std::move(callback));
return;
}
// Fire any ready events and call RunInBackground if anything is waiting.
FireReadyEvents();
- base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, callback);
+ base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, std::move(callback));
}
// static
@@ -1133,21 +1157,21 @@ void BackgroundSyncManager::OnAllSyncEventsCompleted(
void BackgroundSyncManager::OnRegistrationDeletedImpl(
int64_t sw_registration_id,
- const base::Closure& callback) {
+ base::OnceClosure callback) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
// The backend (ServiceWorkerStorage) will delete the data, so just delete the
// memory representation here.
active_registrations_.erase(sw_registration_id);
- base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, callback);
+ base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, std::move(callback));
}
-void BackgroundSyncManager::OnStorageWipedImpl(const base::Closure& callback) {
+void BackgroundSyncManager::OnStorageWipedImpl(base::OnceClosure callback) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
active_registrations_.clear();
disabled_ = false;
- InitImpl(callback);
+ InitImpl(std::move(callback));
}
void BackgroundSyncManager::OnNetworkChanged() {
@@ -1156,18 +1180,17 @@ void BackgroundSyncManager::OnNetworkChanged() {
FireReadyEvents();
}
-void BackgroundSyncManager::SetMaxSyncAttemptsImpl(
- int max_attempts,
- const base::Closure& callback) {
+void BackgroundSyncManager::SetMaxSyncAttemptsImpl(int max_attempts,
+ base::OnceClosure callback) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
parameters_->max_sync_attempts = max_attempts;
- base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, callback);
+ base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, std::move(callback));
}
-base::Closure BackgroundSyncManager::MakeEmptyCompletion() {
+base::OnceClosure BackgroundSyncManager::MakeEmptyCompletion() {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
- return op_scheduler_.WrapCallbackToRunNext(base::Bind(&base::DoNothing));
+ return op_scheduler_.WrapCallbackToRunNext(base::BindOnce(&base::DoNothing));
}
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698