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/child/background_sync/background_sync_provider.h" | 5 #include "content/child/background_sync/background_sync_provider.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
220 delete this; | 220 delete this; |
221 } | 221 } |
222 | 222 |
223 void BackgroundSyncProvider::RegisterCallback( | 223 void BackgroundSyncProvider::RegisterCallback( |
224 scoped_ptr<blink::WebSyncRegistrationCallbacks> callbacks, | 224 scoped_ptr<blink::WebSyncRegistrationCallbacks> callbacks, |
225 BackgroundSyncError error, | 225 BackgroundSyncError error, |
226 const SyncRegistrationPtr& options) { | 226 const SyncRegistrationPtr& options) { |
227 // TODO(iclelland): Determine the correct error message to return in each case | 227 // TODO(iclelland): Determine the correct error message to return in each case |
228 scoped_ptr<blink::WebSyncRegistration> result; | 228 scoped_ptr<blink::WebSyncRegistration> result; |
229 switch (error) { | 229 switch (error) { |
230 case BACKGROUND_SYNC_ERROR_NONE: | 230 case BackgroundSyncError::NONE: |
231 if (!options.is_null()) | 231 if (!options.is_null()) |
232 result = | 232 result = |
233 mojo::ConvertTo<scoped_ptr<blink::WebSyncRegistration>>(options); | 233 mojo::ConvertTo<scoped_ptr<blink::WebSyncRegistration>>(options); |
234 callbacks->onSuccess(blink::adoptWebPtr(result.release())); | 234 callbacks->onSuccess(blink::adoptWebPtr(result.release())); |
235 break; | 235 break; |
236 case BACKGROUND_SYNC_ERROR_NOT_FOUND: | 236 case BackgroundSyncError::NOT_FOUND: |
237 NOTREACHED(); | 237 NOTREACHED(); |
238 break; | 238 break; |
239 case BACKGROUND_SYNC_ERROR_STORAGE: | 239 case BackgroundSyncError::STORAGE: |
240 callbacks->onError( | 240 callbacks->onError( |
241 blink::WebSyncError(blink::WebSyncError::ErrorTypeUnknown, | 241 blink::WebSyncError(blink::WebSyncError::ErrorTypeUnknown, |
242 "Background Sync is disabled.")); | 242 "Background Sync is disabled.")); |
243 break; | 243 break; |
244 case BACKGROUND_SYNC_ERROR_NOT_ALLOWED: | 244 case BackgroundSyncError::NOT_ALLOWED: |
245 callbacks->onError( | 245 callbacks->onError( |
246 blink::WebSyncError(blink::WebSyncError::ErrorTypeNoPermission, | 246 blink::WebSyncError(blink::WebSyncError::ErrorTypeNoPermission, |
247 "Attempted to register a sync event without a " | 247 "Attempted to register a sync event without a " |
248 "window or registration tag too long.")); | 248 "window or registration tag too long.")); |
249 break; | 249 break; |
250 case BACKGROUND_SYNC_ERROR_NO_SERVICE_WORKER: | 250 case BackgroundSyncError::NO_SERVICE_WORKER: |
251 callbacks->onError( | 251 callbacks->onError( |
252 blink::WebSyncError(blink::WebSyncError::ErrorTypeUnknown, | 252 blink::WebSyncError(blink::WebSyncError::ErrorTypeUnknown, |
253 "No service worker is active.")); | 253 "No service worker is active.")); |
254 break; | 254 break; |
255 } | 255 } |
256 } | 256 } |
257 | 257 |
258 void BackgroundSyncProvider::UnregisterCallback( | 258 void BackgroundSyncProvider::UnregisterCallback( |
259 scoped_ptr<blink::WebSyncUnregistrationCallbacks> callbacks, | 259 scoped_ptr<blink::WebSyncUnregistrationCallbacks> callbacks, |
260 BackgroundSyncError error) { | 260 BackgroundSyncError error) { |
261 // TODO(iclelland): Determine the correct error message to return in each case | 261 // TODO(iclelland): Determine the correct error message to return in each case |
262 switch (error) { | 262 switch (error) { |
263 case BACKGROUND_SYNC_ERROR_NONE: | 263 case BackgroundSyncError::NONE: |
264 callbacks->onSuccess(true); | 264 callbacks->onSuccess(true); |
265 break; | 265 break; |
266 case BACKGROUND_SYNC_ERROR_NOT_FOUND: | 266 case BackgroundSyncError::NOT_FOUND: |
267 callbacks->onSuccess(false); | 267 callbacks->onSuccess(false); |
268 break; | 268 break; |
269 case BACKGROUND_SYNC_ERROR_STORAGE: | 269 case BackgroundSyncError::STORAGE: |
270 callbacks->onError( | 270 callbacks->onError( |
271 blink::WebSyncError(blink::WebSyncError::ErrorTypeUnknown, | 271 blink::WebSyncError(blink::WebSyncError::ErrorTypeUnknown, |
272 "Background Sync is disabled.")); | 272 "Background Sync is disabled.")); |
273 break; | 273 break; |
274 case BACKGROUND_SYNC_ERROR_NOT_ALLOWED: | 274 case BackgroundSyncError::NOT_ALLOWED: |
275 // This error should never be returned from | 275 // This error should never be returned from |
276 // BackgroundSyncManager::Unregister | 276 // BackgroundSyncManager::Unregister |
277 NOTREACHED(); | 277 NOTREACHED(); |
278 break; | 278 break; |
279 case BACKGROUND_SYNC_ERROR_NO_SERVICE_WORKER: | 279 case BackgroundSyncError::NO_SERVICE_WORKER: |
280 callbacks->onError( | 280 callbacks->onError( |
281 blink::WebSyncError(blink::WebSyncError::ErrorTypeUnknown, | 281 blink::WebSyncError(blink::WebSyncError::ErrorTypeUnknown, |
282 "No service worker is active.")); | 282 "No service worker is active.")); |
283 break; | 283 break; |
284 } | 284 } |
285 } | 285 } |
286 | 286 |
287 void BackgroundSyncProvider::GetRegistrationCallback( | 287 void BackgroundSyncProvider::GetRegistrationCallback( |
288 scoped_ptr<blink::WebSyncRegistrationCallbacks> callbacks, | 288 scoped_ptr<blink::WebSyncRegistrationCallbacks> callbacks, |
289 BackgroundSyncError error, | 289 BackgroundSyncError error, |
290 const SyncRegistrationPtr& options) { | 290 const SyncRegistrationPtr& options) { |
291 // TODO(iclelland): Determine the correct error message to return in each case | 291 // TODO(iclelland): Determine the correct error message to return in each case |
292 scoped_ptr<blink::WebSyncRegistration> result; | 292 scoped_ptr<blink::WebSyncRegistration> result; |
293 switch (error) { | 293 switch (error) { |
294 case BACKGROUND_SYNC_ERROR_NONE: | 294 case BackgroundSyncError::NONE: |
295 if (!options.is_null()) | 295 if (!options.is_null()) |
296 result = | 296 result = |
297 mojo::ConvertTo<scoped_ptr<blink::WebSyncRegistration>>(options); | 297 mojo::ConvertTo<scoped_ptr<blink::WebSyncRegistration>>(options); |
298 callbacks->onSuccess(blink::adoptWebPtr(result.release())); | 298 callbacks->onSuccess(blink::adoptWebPtr(result.release())); |
299 break; | 299 break; |
300 case BACKGROUND_SYNC_ERROR_NOT_FOUND: | 300 case BackgroundSyncError::NOT_FOUND: |
301 callbacks->onSuccess(nullptr); | 301 callbacks->onSuccess(nullptr); |
302 break; | 302 break; |
303 case BACKGROUND_SYNC_ERROR_STORAGE: | 303 case BackgroundSyncError::STORAGE: |
304 callbacks->onError( | 304 callbacks->onError( |
305 blink::WebSyncError(blink::WebSyncError::ErrorTypeUnknown, | 305 blink::WebSyncError(blink::WebSyncError::ErrorTypeUnknown, |
306 "Background Sync is disabled.")); | 306 "Background Sync is disabled.")); |
307 break; | 307 break; |
308 case BACKGROUND_SYNC_ERROR_NOT_ALLOWED: | 308 case BackgroundSyncError::NOT_ALLOWED: |
309 // This error should never be returned from | 309 // This error should never be returned from |
310 // BackgroundSyncManager::GetRegistration | 310 // BackgroundSyncManager::GetRegistration |
311 NOTREACHED(); | 311 NOTREACHED(); |
312 break; | 312 break; |
313 case BACKGROUND_SYNC_ERROR_NO_SERVICE_WORKER: | 313 case BackgroundSyncError::NO_SERVICE_WORKER: |
314 callbacks->onError( | 314 callbacks->onError( |
315 blink::WebSyncError(blink::WebSyncError::ErrorTypeUnknown, | 315 blink::WebSyncError(blink::WebSyncError::ErrorTypeUnknown, |
316 "No service worker is active.")); | 316 "No service worker is active.")); |
317 break; | 317 break; |
318 } | 318 } |
319 } | 319 } |
320 | 320 |
321 void BackgroundSyncProvider::GetRegistrationsCallback( | 321 void BackgroundSyncProvider::GetRegistrationsCallback( |
322 scoped_ptr<blink::WebSyncGetRegistrationsCallbacks> callbacks, | 322 scoped_ptr<blink::WebSyncGetRegistrationsCallbacks> callbacks, |
323 BackgroundSyncError error, | 323 BackgroundSyncError error, |
324 const mojo::Array<SyncRegistrationPtr>& registrations) { | 324 const mojo::Array<SyncRegistrationPtr>& registrations) { |
325 // TODO(iclelland): Determine the correct error message to return in each case | 325 // TODO(iclelland): Determine the correct error message to return in each case |
326 switch (error) { | 326 switch (error) { |
327 case BACKGROUND_SYNC_ERROR_NONE: { | 327 case BackgroundSyncError::NONE: { |
328 blink::WebVector<blink::WebSyncRegistration*> results( | 328 blink::WebVector<blink::WebSyncRegistration*> results( |
329 registrations.size()); | 329 registrations.size()); |
330 for (size_t i = 0; i < registrations.size(); ++i) { | 330 for (size_t i = 0; i < registrations.size(); ++i) { |
331 results[i] = mojo::ConvertTo<scoped_ptr<blink::WebSyncRegistration>>( | 331 results[i] = mojo::ConvertTo<scoped_ptr<blink::WebSyncRegistration>>( |
332 registrations[i]) | 332 registrations[i]) |
333 .release(); | 333 .release(); |
334 } | 334 } |
335 callbacks->onSuccess(results); | 335 callbacks->onSuccess(results); |
336 break; | 336 break; |
337 } | 337 } |
338 case BACKGROUND_SYNC_ERROR_NOT_FOUND: | 338 case BackgroundSyncError::NOT_FOUND: |
339 case BACKGROUND_SYNC_ERROR_NOT_ALLOWED: | 339 case BackgroundSyncError::NOT_ALLOWED: |
340 // These errors should never be returned from | 340 // These errors should never be returned from |
341 // BackgroundSyncManager::GetRegistrations | 341 // BackgroundSyncManager::GetRegistrations |
342 NOTREACHED(); | 342 NOTREACHED(); |
343 break; | 343 break; |
344 case BACKGROUND_SYNC_ERROR_STORAGE: | 344 case BackgroundSyncError::STORAGE: |
345 callbacks->onError( | 345 callbacks->onError( |
346 blink::WebSyncError(blink::WebSyncError::ErrorTypeUnknown, | 346 blink::WebSyncError(blink::WebSyncError::ErrorTypeUnknown, |
347 "Background Sync is disabled.")); | 347 "Background Sync is disabled.")); |
348 break; | 348 break; |
349 case BACKGROUND_SYNC_ERROR_NO_SERVICE_WORKER: | 349 case BackgroundSyncError::NO_SERVICE_WORKER: |
350 callbacks->onError( | 350 callbacks->onError( |
351 blink::WebSyncError(blink::WebSyncError::ErrorTypeUnknown, | 351 blink::WebSyncError(blink::WebSyncError::ErrorTypeUnknown, |
352 "No service worker is active.")); | 352 "No service worker is active.")); |
353 break; | 353 break; |
354 } | 354 } |
355 } | 355 } |
356 | 356 |
357 void BackgroundSyncProvider::GetPermissionStatusCallback( | 357 void BackgroundSyncProvider::GetPermissionStatusCallback( |
358 scoped_ptr<blink::WebSyncGetPermissionStatusCallbacks> callbacks, | 358 scoped_ptr<blink::WebSyncGetPermissionStatusCallbacks> callbacks, |
359 BackgroundSyncError error, | 359 BackgroundSyncError error, |
360 PermissionStatus status) { | 360 PermissionStatus status) { |
361 // TODO(iclelland): Determine the correct error message to return in each case | 361 // TODO(iclelland): Determine the correct error message to return in each case |
362 switch (error) { | 362 switch (error) { |
363 case BACKGROUND_SYNC_ERROR_NONE: | 363 case BackgroundSyncError::NONE: |
364 switch (status) { | 364 switch (status) { |
365 case PERMISSION_STATUS_GRANTED: | 365 case PermissionStatus::GRANTED: |
366 callbacks->onSuccess(blink::WebSyncPermissionStatusGranted); | 366 callbacks->onSuccess(blink::WebSyncPermissionStatusGranted); |
367 break; | 367 break; |
368 case PERMISSION_STATUS_DENIED: | 368 case PermissionStatus::DENIED: |
369 callbacks->onSuccess(blink::WebSyncPermissionStatusDenied); | 369 callbacks->onSuccess(blink::WebSyncPermissionStatusDenied); |
370 break; | 370 break; |
371 case PERMISSION_STATUS_ASK: | 371 case PermissionStatus::ASK: |
372 callbacks->onSuccess(blink::WebSyncPermissionStatusPrompt); | 372 callbacks->onSuccess(blink::WebSyncPermissionStatusPrompt); |
373 break; | 373 break; |
374 } | 374 } |
375 break; | 375 break; |
376 case BACKGROUND_SYNC_ERROR_NOT_FOUND: | 376 case BackgroundSyncError::NOT_FOUND: |
377 case BACKGROUND_SYNC_ERROR_NOT_ALLOWED: | 377 case BackgroundSyncError::NOT_ALLOWED: |
378 // These errors should never be returned from | 378 // These errors should never be returned from |
379 // BackgroundSyncManager::GetPermissionStatus | 379 // BackgroundSyncManager::GetPermissionStatus |
380 NOTREACHED(); | 380 NOTREACHED(); |
381 break; | 381 break; |
382 case BACKGROUND_SYNC_ERROR_STORAGE: | 382 case BackgroundSyncError::STORAGE: |
383 callbacks->onError( | 383 callbacks->onError( |
384 blink::WebSyncError(blink::WebSyncError::ErrorTypeUnknown, | 384 blink::WebSyncError(blink::WebSyncError::ErrorTypeUnknown, |
385 "Background Sync is disabled.")); | 385 "Background Sync is disabled.")); |
386 break; | 386 break; |
387 case BACKGROUND_SYNC_ERROR_NO_SERVICE_WORKER: | 387 case BackgroundSyncError::NO_SERVICE_WORKER: |
388 callbacks->onError( | 388 callbacks->onError( |
389 blink::WebSyncError(blink::WebSyncError::ErrorTypeUnknown, | 389 blink::WebSyncError(blink::WebSyncError::ErrorTypeUnknown, |
390 "No service worker is active.")); | 390 "No service worker is active.")); |
391 break; | 391 break; |
392 } | 392 } |
393 } | 393 } |
394 | 394 |
395 void BackgroundSyncProvider::NotifyWhenFinishedCallback( | 395 void BackgroundSyncProvider::NotifyWhenFinishedCallback( |
396 scoped_ptr<blink::WebSyncNotifyWhenFinishedCallbacks> callbacks, | 396 scoped_ptr<blink::WebSyncNotifyWhenFinishedCallbacks> callbacks, |
397 BackgroundSyncError error, | 397 BackgroundSyncError error, |
398 BackgroundSyncState state) { | 398 BackgroundSyncState state) { |
399 switch (error) { | 399 switch (error) { |
400 case BACKGROUND_SYNC_ERROR_NONE: | 400 case BackgroundSyncError::NONE: |
401 switch (state) { | 401 switch (state) { |
402 case BACKGROUND_SYNC_STATE_PENDING: | 402 case BackgroundSyncState::PENDING: |
403 case BACKGROUND_SYNC_STATE_FIRING: | 403 case BackgroundSyncState::FIRING: |
404 case BACKGROUND_SYNC_STATE_REREGISTERED_WHILE_FIRING: | 404 case BackgroundSyncState::REREGISTERED_WHILE_FIRING: |
405 case BACKGROUND_SYNC_STATE_UNREGISTERED_WHILE_FIRING: | 405 case BackgroundSyncState::UNREGISTERED_WHILE_FIRING: |
406 NOTREACHED(); | 406 NOTREACHED(); |
407 break; | 407 break; |
408 case BACKGROUND_SYNC_STATE_SUCCESS: | 408 case BackgroundSyncState::SUCCESS: |
409 callbacks->onSuccess(); | 409 callbacks->onSuccess(); |
410 break; | 410 break; |
411 case BACKGROUND_SYNC_STATE_FAILED: | 411 case BackgroundSyncState::FAILED: |
412 case BACKGROUND_SYNC_STATE_UNREGISTERED: | 412 case BackgroundSyncState::UNREGISTERED: |
413 callbacks->onError(blink::WebSyncError( | 413 callbacks->onError(blink::WebSyncError( |
414 blink::WebSyncError::ErrorTypeAbort, | 414 blink::WebSyncError::ErrorTypeAbort, |
415 "Sync failed, unregistered, or overwritten.")); | 415 "Sync failed, unregistered, or overwritten.")); |
416 break; | 416 break; |
417 } | 417 } |
418 break; | 418 break; |
419 case BACKGROUND_SYNC_ERROR_NOT_FOUND: | 419 case BackgroundSyncError::NOT_FOUND: |
420 case BACKGROUND_SYNC_ERROR_NOT_ALLOWED: | 420 case BackgroundSyncError::NOT_ALLOWED: |
421 NOTREACHED(); | 421 NOTREACHED(); |
422 break; | 422 break; |
423 case BACKGROUND_SYNC_ERROR_STORAGE: | 423 case BackgroundSyncError::STORAGE: |
424 callbacks->onError( | 424 callbacks->onError( |
425 blink::WebSyncError(blink::WebSyncError::ErrorTypeUnknown, | 425 blink::WebSyncError(blink::WebSyncError::ErrorTypeUnknown, |
426 "Background Sync is disabled.")); | 426 "Background Sync is disabled.")); |
427 break; | 427 break; |
428 case BACKGROUND_SYNC_ERROR_NO_SERVICE_WORKER: | 428 case BackgroundSyncError::NO_SERVICE_WORKER: |
429 callbacks->onError( | 429 callbacks->onError( |
430 blink::WebSyncError(blink::WebSyncError::ErrorTypeUnknown, | 430 blink::WebSyncError(blink::WebSyncError::ErrorTypeUnknown, |
431 "No service worker is active.")); | 431 "No service worker is active.")); |
432 break; | 432 break; |
433 } | 433 } |
434 } | 434 } |
435 | 435 |
436 BackgroundSyncServicePtr& | 436 BackgroundSyncServicePtr& |
437 BackgroundSyncProvider::GetBackgroundSyncServicePtr() { | 437 BackgroundSyncProvider::GetBackgroundSyncServicePtr() { |
438 if (!background_sync_service_.get()) { | 438 if (!background_sync_service_.get()) { |
439 mojo::InterfaceRequest<BackgroundSyncService> request = | 439 mojo::InterfaceRequest<BackgroundSyncService> request = |
440 mojo::GetProxy(&background_sync_service_); | 440 mojo::GetProxy(&background_sync_service_); |
441 main_thread_task_runner_->PostTask( | 441 main_thread_task_runner_->PostTask( |
442 FROM_HERE, | 442 FROM_HERE, |
443 base::Bind(&ConnectToServiceOnMainThread, base::Passed(&request))); | 443 base::Bind(&ConnectToServiceOnMainThread, base::Passed(&request))); |
444 } | 444 } |
445 return background_sync_service_; | 445 return background_sync_service_; |
446 } | 446 } |
447 | 447 |
448 } // namespace content | 448 } // namespace content |
OLD | NEW |