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

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

Issue 1311053002: [BackgroundSync] Use appopriate type parameters for WebCallbacks (2/4) (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 3 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
jkarlin 2015/08/24 11:50:09 Why this change?
yhirano 2015/08/24 14:07:39 Sorry, this was not intended. Fixed.
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 "config.h" 5 #include "config.h"
6 #include "modules/background_sync/SyncCallbacks.h" 6 #include "modules/background_sync/SyncCallbacks.h"
7 7
8 #include "bindings/core/v8/ScriptPromiseResolver.h" 8 #include "bindings/core/v8/ScriptPromiseResolver.h"
9 #include "modules/background_sync/PeriodicSyncRegistration.h" 9 #include "modules/background_sync/PeriodicSyncRegistration.h"
10 #include "modules/background_sync/SyncError.h" 10 #include "modules/background_sync/SyncError.h"
11 #include "modules/background_sync/SyncRegistration.h" 11 #include "modules/background_sync/SyncRegistration.h"
12 #include "modules/serviceworkers/ServiceWorkerRegistration.h" 12 #include "modules/serviceworkers/ServiceWorkerRegistration.h"
13 #include "wtf/OwnPtr.h" 13 #include "wtf/OwnPtr.h"
14 #include "wtf/PassOwnPtr.h" 14 #include "wtf/PassOwnPtr.h"
15 15
16 namespace blink { 16 namespace blink {
17 17
18 SyncRegistrationCallbacks::SyncRegistrationCallbacks(ScriptPromiseResolver* reso lver, ServiceWorkerRegistration* serviceWorkerRegistration) 18 SyncRegistrationCallbacks::SyncRegistrationCallbacks(ScriptPromiseResolver* reso lver, ServiceWorkerRegistration* serviceWorkerRegistration)
19 : m_resolver(resolver) 19 : m_resolver(resolver)
20 , m_serviceWorkerRegistration(serviceWorkerRegistration) 20 , m_serviceWorkerRegistration(serviceWorkerRegistration)
21 { 21 {
22 ASSERT(m_resolver); 22 ASSERT(m_resolver);
23 ASSERT(m_serviceWorkerRegistration); 23 ASSERT(m_serviceWorkerRegistration);
24 } 24 }
25 25
26 SyncRegistrationCallbacks::~SyncRegistrationCallbacks() 26 SyncRegistrationCallbacks::~SyncRegistrationCallbacks()
27 { 27 {
28 } 28 }
29 29
30 void SyncRegistrationCallbacks::onSuccess(WebSyncRegistration* webSyncRegistrati on) 30 void SyncRegistrationCallbacks::onSuccess(WebPassOwnPtr<WebSyncRegistration> web SyncRegistration)
31 { 31 {
32 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ eDOMObjectsAreStopped()) { 32 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ eDOMObjectsAreStopped()) {
33 SyncRegistration::dispose(webSyncRegistration);
34 return; 33 return;
35 } 34 }
36 35
37 if (!webSyncRegistration) { 36 OwnPtr<WebSyncRegistration> registration = webSyncRegistration.release();
37 if (!registration) {
38 m_resolver->resolve(v8::Null(m_resolver->scriptState()->isolate())); 38 m_resolver->resolve(v8::Null(m_resolver->scriptState()->isolate()));
39 return; 39 return;
40 } 40 }
41 switch (webSyncRegistration->periodicity) { 41 switch (registration->periodicity) {
42 case WebSyncRegistration::PeriodicityPeriodic: 42 case WebSyncRegistration::PeriodicityPeriodic:
43 m_resolver->resolve(PeriodicSyncRegistration::take(m_resolver.get(), web SyncRegistration, m_serviceWorkerRegistration)); 43 m_resolver->resolve(PeriodicSyncRegistration::take(m_resolver.get(), reg istration.release(), m_serviceWorkerRegistration));
44 break; 44 break;
45 case WebSyncRegistration::PeriodicityOneShot: 45 case WebSyncRegistration::PeriodicityOneShot:
46 m_resolver->resolve(SyncRegistration::take(m_resolver.get(), webSyncRegi stration, m_serviceWorkerRegistration)); 46 m_resolver->resolve(SyncRegistration::take(m_resolver.get(), registratio n.release(), m_serviceWorkerRegistration));
47 break; 47 break;
48 } 48 }
49 } 49 }
50 50
51 void SyncRegistrationCallbacks::onError(WebSyncError* error) 51 void SyncRegistrationCallbacks::onError(const WebSyncError& error)
52 { 52 {
53 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ eDOMObjectsAreStopped()) { 53 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ eDOMObjectsAreStopped()) {
54 SyncError::dispose(error);
55 return; 54 return;
56 } 55 }
57 m_resolver->reject(SyncError::take(m_resolver.get(), error)); 56 m_resolver->reject(SyncError::take(m_resolver.get(), error));
58 } 57 }
59 58
60 SyncNotifyWhenDoneCallbacks::SyncNotifyWhenDoneCallbacks(ScriptPromiseResolver* resolver, ServiceWorkerRegistration* serviceWorkerRegistration) 59 SyncNotifyWhenDoneCallbacks::SyncNotifyWhenDoneCallbacks(ScriptPromiseResolver* resolver, ServiceWorkerRegistration* serviceWorkerRegistration)
61 : m_resolver(resolver) 60 : m_resolver(resolver)
62 , m_serviceWorkerRegistration(serviceWorkerRegistration) 61 , m_serviceWorkerRegistration(serviceWorkerRegistration)
63 { 62 {
64 ASSERT(m_resolver); 63 ASSERT(m_resolver);
65 ASSERT(m_serviceWorkerRegistration); 64 ASSERT(m_serviceWorkerRegistration);
66 } 65 }
67 66
68 SyncNotifyWhenDoneCallbacks::~SyncNotifyWhenDoneCallbacks() 67 SyncNotifyWhenDoneCallbacks::~SyncNotifyWhenDoneCallbacks()
69 { 68 {
70 } 69 }
71 70
72 void SyncNotifyWhenDoneCallbacks::onSuccess(bool* status) 71 void SyncNotifyWhenDoneCallbacks::onSuccess(bool status)
73 { 72 {
74 OwnPtr<bool> statusPtr = adoptPtr(status);
75 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ eDOMObjectsAreStopped()) { 73 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ eDOMObjectsAreStopped()) {
76 return; 74 return;
77 } 75 }
78 76
79 m_resolver->resolve(*status); 77 m_resolver->resolve(status);
80 } 78 }
81 79
82 void SyncNotifyWhenDoneCallbacks::onError(WebSyncError* error) 80 void SyncNotifyWhenDoneCallbacks::onError(const WebSyncError& error)
83 { 81 {
84 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ eDOMObjectsAreStopped()) { 82 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ eDOMObjectsAreStopped()) {
85 SyncError::dispose(error);
86 return; 83 return;
87 } 84 }
88 m_resolver->reject(SyncError::take(m_resolver.get(), error)); 85 m_resolver->reject(SyncError::take(m_resolver.get(), error));
89 } 86 }
90 87
91 SyncUnregistrationCallbacks::SyncUnregistrationCallbacks(ScriptPromiseResolver* resolver, ServiceWorkerRegistration* serviceWorkerRegistration) 88 SyncUnregistrationCallbacks::SyncUnregistrationCallbacks(ScriptPromiseResolver* resolver, ServiceWorkerRegistration* serviceWorkerRegistration)
92 : m_resolver(resolver) 89 : m_resolver(resolver)
93 , m_serviceWorkerRegistration(serviceWorkerRegistration) 90 , m_serviceWorkerRegistration(serviceWorkerRegistration)
94 { 91 {
95 ASSERT(m_resolver); 92 ASSERT(m_resolver);
96 ASSERT(m_serviceWorkerRegistration); 93 ASSERT(m_serviceWorkerRegistration);
97 } 94 }
98 95
99 SyncUnregistrationCallbacks::~SyncUnregistrationCallbacks() 96 SyncUnregistrationCallbacks::~SyncUnregistrationCallbacks()
100 { 97 {
101 } 98 }
102 99
103 void SyncUnregistrationCallbacks::onSuccess(bool* status) 100 void SyncUnregistrationCallbacks::onSuccess(bool status)
104 { 101 {
105 OwnPtr<bool> statusPtr = adoptPtr(status);
106 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ eDOMObjectsAreStopped()) { 102 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ eDOMObjectsAreStopped()) {
107 return; 103 return;
108 } 104 }
109 105
110 m_resolver->resolve(*status); 106 m_resolver->resolve(status);
111 } 107 }
112 108
113 void SyncUnregistrationCallbacks::onError(WebSyncError* error) 109 void SyncUnregistrationCallbacks::onError(const WebSyncError& error)
114 { 110 {
115 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ eDOMObjectsAreStopped()) { 111 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ eDOMObjectsAreStopped()) {
116 SyncError::dispose(error);
117 return; 112 return;
118 } 113 }
119 m_resolver->reject(SyncError::take(m_resolver.get(), error)); 114 m_resolver->reject(SyncError::take(m_resolver.get(), error));
120 } 115 }
121 116
122 SyncGetRegistrationsCallbacks::SyncGetRegistrationsCallbacks(ScriptPromiseResolv er* resolver, ServiceWorkerRegistration* serviceWorkerRegistration) 117 SyncGetRegistrationsCallbacks::SyncGetRegistrationsCallbacks(ScriptPromiseResolv er* resolver, ServiceWorkerRegistration* serviceWorkerRegistration)
123 : m_resolver(resolver) 118 : m_resolver(resolver)
124 , m_serviceWorkerRegistration(serviceWorkerRegistration) 119 , m_serviceWorkerRegistration(serviceWorkerRegistration)
125 { 120 {
126 ASSERT(m_resolver); 121 ASSERT(m_resolver);
127 ASSERT(m_serviceWorkerRegistration); 122 ASSERT(m_serviceWorkerRegistration);
128 } 123 }
129 124
130 SyncGetRegistrationsCallbacks::~SyncGetRegistrationsCallbacks() 125 SyncGetRegistrationsCallbacks::~SyncGetRegistrationsCallbacks()
131 { 126 {
132 } 127 }
133 128
134 void SyncGetRegistrationsCallbacks::onSuccess(WebVector<WebSyncRegistration*>* w ebSyncRegistrations) 129 void SyncGetRegistrationsCallbacks::onSuccess(const WebVector<WebSyncRegistratio n*>& webSyncRegistrations)
135 { 130 {
131 Vector<OwnPtr<WebSyncRegistration>> registrations;
132 for (WebSyncRegistration* r : webSyncRegistrations) {
133 registrations.append(adoptPtr(r));
134 }
136 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ eDOMObjectsAreStopped()) { 135 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ eDOMObjectsAreStopped()) {
137 if (webSyncRegistrations) {
138 for (size_t i = 0; i < webSyncRegistrations->size(); ++i)
139 SyncRegistration::dispose((*webSyncRegistrations)[i]);
140 delete (webSyncRegistrations);
141 }
142 return; 136 return;
143 } 137 }
144 138
145 if (!webSyncRegistrations) { 139 if (webSyncRegistrations.size() && webSyncRegistrations[0]->periodicity == W ebSyncRegistration::PeriodicityOneShot) {
146 m_resolver->resolve(v8::Null(m_resolver->scriptState()->isolate()));
147 return;
148 }
149
150 if (webSyncRegistrations->size() && (*webSyncRegistrations)[0]->periodicity == WebSyncRegistration::PeriodicityOneShot) {
151 Vector<SyncRegistration*> syncRegistrations; 140 Vector<SyncRegistration*> syncRegistrations;
152 for (size_t i = 0; i < webSyncRegistrations->size(); ++i) { 141 for (auto& r : registrations) {
153 WebSyncRegistration* webSyncRegistration = (*webSyncRegistrations)[i ]; 142 SyncRegistration* reg = SyncRegistration::take(m_resolver.get(), r.r elease(), m_serviceWorkerRegistration);
154 SyncRegistration* reg = SyncRegistration::take(m_resolver.get(), web SyncRegistration, m_serviceWorkerRegistration);
155 syncRegistrations.append(reg); 143 syncRegistrations.append(reg);
156 } 144 }
157 delete (webSyncRegistrations);
158 m_resolver->resolve(syncRegistrations); 145 m_resolver->resolve(syncRegistrations);
159 } else { 146 } else {
160 Vector<PeriodicSyncRegistration*> syncRegistrations; 147 Vector<PeriodicSyncRegistration*> syncRegistrations;
161 for (size_t i = 0; i < webSyncRegistrations->size(); ++i) { 148 for (auto& r : registrations) {
162 WebSyncRegistration* webSyncRegistration = (*webSyncRegistrations)[i ]; 149 PeriodicSyncRegistration* reg = PeriodicSyncRegistration::take(m_res olver.get(), r.release(), m_serviceWorkerRegistration);
163 PeriodicSyncRegistration* reg = PeriodicSyncRegistration::take(m_res olver.get(), webSyncRegistration, m_serviceWorkerRegistration);
164 syncRegistrations.append(reg); 150 syncRegistrations.append(reg);
165 } 151 }
166 delete (webSyncRegistrations);
167 m_resolver->resolve(syncRegistrations); 152 m_resolver->resolve(syncRegistrations);
168 } 153 }
169 } 154 }
170 155
171 void SyncGetRegistrationsCallbacks::onError(WebSyncError* error) 156 void SyncGetRegistrationsCallbacks::onError(const WebSyncError& error)
172 { 157 {
173 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ eDOMObjectsAreStopped()) { 158 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ eDOMObjectsAreStopped()) {
174 SyncError::dispose(error);
175 return; 159 return;
176 } 160 }
177 m_resolver->reject(SyncError::take(m_resolver.get(), error)); 161 m_resolver->reject(SyncError::take(m_resolver.get(), error));
178 } 162 }
179 163
180 SyncGetPermissionStatusCallbacks::SyncGetPermissionStatusCallbacks(ScriptPromise Resolver* resolver, ServiceWorkerRegistration* serviceWorkerRegistration) 164 SyncGetPermissionStatusCallbacks::SyncGetPermissionStatusCallbacks(ScriptPromise Resolver* resolver, ServiceWorkerRegistration* serviceWorkerRegistration)
181 : m_resolver(resolver) 165 : m_resolver(resolver)
182 , m_serviceWorkerRegistration(serviceWorkerRegistration) 166 , m_serviceWorkerRegistration(serviceWorkerRegistration)
183 { 167 {
184 ASSERT(m_resolver); 168 ASSERT(m_resolver);
185 ASSERT(m_serviceWorkerRegistration); 169 ASSERT(m_serviceWorkerRegistration);
186 } 170 }
187 171
188 SyncGetPermissionStatusCallbacks::~SyncGetPermissionStatusCallbacks() 172 SyncGetPermissionStatusCallbacks::~SyncGetPermissionStatusCallbacks()
189 { 173 {
190 } 174 }
191 175
192 void SyncGetPermissionStatusCallbacks::onSuccess(WebSyncPermissionStatus* status ) 176 void SyncGetPermissionStatusCallbacks::onSuccess(WebSyncPermissionStatus status)
193 { 177 {
194 OwnPtr<WebSyncPermissionStatus> statusPtr = adoptPtr(status);
195 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ eDOMObjectsAreStopped()) { 178 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ eDOMObjectsAreStopped()) {
196 return; 179 return;
197 } 180 }
198 181
199 m_resolver->resolve(permissionString(*statusPtr)); 182 m_resolver->resolve(permissionString(status));
200 } 183 }
201 184
202 void SyncGetPermissionStatusCallbacks::onError(WebSyncError* error) 185 void SyncGetPermissionStatusCallbacks::onError(const WebSyncError& error)
203 { 186 {
204 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ eDOMObjectsAreStopped()) { 187 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ eDOMObjectsAreStopped()) {
205 SyncError::dispose(error);
206 return; 188 return;
207 } 189 }
208 m_resolver->reject(SyncError::take(m_resolver.get(), error)); 190 m_resolver->reject(SyncError::take(m_resolver.get(), error));
209 } 191 }
210 192
211 // static 193 // static
212 String SyncGetPermissionStatusCallbacks::permissionString(WebSyncPermissionStatu s status) 194 String SyncGetPermissionStatusCallbacks::permissionString(WebSyncPermissionStatu s status)
213 { 195 {
214 switch (status) { 196 switch (status) {
215 case WebSyncPermissionStatusGranted: 197 case WebSyncPermissionStatusGranted:
216 return "granted"; 198 return "granted";
217 case WebSyncPermissionStatusDenied: 199 case WebSyncPermissionStatusDenied:
218 return "denied"; 200 return "denied";
219 case WebSyncPermissionStatusPrompt: 201 case WebSyncPermissionStatusPrompt:
220 return "prompt"; 202 return "prompt";
221 } 203 }
222 204
223 ASSERT_NOT_REACHED(); 205 ASSERT_NOT_REACHED();
224 return "denied"; 206 return "denied";
225 } 207 }
226 208
227 } // namespace blink 209 } // 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