| 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 "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/SyncError.h" | 10 #include "modules/background_sync/SyncError.h" |
| 10 #include "modules/background_sync/SyncRegistration.h" | 11 #include "modules/background_sync/SyncRegistration.h" |
| 11 #include "modules/serviceworkers/ServiceWorkerRegistration.h" | 12 #include "modules/serviceworkers/ServiceWorkerRegistration.h" |
| 12 | 13 |
| 13 namespace blink { | 14 namespace blink { |
| 14 | 15 |
| 15 SyncRegistrationCallbacks::SyncRegistrationCallbacks(PassRefPtrWillBeRawPtr<Scri
ptPromiseResolver> resolver, ServiceWorkerRegistration* serviceWorkerRegistratio
n) | 16 SyncRegistrationCallbacks::SyncRegistrationCallbacks(PassRefPtrWillBeRawPtr<Scri
ptPromiseResolver> resolver, ServiceWorkerRegistration* serviceWorkerRegistratio
n) |
| 16 : m_resolver(resolver) | 17 : m_resolver(resolver) |
| 17 , m_serviceWorkerRegistration(serviceWorkerRegistration) | 18 , m_serviceWorkerRegistration(serviceWorkerRegistration) |
| 18 { | 19 { |
| 19 ASSERT(m_resolver); | 20 ASSERT(m_resolver); |
| 20 ASSERT(m_serviceWorkerRegistration); | 21 ASSERT(m_serviceWorkerRegistration); |
| 21 } | 22 } |
| 22 | 23 |
| 23 SyncRegistrationCallbacks::~SyncRegistrationCallbacks() | 24 SyncRegistrationCallbacks::~SyncRegistrationCallbacks() |
| 24 { | 25 { |
| 25 } | 26 } |
| 26 | 27 |
| 27 void SyncRegistrationCallbacks::onSuccess(WebSyncRegistration* webSyncRegistrati
on) | 28 void SyncRegistrationCallbacks::onSuccess(WebSyncRegistration* webSyncRegistrati
on) |
| 28 { | 29 { |
| 29 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ
eDOMObjectsAreStopped()) { | 30 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ
eDOMObjectsAreStopped()) { |
| 30 SyncRegistration::dispose(webSyncRegistration); | 31 SyncRegistration::dispose(webSyncRegistration); |
| 31 return; | 32 return; |
| 32 } | 33 } |
| 33 | 34 |
| 34 if (!webSyncRegistration) { | 35 if (!webSyncRegistration) { |
| 35 m_resolver->resolve(v8::Null(m_resolver->scriptState()->isolate())); | 36 m_resolver->resolve(v8::Null(m_resolver->scriptState()->isolate())); |
| 36 return; | 37 return; |
| 37 } | 38 } |
| 38 m_resolver->resolve(SyncRegistration::take(m_resolver.get(), webSyncRegistra
tion, m_serviceWorkerRegistration)); | 39 switch (webSyncRegistration->periodicity) { |
| 40 case WebSyncRegistration::PeriodicityPeriodic: |
| 41 m_resolver->resolve(PeriodicSyncRegistration::take(m_resolver.get(), web
SyncRegistration, m_serviceWorkerRegistration)); |
| 42 break; |
| 43 case WebSyncRegistration::PeriodicityOneShot: |
| 44 m_resolver->resolve(SyncRegistration::take(m_resolver.get(), webSyncRegi
stration, m_serviceWorkerRegistration)); |
| 45 break; |
| 46 } |
| 39 } | 47 } |
| 40 | 48 |
| 41 void SyncRegistrationCallbacks::onError(WebSyncError* error) | 49 void SyncRegistrationCallbacks::onError(WebSyncError* error) |
| 42 { | 50 { |
| 43 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ
eDOMObjectsAreStopped()) { | 51 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ
eDOMObjectsAreStopped()) { |
| 44 SyncError::dispose(error); | 52 SyncError::dispose(error); |
| 45 return; | 53 return; |
| 46 } | 54 } |
| 47 m_resolver->reject(SyncError::take(m_resolver.get(), error)); | 55 m_resolver->reject(SyncError::take(m_resolver.get(), error)); |
| 48 } | 56 } |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 98 delete(webSyncRegistrations); | 106 delete(webSyncRegistrations); |
| 99 } | 107 } |
| 100 return; | 108 return; |
| 101 } | 109 } |
| 102 | 110 |
| 103 if (!webSyncRegistrations) { | 111 if (!webSyncRegistrations) { |
| 104 m_resolver->resolve(v8::Null(m_resolver->scriptState()->isolate())); | 112 m_resolver->resolve(v8::Null(m_resolver->scriptState()->isolate())); |
| 105 return; | 113 return; |
| 106 } | 114 } |
| 107 | 115 |
| 108 Vector<SyncRegistration*> syncRegistrations; | 116 if (webSyncRegistrations->size() && (*webSyncRegistrations)[0]->periodicity
== blink::WebSyncRegistration::PeriodicityOneShot) { |
| 109 for (size_t i = 0; i < webSyncRegistrations->size(); ++i) { | 117 Vector<SyncRegistration*> syncRegistrations; |
| 110 WebSyncRegistration* webSyncRegistration = (*webSyncRegistrations)[i]; | 118 for (size_t i = 0; i < webSyncRegistrations->size(); ++i) { |
| 111 SyncRegistration* reg = SyncRegistration::take(m_resolver.get(), webSync
Registration, m_serviceWorkerRegistration); | 119 WebSyncRegistration* webSyncRegistration = (*webSyncRegistrations)[i
]; |
| 112 syncRegistrations.append(reg); | 120 SyncRegistration* reg = SyncRegistration::take(m_resolver.get(), web
SyncRegistration, m_serviceWorkerRegistration); |
| 121 syncRegistrations.append(reg); |
| 122 } |
| 123 delete(webSyncRegistrations); |
| 124 m_resolver->resolve(syncRegistrations); |
| 125 } else { |
| 126 Vector<PeriodicSyncRegistration*> syncRegistrations; |
| 127 for (size_t i = 0; i < webSyncRegistrations->size(); ++i) { |
| 128 WebSyncRegistration* webSyncRegistration = (*webSyncRegistrations)[i
]; |
| 129 PeriodicSyncRegistration* reg = PeriodicSyncRegistration::take(m_res
olver.get(), webSyncRegistration, m_serviceWorkerRegistration); |
| 130 syncRegistrations.append(reg); |
| 131 } |
| 132 delete(webSyncRegistrations); |
| 133 m_resolver->resolve(syncRegistrations); |
| 113 } | 134 } |
| 114 delete(webSyncRegistrations); | |
| 115 m_resolver->resolve(syncRegistrations); | |
| 116 } | 135 } |
| 117 | 136 |
| 118 void SyncGetRegistrationsCallbacks::onError(WebSyncError* error) | 137 void SyncGetRegistrationsCallbacks::onError(WebSyncError* error) |
| 119 { | 138 { |
| 120 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ
eDOMObjectsAreStopped()) { | 139 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ
eDOMObjectsAreStopped()) { |
| 121 SyncError::dispose(error); | 140 SyncError::dispose(error); |
| 122 return; | 141 return; |
| 123 } | 142 } |
| 124 m_resolver->reject(SyncError::take(m_resolver.get(), error)); | 143 m_resolver->reject(SyncError::take(m_resolver.get(), error)); |
| 125 } | 144 } |
| 126 | 145 |
| 127 } // namespace blink | 146 } // namespace blink |
| OLD | NEW |