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

Side by Side Diff: content/browser/background_sync/background_sync_manager.cc

Issue 1110993003: [BackgroundSyncManager] Remove origin argument from public BackgroundSyncManager methods (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 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 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 "base/barrier_closure.h" 7 #include "base/barrier_closure.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "content/browser/background_sync/background_sync_network_observer.h" 9 #include "content/browser/background_sync/background_sync_network_observer.h"
10 #include "content/browser/service_worker/service_worker_context_wrapper.h" 10 #include "content/browser/service_worker/service_worker_context_wrapper.h"
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 : RegistrationKey(registration.tag, registration.periodicity) { 55 : RegistrationKey(registration.tag, registration.periodicity) {
56 } 56 }
57 57
58 BackgroundSyncManager::RegistrationKey::RegistrationKey( 58 BackgroundSyncManager::RegistrationKey::RegistrationKey(
59 const std::string& tag, 59 const std::string& tag,
60 SyncPeriodicity periodicity) 60 SyncPeriodicity periodicity)
61 : value_(periodicity == SYNC_ONE_SHOT ? "o_" + tag : "p_" + tag) { 61 : value_(periodicity == SYNC_ONE_SHOT ? "o_" + tag : "p_" + tag) {
62 } 62 }
63 63
64 void BackgroundSyncManager::Register( 64 void BackgroundSyncManager::Register(
65 const GURL& origin,
66 int64 sw_registration_id, 65 int64 sw_registration_id,
67 const BackgroundSyncRegistration& sync_registration, 66 const BackgroundSyncRegistration& sync_registration,
68 const StatusAndRegistrationCallback& callback) { 67 const StatusAndRegistrationCallback& callback) {
69 DCHECK_CURRENTLY_ON(BrowserThread::IO); 68 DCHECK_CURRENTLY_ON(BrowserThread::IO);
70 DCHECK_EQ(BackgroundSyncRegistration::kInvalidRegistrationId, 69 DCHECK_EQ(BackgroundSyncRegistration::kInvalidRegistrationId,
71 sync_registration.id); 70 sync_registration.id);
72 71
73 if (disabled_) { 72 if (disabled_) {
74 base::MessageLoop::current()->PostTask( 73 base::MessageLoop::current()->PostTask(
75 FROM_HERE, 74 FROM_HERE,
76 base::Bind(callback, ERROR_TYPE_STORAGE, BackgroundSyncRegistration())); 75 base::Bind(callback, ERROR_TYPE_STORAGE, BackgroundSyncRegistration()));
77 return; 76 return;
78 } 77 }
79 78
80 op_scheduler_.ScheduleOperation(base::Bind( 79 op_scheduler_.ScheduleOperation(base::Bind(
81 &BackgroundSyncManager::RegisterImpl, weak_ptr_factory_.GetWeakPtr(), 80 &BackgroundSyncManager::RegisterImpl, weak_ptr_factory_.GetWeakPtr(),
82 origin, sw_registration_id, sync_registration, 81 sw_registration_id, sync_registration,
83 MakeStatusAndRegistrationCompletion(callback))); 82 MakeStatusAndRegistrationCompletion(callback)));
84 } 83 }
85 84
86 void BackgroundSyncManager::Unregister( 85 void BackgroundSyncManager::Unregister(
87 const GURL& origin,
88 int64 sw_registration_id, 86 int64 sw_registration_id,
89 const std::string& sync_registration_tag, 87 const std::string& sync_registration_tag,
90 SyncPeriodicity periodicity, 88 SyncPeriodicity periodicity,
91 BackgroundSyncRegistration::RegistrationId sync_registration_id, 89 BackgroundSyncRegistration::RegistrationId sync_registration_id,
92 const StatusCallback& callback) { 90 const StatusCallback& callback) {
93 DCHECK_CURRENTLY_ON(BrowserThread::IO); 91 DCHECK_CURRENTLY_ON(BrowserThread::IO);
94 92
95 if (disabled_) { 93 if (disabled_) {
96 base::MessageLoop::current()->PostTask( 94 base::MessageLoop::current()->PostTask(
97 FROM_HERE, base::Bind(callback, ERROR_TYPE_STORAGE)); 95 FROM_HERE, base::Bind(callback, ERROR_TYPE_STORAGE));
98 return; 96 return;
99 } 97 }
100 98
101 RegistrationKey registration_key(sync_registration_tag, periodicity); 99 RegistrationKey registration_key(sync_registration_tag, periodicity);
102 100
103 op_scheduler_.ScheduleOperation(base::Bind( 101 op_scheduler_.ScheduleOperation(base::Bind(
104 &BackgroundSyncManager::UnregisterImpl, weak_ptr_factory_.GetWeakPtr(), 102 &BackgroundSyncManager::UnregisterImpl, weak_ptr_factory_.GetWeakPtr(),
105 origin, sw_registration_id, registration_key, sync_registration_id, 103 sw_registration_id, registration_key, sync_registration_id,
106 MakeStatusCompletion(callback))); 104 MakeStatusCompletion(callback)));
107 } 105 }
108 106
109 void BackgroundSyncManager::GetRegistration( 107 void BackgroundSyncManager::GetRegistration(
110 const GURL& origin,
111 int64 sw_registration_id, 108 int64 sw_registration_id,
112 const std::string sync_registration_tag, 109 const std::string sync_registration_tag,
113 SyncPeriodicity periodicity, 110 SyncPeriodicity periodicity,
114 const StatusAndRegistrationCallback& callback) { 111 const StatusAndRegistrationCallback& callback) {
115 DCHECK_CURRENTLY_ON(BrowserThread::IO); 112 DCHECK_CURRENTLY_ON(BrowserThread::IO);
116 113
117 if (disabled_) { 114 if (disabled_) {
118 base::MessageLoop::current()->PostTask( 115 base::MessageLoop::current()->PostTask(
119 FROM_HERE, 116 FROM_HERE,
120 base::Bind(callback, ERROR_TYPE_STORAGE, BackgroundSyncRegistration())); 117 base::Bind(callback, ERROR_TYPE_STORAGE, BackgroundSyncRegistration()));
121 return; 118 return;
122 } 119 }
123 120
124 RegistrationKey registration_key(sync_registration_tag, periodicity); 121 RegistrationKey registration_key(sync_registration_tag, periodicity);
125 122
126 op_scheduler_.ScheduleOperation(base::Bind( 123 op_scheduler_.ScheduleOperation(base::Bind(
127 &BackgroundSyncManager::GetRegistrationImpl, 124 &BackgroundSyncManager::GetRegistrationImpl,
128 weak_ptr_factory_.GetWeakPtr(), origin, sw_registration_id, 125 weak_ptr_factory_.GetWeakPtr(), sw_registration_id, registration_key,
129 registration_key, MakeStatusAndRegistrationCompletion(callback))); 126 MakeStatusAndRegistrationCompletion(callback)));
130 } 127 }
131 128
132 void BackgroundSyncManager::OnRegistrationDeleted(int64 registration_id, 129 void BackgroundSyncManager::OnRegistrationDeleted(int64 registration_id,
133 const GURL& pattern) { 130 const GURL& pattern) {
134 DCHECK_CURRENTLY_ON(BrowserThread::IO); 131 DCHECK_CURRENTLY_ON(BrowserThread::IO);
135 132
136 // Operations already in the queue will either fail when they write to storage 133 // Operations already in the queue will either fail when they write to storage
137 // or return stale results based on registrations loaded in memory. This is 134 // or return stale results based on registrations loaded in memory. This is
138 // inconsequential since the service worker is gone. 135 // inconsequential since the service worker is gone.
139 op_scheduler_.ScheduleOperation(base::Bind( 136 op_scheduler_.ScheduleOperation(base::Bind(
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 DisableAndClearManager(base::Bind(callback)); 238 DisableAndClearManager(base::Bind(callback));
242 return; 239 return;
243 } 240 }
244 241
245 // TODO(jkarlin): Call the scheduling algorithm here. 242 // TODO(jkarlin): Call the scheduling algorithm here.
246 243
247 base::MessageLoop::current()->PostTask(FROM_HERE, base::Bind(callback)); 244 base::MessageLoop::current()->PostTask(FROM_HERE, base::Bind(callback));
248 } 245 }
249 246
250 void BackgroundSyncManager::RegisterImpl( 247 void BackgroundSyncManager::RegisterImpl(
251 const GURL& origin,
252 int64 sw_registration_id, 248 int64 sw_registration_id,
253 const BackgroundSyncRegistration& sync_registration, 249 const BackgroundSyncRegistration& sync_registration,
254 const StatusAndRegistrationCallback& callback) { 250 const StatusAndRegistrationCallback& callback) {
255 if (disabled_) { 251 if (disabled_) {
256 base::MessageLoop::current()->PostTask( 252 base::MessageLoop::current()->PostTask(
257 FROM_HERE, 253 FROM_HERE,
258 base::Bind(callback, ERROR_TYPE_STORAGE, BackgroundSyncRegistration())); 254 base::Bind(callback, ERROR_TYPE_STORAGE, BackgroundSyncRegistration()));
259 return; 255 return;
260 } 256 }
261 257
262 const BackgroundSyncRegistration* existing_registration = LookupRegistration( 258 const BackgroundSyncRegistration* existing_registration = LookupRegistration(
263 sw_registration_id, RegistrationKey(sync_registration)); 259 sw_registration_id, RegistrationKey(sync_registration));
264 if (existing_registration && 260 if (existing_registration &&
265 existing_registration->Equals(sync_registration)) { 261 existing_registration->Equals(sync_registration)) {
266 base::MessageLoop::current()->PostTask( 262 base::MessageLoop::current()->PostTask(
267 FROM_HERE, base::Bind(callback, ERROR_TYPE_OK, *existing_registration)); 263 FROM_HERE, base::Bind(callback, ERROR_TYPE_OK, *existing_registration));
268 return; 264 return;
269 } 265 }
270 266
271 BackgroundSyncRegistration new_registration = sync_registration; 267 BackgroundSyncRegistration new_registration = sync_registration;
272 BackgroundSyncRegistrations* registrations = 268 BackgroundSyncRegistrations* registrations =
273 &sw_to_registrations_map_[sw_registration_id]; 269 &sw_to_registrations_map_[sw_registration_id];
274 new_registration.id = registrations->next_id++; 270 new_registration.id = registrations->next_id++;
275 271
276 AddRegistrationToMap(sw_registration_id, origin, new_registration); 272 ServiceWorkerRegistration* sw_registration =
273 service_worker_context_->GetLiveRegistration(sw_registration_id);
274 if (!sw_registration || !sw_registration->active_version()) {
275 base::MessageLoop::current()->PostTask(
276 FROM_HERE, base::Bind(callback, ERROR_TYPE_NO_SERVICE_WORKER,
277 BackgroundSyncRegistration()));
278 return;
279 }
280
281 AddRegistrationToMap(sw_registration_id,
282 sw_registration->pattern().GetOrigin(),
jsbell 2015/04/28 20:52:33 It seems to me we should probably have ServiceWork
283 new_registration);
277 284
278 StoreRegistrations( 285 StoreRegistrations(
279 sw_registration_id, 286 sw_registration_id,
280 base::Bind(&BackgroundSyncManager::RegisterDidStore, 287 base::Bind(&BackgroundSyncManager::RegisterDidStore,
281 weak_ptr_factory_.GetWeakPtr(), sw_registration_id, 288 weak_ptr_factory_.GetWeakPtr(), sw_registration_id,
282 new_registration, callback)); 289 new_registration, callback));
283 } 290 }
284 291
285 void BackgroundSyncManager::DisableAndClearManager( 292 void BackgroundSyncManager::DisableAndClearManager(
286 const base::Closure& callback) { 293 const base::Closure& callback) {
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
447 const std::string& backend_key, 454 const std::string& backend_key,
448 const ServiceWorkerStorage::GetUserDataForAllRegistrationsCallback& 455 const ServiceWorkerStorage::GetUserDataForAllRegistrationsCallback&
449 callback) { 456 callback) {
450 DCHECK_CURRENTLY_ON(BrowserThread::IO); 457 DCHECK_CURRENTLY_ON(BrowserThread::IO);
451 458
452 service_worker_context_->GetUserDataForAllRegistrations(backend_key, 459 service_worker_context_->GetUserDataForAllRegistrations(backend_key,
453 callback); 460 callback);
454 } 461 }
455 462
456 void BackgroundSyncManager::UnregisterImpl( 463 void BackgroundSyncManager::UnregisterImpl(
457 const GURL& origin,
458 int64 sw_registration_id, 464 int64 sw_registration_id,
459 const RegistrationKey& registration_key, 465 const RegistrationKey& registration_key,
460 BackgroundSyncRegistration::RegistrationId sync_registration_id, 466 BackgroundSyncRegistration::RegistrationId sync_registration_id,
461 const StatusCallback& callback) { 467 const StatusCallback& callback) {
462 if (disabled_) { 468 if (disabled_) {
463 base::MessageLoop::current()->PostTask( 469 base::MessageLoop::current()->PostTask(
464 FROM_HERE, base::Bind(callback, ERROR_TYPE_STORAGE)); 470 FROM_HERE, base::Bind(callback, ERROR_TYPE_STORAGE));
465 return; 471 return;
466 } 472 }
467 473
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
499 DisableAndClearManager(base::Bind(callback, ERROR_TYPE_STORAGE)); 505 DisableAndClearManager(base::Bind(callback, ERROR_TYPE_STORAGE));
500 return; 506 return;
501 } 507 }
502 508
503 // TODO(jkarlin): Run the registration algorithm. 509 // TODO(jkarlin): Run the registration algorithm.
504 base::MessageLoop::current()->PostTask(FROM_HERE, 510 base::MessageLoop::current()->PostTask(FROM_HERE,
505 base::Bind(callback, ERROR_TYPE_OK)); 511 base::Bind(callback, ERROR_TYPE_OK));
506 } 512 }
507 513
508 void BackgroundSyncManager::GetRegistrationImpl( 514 void BackgroundSyncManager::GetRegistrationImpl(
509 const GURL& origin,
510 int64 sw_registration_id, 515 int64 sw_registration_id,
511 const RegistrationKey& registration_key, 516 const RegistrationKey& registration_key,
512 const StatusAndRegistrationCallback& callback) { 517 const StatusAndRegistrationCallback& callback) {
513 if (disabled_) { 518 if (disabled_) {
514 base::MessageLoop::current()->PostTask( 519 base::MessageLoop::current()->PostTask(
515 FROM_HERE, 520 FROM_HERE,
516 base::Bind(callback, ERROR_TYPE_STORAGE, BackgroundSyncRegistration())); 521 base::Bind(callback, ERROR_TYPE_STORAGE, BackgroundSyncRegistration()));
517 return; 522 return;
518 } 523 }
519 524
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
593 weak_ptr_factory_.GetWeakPtr(), callback); 598 weak_ptr_factory_.GetWeakPtr(), callback);
594 } 599 }
595 600
596 BackgroundSyncManager::StatusCallback 601 BackgroundSyncManager::StatusCallback
597 BackgroundSyncManager::MakeStatusCompletion(const StatusCallback& callback) { 602 BackgroundSyncManager::MakeStatusCompletion(const StatusCallback& callback) {
598 return base::Bind(&BackgroundSyncManager::PendingStatusCallback, 603 return base::Bind(&BackgroundSyncManager::PendingStatusCallback,
599 weak_ptr_factory_.GetWeakPtr(), callback); 604 weak_ptr_factory_.GetWeakPtr(), callback);
600 } 605 }
601 606
602 } // namespace content 607 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698