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

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

Issue 1068863002: [BackgroundSync] Add new registration options from the spec (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments from PS1 Created 5 years, 8 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.pb.h"
10 #include "content/browser/service_worker/service_worker_context_wrapper.h" 9 #include "content/browser/service_worker/service_worker_context_wrapper.h"
11 #include "content/browser/service_worker/service_worker_storage.h" 10 #include "content/browser/service_worker/service_worker_storage.h"
12 #include "content/public/browser/browser_thread.h" 11 #include "content/public/browser/browser_thread.h"
13 12
14 namespace { 13 namespace {
15 const char kBackgroundSyncUserDataKey[] = "BackgroundSyncUserData"; 14 const char kBackgroundSyncUserDataKey[] = "BackgroundSyncUserData";
16 } 15 }
17 16
18 namespace content { 17 namespace content {
19 18
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 for (int i = 0, max = registrations_proto.registration_size(); i < max; 186 for (int i = 0, max = registrations_proto.registration_size(); i < max;
188 ++i) { 187 ++i) {
189 const BackgroundSyncRegistrationProto& registration_proto = 188 const BackgroundSyncRegistrationProto& registration_proto =
190 registrations_proto.registration(i); 189 registrations_proto.registration(i);
191 190
192 if (registration_proto.id() >= registrations->next_id) { 191 if (registration_proto.id() >= registrations->next_id) {
193 corruption_detected = true; 192 corruption_detected = true;
194 break; 193 break;
195 } 194 }
196 195
197 BackgroundSyncRegistration registration(registration_proto.id(), 196 BackgroundSyncRegistration* registration =
198 registration_proto.name()); 197 &registrations->name_to_registration_map[registration_proto.name()];
199 if (registration_proto.has_min_period()) 198
200 registration.min_period = registration_proto.min_period(); 199 registration->id = registration_proto.id();
201 registrations->name_to_registration_map[registration_proto.name()] = 200 registration->name = registration_proto.name();
202 registration; 201 registration->fire_once = registration_proto.fire_once();
202 registration->min_period = registration_proto.min_period();
203 registration->network_state = registration_proto.network_state();
204 registration->power_state = registration_proto.power_state();
203 } 205 }
204 } 206 }
205 207
206 if (corruption_detected) 208 if (corruption_detected)
207 break; 209 break;
208 } 210 }
209 211
210 if (corruption_detected) { 212 if (corruption_detected) {
211 LOG(ERROR) << "Corruption detected in background sync backend"; 213 LOG(ERROR) << "Corruption detected in background sync backend";
212 DisableAndClearManager(base::Bind(callback)); 214 DisableAndClearManager(base::Bind(callback));
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
335 registrations_proto.set_next_registration_id(registrations.next_id); 337 registrations_proto.set_next_registration_id(registrations.next_id);
336 338
337 for (const auto& name_and_registration : 339 for (const auto& name_and_registration :
338 registrations.name_to_registration_map) { 340 registrations.name_to_registration_map) {
339 const BackgroundSyncRegistration& registration = 341 const BackgroundSyncRegistration& registration =
340 name_and_registration.second; 342 name_and_registration.second;
341 BackgroundSyncRegistrationProto* registration_proto = 343 BackgroundSyncRegistrationProto* registration_proto =
342 registrations_proto.add_registration(); 344 registrations_proto.add_registration();
343 registration_proto->set_id(registration.id); 345 registration_proto->set_id(registration.id);
344 registration_proto->set_name(registration.name); 346 registration_proto->set_name(registration.name);
345 if (registration.min_period != 0) 347 registration_proto->set_fire_once(registration.fire_once);
346 registration_proto->set_min_period(registration.min_period); 348 registration_proto->set_min_period(registration.min_period);
349 registration_proto->set_network_state(registration.network_state);
350 registration_proto->set_power_state(registration.power_state);
347 } 351 }
348 std::string serialized; 352 std::string serialized;
349 bool success = registrations_proto.SerializeToString(&serialized); 353 bool success = registrations_proto.SerializeToString(&serialized);
350 DCHECK(success); 354 DCHECK(success);
351 355
352 StoreDataInBackend(sw_registration_id, origin, kBackgroundSyncUserDataKey, 356 StoreDataInBackend(sw_registration_id, origin, kBackgroundSyncUserDataKey,
353 serialized, callback); 357 serialized, callback);
354 } 358 }
355 359
356 void BackgroundSyncManager::RegisterDidStore( 360 void BackgroundSyncManager::RegisterDidStore(
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
569 weak_ptr_factory_.GetWeakPtr(), callback); 573 weak_ptr_factory_.GetWeakPtr(), callback);
570 } 574 }
571 575
572 BackgroundSyncManager::StatusCallback 576 BackgroundSyncManager::StatusCallback
573 BackgroundSyncManager::MakeStatusCompletion(const StatusCallback& callback) { 577 BackgroundSyncManager::MakeStatusCompletion(const StatusCallback& callback) {
574 return base::Bind(&BackgroundSyncManager::PendingStatusCallback, 578 return base::Bind(&BackgroundSyncManager::PendingStatusCallback,
575 weak_ptr_factory_.GetWeakPtr(), callback); 579 weak_ptr_factory_.GetWeakPtr(), callback);
576 } 580 }
577 581
578 } // namespace content 582 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698