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

Side by Side Diff: Source/modules/background_sync/SyncCallbacks.cpp

Issue 963683002: Add IDL and initial Blink API for Background Sync (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Add missing serviceWorkerRegistration.syncManager to interface tests Created 5 years, 9 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "config.h"
6 #include "modules/background_sync/SyncCallbacks.h"
7
8 #include "bindings/core/v8/ScriptPromiseResolver.h"
9 #include "modules/background_sync/SyncError.h"
10 #include "modules/background_sync/SyncRegistration.h"
11 #include "modules/serviceworkers/ServiceWorkerRegistration.h"
12
13 namespace blink {
14
15 SyncRegistrationCallbacks::SyncRegistrationCallbacks(PassRefPtrWillBeRawPtr<Scri ptPromiseResolver> resolver, ServiceWorkerRegistration* serviceWorkerRegistratio n)
16 : m_resolver(resolver)
17 , m_serviceWorkerRegistration(serviceWorkerRegistration)
18 {
19 ASSERT(m_resolver);
20 ASSERT(m_serviceWorkerRegistration);
21 }
22
23 SyncRegistrationCallbacks::~SyncRegistrationCallbacks()
24 {
25 }
26
27 void SyncRegistrationCallbacks::onSuccess(WebSyncRegistration* webSyncRegistrati on)
28 {
29 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ eDOMObjectsAreStopped()) {
30 SyncRegistration::dispose(webSyncRegistration);
31 return;
32 }
33
34 if (!webSyncRegistration) {
35 m_resolver->resolve(v8::Null(m_resolver->scriptState()->isolate()));
36 return;
37 }
38 m_resolver->resolve(SyncRegistration::take(m_resolver.get(), webSyncRegistra tion, m_serviceWorkerRegistration));
39 }
40
41 void SyncRegistrationCallbacks::onError(WebSyncError* error)
42 {
43 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ eDOMObjectsAreStopped()) {
44 SyncError::dispose(error);
45 return;
46 }
47 m_resolver->reject(SyncError::take(m_resolver.get(), error));
48 }
49
50 SyncUnregistrationCallbacks::SyncUnregistrationCallbacks(PassRefPtrWillBeRawPtr< ScriptPromiseResolver> resolver, ServiceWorkerRegistration* serviceWorkerRegistr ation)
51 : m_resolver(resolver)
52 , m_serviceWorkerRegistration(serviceWorkerRegistration)
53 {
54 ASSERT(m_resolver);
55 ASSERT(m_serviceWorkerRegistration);
56 }
57
58 SyncUnregistrationCallbacks::~SyncUnregistrationCallbacks()
59 {
60 }
61
62 void SyncUnregistrationCallbacks::onSuccess(bool* status)
63 {
64 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ eDOMObjectsAreStopped()) {
65 return;
66 }
67
68 m_resolver->resolve(*status);
69 }
70
71 void SyncUnregistrationCallbacks::onError(WebSyncError* error)
72 {
73 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ eDOMObjectsAreStopped()) {
74 SyncError::dispose(error);
75 return;
76 }
77 m_resolver->reject(SyncError::take(m_resolver.get(), error));
78 }
79
80 SyncGetRegistrationsCallbacks::SyncGetRegistrationsCallbacks(PassRefPtrWillBeRaw Ptr<ScriptPromiseResolver> resolver, ServiceWorkerRegistration* serviceWorkerReg istration)
81 : m_resolver(resolver)
82 , m_serviceWorkerRegistration(serviceWorkerRegistration)
83 {
84 ASSERT(m_resolver);
85 ASSERT(m_serviceWorkerRegistration);
86 }
87
88 SyncGetRegistrationsCallbacks::~SyncGetRegistrationsCallbacks()
89 {
90 }
91
92 void SyncGetRegistrationsCallbacks::onSuccess(WebVector<WebSyncRegistration>* we bSyncRegistrations)
93 {
94 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ eDOMObjectsAreStopped()) {
95 for (size_t i = 0; i < webSyncRegistrations->size(); ++i) {
96 WebSyncRegistration webSyncRegistration = (*webSyncRegistrations)[i] ;
97 SyncRegistration::dispose(&webSyncRegistration);
98 }
99 return;
100 }
101
102 if (!webSyncRegistrations) {
103 m_resolver->resolve(v8::Null(m_resolver->scriptState()->isolate()));
104 return;
105 }
106
107 Vector<SyncRegistration*> syncRegistrations;
108 for (size_t i = 0; i < webSyncRegistrations->size(); ++i) {
109 WebSyncRegistration webSyncRegistration = (*webSyncRegistrations)[i];
110 SyncRegistration* reg = SyncRegistration::take(m_resolver.get(), &webSyn cRegistration, m_serviceWorkerRegistration);
111 syncRegistrations.append(reg);
112 }
113 m_resolver->resolve(syncRegistrations);
114 }
115
116 void SyncGetRegistrationsCallbacks::onError(WebSyncError* error)
117 {
118 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ eDOMObjectsAreStopped()) {
119 SyncError::dispose(error);
120 return;
121 }
122 m_resolver->reject(SyncError::take(m_resolver.get(), error));
123 }
124
125 } // namespace blink
OLDNEW
« no previous file with comments | « Source/modules/background_sync/SyncCallbacks.h ('k') | Source/modules/background_sync/SyncError.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698