OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/serviceworkers/CacheStorage.h" | 6 #include "modules/serviceworkers/CacheStorage.h" |
7 | 7 |
8 #include "bindings/core/v8/ScriptPromiseResolver.h" | 8 #include "bindings/core/v8/ScriptPromiseResolver.h" |
9 #include "bindings/core/v8/ScriptState.h" | 9 #include "bindings/core/v8/ScriptState.h" |
10 #include "core/dom/DOMException.h" | 10 #include "core/dom/DOMException.h" |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
141 | 141 |
142 private: | 142 private: |
143 RefPtr<ScriptPromiseResolver> m_resolver; | 143 RefPtr<ScriptPromiseResolver> m_resolver; |
144 }; | 144 }; |
145 | 145 |
146 CacheStorage* CacheStorage::create(WebServiceWorkerCacheStorage* webCacheStorage
) | 146 CacheStorage* CacheStorage::create(WebServiceWorkerCacheStorage* webCacheStorage
) |
147 { | 147 { |
148 return new CacheStorage(webCacheStorage); | 148 return new CacheStorage(webCacheStorage); |
149 } | 149 } |
150 | 150 |
151 ScriptPromise CacheStorage::get(ScriptState* scriptState, const String& cacheNam
e) | 151 ScriptPromise CacheStorage::open(ScriptState* scriptState, const String& cacheNa
me) |
152 { | 152 { |
153 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scrip
tState); | 153 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scrip
tState); |
154 const ScriptPromise promise = resolver->promise(); | 154 const ScriptPromise promise = resolver->promise(); |
155 | 155 |
156 if (m_nameToCacheMap.contains(cacheName)) { | 156 if (m_nameToCacheMap.contains(cacheName)) { |
157 Cache* cache = m_nameToCacheMap.find(cacheName)->value; | 157 Cache* cache = m_nameToCacheMap.find(cacheName)->value; |
158 resolver->resolve(cache); | 158 resolver->resolve(cache); |
159 return promise; | 159 return promise; |
160 } | 160 } |
161 | 161 |
162 if (m_webCacheStorage) | 162 if (m_webCacheStorage) |
163 m_webCacheStorage->dispatchGet(new WithCacheCallbacks(cacheName, this, r
esolver), cacheName); | 163 m_webCacheStorage->dispatchOpen(new WithCacheCallbacks(cacheName, this,
resolver), cacheName); |
164 else | 164 else |
165 resolver->reject(createNoImplementationException()); | 165 resolver->reject(createNoImplementationException()); |
166 | 166 |
167 return promise; | 167 return promise; |
168 } | 168 } |
169 | 169 |
170 ScriptPromise CacheStorage::has(ScriptState* scriptState, const String& cacheNam
e) | 170 ScriptPromise CacheStorage::has(ScriptState* scriptState, const String& cacheNam
e) |
171 { | 171 { |
172 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scrip
tState); | 172 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scrip
tState); |
173 const ScriptPromise promise = resolver->promise(); | 173 const ScriptPromise promise = resolver->promise(); |
174 | 174 |
175 if (m_nameToCacheMap.contains(cacheName)) { | 175 if (m_nameToCacheMap.contains(cacheName)) { |
176 resolver->resolve(true); | 176 resolver->resolve(true); |
177 return promise; | 177 return promise; |
178 } | 178 } |
179 | 179 |
180 if (m_webCacheStorage) | 180 if (m_webCacheStorage) |
181 m_webCacheStorage->dispatchHas(new Callbacks(resolver), cacheName); | 181 m_webCacheStorage->dispatchHas(new Callbacks(resolver), cacheName); |
182 else | 182 else |
183 resolver->reject(createNoImplementationException()); | 183 resolver->reject(createNoImplementationException()); |
184 | 184 |
185 return promise; | 185 return promise; |
186 } | 186 } |
187 | 187 |
188 ScriptPromise CacheStorage::createFunction(ScriptState* scriptState, const Strin
g& cacheName) | |
189 { | |
190 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scrip
tState); | |
191 const ScriptPromise promise = resolver->promise(); | |
192 | |
193 if (m_webCacheStorage) | |
194 m_webCacheStorage->dispatchCreate(new WithCacheCallbacks(cacheName, this
, resolver), cacheName); | |
195 else | |
196 resolver->reject(createNoImplementationException()); | |
197 | |
198 return promise; | |
199 } | |
200 | |
201 ScriptPromise CacheStorage::deleteFunction(ScriptState* scriptState, const Strin
g& cacheName) | 188 ScriptPromise CacheStorage::deleteFunction(ScriptState* scriptState, const Strin
g& cacheName) |
202 { | 189 { |
203 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scrip
tState); | 190 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scrip
tState); |
204 const ScriptPromise promise = resolver->promise(); | 191 const ScriptPromise promise = resolver->promise(); |
205 | 192 |
206 if (m_webCacheStorage) | 193 if (m_webCacheStorage) |
207 m_webCacheStorage->dispatchDelete(new DeleteCallbacks(cacheName, this, r
esolver), cacheName); | 194 m_webCacheStorage->dispatchDelete(new DeleteCallbacks(cacheName, this, r
esolver), cacheName); |
208 else | 195 else |
209 resolver->reject(createNoImplementationException()); | 196 resolver->reject(createNoImplementationException()); |
210 | 197 |
(...skipping 17 matching lines...) Expand all Loading... |
228 { | 215 { |
229 visitor->trace(m_nameToCacheMap); | 216 visitor->trace(m_nameToCacheMap); |
230 } | 217 } |
231 | 218 |
232 CacheStorage::CacheStorage(WebServiceWorkerCacheStorage* webCacheStorage) | 219 CacheStorage::CacheStorage(WebServiceWorkerCacheStorage* webCacheStorage) |
233 : m_webCacheStorage(webCacheStorage) | 220 : m_webCacheStorage(webCacheStorage) |
234 { | 221 { |
235 } | 222 } |
236 | 223 |
237 } // namespace blink | 224 } // namespace blink |
OLD | NEW |