Chromium Code Reviews| 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/cachestorage/Cache.h" | 6 #include "modules/cachestorage/Cache.h" |
| 7 | 7 |
| 8 #include "bindings/core/v8/CallbackPromiseAdapter.h" | 8 #include "bindings/core/v8/CallbackPromiseAdapter.h" |
| 9 #include "bindings/core/v8/ExceptionState.h" | 9 #include "bindings/core/v8/ExceptionState.h" |
| 10 #include "bindings/core/v8/ScriptPromiseResolver.h" | 10 #include "bindings/core/v8/ScriptPromiseResolver.h" |
| (...skipping 18 matching lines...) Expand all Loading... | |
| 29 public: | 29 public: |
| 30 CacheMatchCallbacks(PassRefPtrWillBeRawPtr<ScriptPromiseResolver> resolver) | 30 CacheMatchCallbacks(PassRefPtrWillBeRawPtr<ScriptPromiseResolver> resolver) |
| 31 : m_resolver(resolver) { } | 31 : m_resolver(resolver) { } |
| 32 | 32 |
| 33 virtual void onSuccess(WebServiceWorkerResponse* webResponse) override | 33 virtual void onSuccess(WebServiceWorkerResponse* webResponse) override |
| 34 { | 34 { |
| 35 m_resolver->resolve(Response::create(m_resolver->scriptState()->executio nContext(), *webResponse)); | 35 m_resolver->resolve(Response::create(m_resolver->scriptState()->executio nContext(), *webResponse)); |
| 36 m_resolver.clear(); | 36 m_resolver.clear(); |
| 37 } | 37 } |
| 38 | 38 |
| 39 #ifdef CRBUG_494884 | |
|
kinuko
2015/06/17 18:21:05
Hmm, I have the same question... why we need this
nhiroki
2015/06/17 23:34:41
Right, these aren't necessary. Removed.
| |
| 40 // Ownership of |rawReason| must be passed. | |
| 41 virtual void onError(WebServiceWorkerCacheError* rawReason) override | |
| 42 { | |
| 43 OwnPtr<WebServiceWorkerCacheError> reason = adoptPtr(rawReason); | |
| 44 if (*reason == WebServiceWorkerCacheErrorNotFound) | |
| 45 m_resolver->resolve(); | |
| 46 else | |
| 47 m_resolver->reject(CacheStorageError::createException(*reason)); | |
| 48 m_resolver.clear(); | |
| 49 } | |
| 50 #else | |
| 39 virtual void onError(WebServiceWorkerCacheError* reason) override | 51 virtual void onError(WebServiceWorkerCacheError* reason) override |
| 40 { | 52 { |
| 41 if (*reason == WebServiceWorkerCacheErrorNotFound) | 53 if (*reason == WebServiceWorkerCacheErrorNotFound) |
| 42 m_resolver->resolve(); | 54 m_resolver->resolve(); |
| 43 else | 55 else |
| 44 m_resolver->reject(CacheStorageError::createException(*reason)); | 56 m_resolver->reject(CacheStorageError::createException(*reason)); |
| 45 m_resolver.clear(); | 57 m_resolver.clear(); |
| 46 } | 58 } |
| 59 #endif | |
| 47 | 60 |
| 48 private: | 61 private: |
| 49 RefPtrWillBePersistent<ScriptPromiseResolver> m_resolver; | 62 RefPtrWillBePersistent<ScriptPromiseResolver> m_resolver; |
| 50 }; | 63 }; |
| 51 | 64 |
| 52 // FIXME: Consider using CallbackPromiseAdapter. | 65 // FIXME: Consider using CallbackPromiseAdapter. |
| 53 class CacheWithResponsesCallbacks : public WebServiceWorkerCache::CacheWithRespo nsesCallbacks { | 66 class CacheWithResponsesCallbacks : public WebServiceWorkerCache::CacheWithRespo nsesCallbacks { |
| 54 WTF_MAKE_NONCOPYABLE(CacheWithResponsesCallbacks); | 67 WTF_MAKE_NONCOPYABLE(CacheWithResponsesCallbacks); |
| 55 public: | 68 public: |
| 56 CacheWithResponsesCallbacks(PassRefPtrWillBeRawPtr<ScriptPromiseResolver> re solver) | 69 CacheWithResponsesCallbacks(PassRefPtrWillBeRawPtr<ScriptPromiseResolver> re solver) |
| 57 : m_resolver(resolver) { } | 70 : m_resolver(resolver) { } |
| 58 | 71 |
| 59 virtual void onSuccess(WebVector<WebServiceWorkerResponse>* webResponses) ov erride | 72 virtual void onSuccess(WebVector<WebServiceWorkerResponse>* webResponses) ov erride |
| 60 { | 73 { |
| 61 HeapVector<Member<Response>> responses; | 74 HeapVector<Member<Response>> responses; |
| 62 for (size_t i = 0; i < webResponses->size(); ++i) | 75 for (size_t i = 0; i < webResponses->size(); ++i) |
| 63 responses.append(Response::create(m_resolver->scriptState()->executi onContext(), (*webResponses)[i])); | 76 responses.append(Response::create(m_resolver->scriptState()->executi onContext(), (*webResponses)[i])); |
| 64 m_resolver->resolve(responses); | 77 m_resolver->resolve(responses); |
| 65 m_resolver.clear(); | 78 m_resolver.clear(); |
| 66 } | 79 } |
| 67 | 80 |
| 81 #ifdef CRBUG_494884 | |
| 82 // Ownership of |rawReason| must be passed. | |
| 83 virtual void onError(WebServiceWorkerCacheError* rawReason) override | |
| 84 { | |
| 85 OwnPtr<WebServiceWorkerCacheError> reason = adoptPtr(rawReason); | |
| 86 m_resolver->reject(CacheStorageError::createException(*reason)); | |
| 87 m_resolver.clear(); | |
| 88 } | |
| 89 #else | |
| 68 virtual void onError(WebServiceWorkerCacheError* reason) override | 90 virtual void onError(WebServiceWorkerCacheError* reason) override |
| 69 { | 91 { |
| 70 m_resolver->reject(CacheStorageError::createException(*reason)); | 92 m_resolver->reject(CacheStorageError::createException(*reason)); |
| 71 m_resolver.clear(); | 93 m_resolver.clear(); |
| 72 } | 94 } |
| 95 #endif | |
| 73 | 96 |
| 74 protected: | 97 protected: |
| 75 RefPtrWillBePersistent<ScriptPromiseResolver> m_resolver; | 98 RefPtrWillBePersistent<ScriptPromiseResolver> m_resolver; |
| 76 }; | 99 }; |
| 77 | 100 |
| 78 // FIXME: Consider using CallbackPromiseAdapter. | 101 // FIXME: Consider using CallbackPromiseAdapter. |
| 79 class CacheDeleteCallback : public WebServiceWorkerCache::CacheBatchCallbacks { | 102 class CacheDeleteCallback : public WebServiceWorkerCache::CacheBatchCallbacks { |
| 80 WTF_MAKE_NONCOPYABLE(CacheDeleteCallback); | 103 WTF_MAKE_NONCOPYABLE(CacheDeleteCallback); |
| 81 public: | 104 public: |
| 82 CacheDeleteCallback(PassRefPtrWillBeRawPtr<ScriptPromiseResolver> resolver) | 105 CacheDeleteCallback(PassRefPtrWillBeRawPtr<ScriptPromiseResolver> resolver) |
| 83 : m_resolver(resolver) { } | 106 : m_resolver(resolver) { } |
| 84 | 107 |
| 85 void onSuccess() override | 108 void onSuccess() override |
| 86 { | 109 { |
| 87 m_resolver->resolve(true); | 110 m_resolver->resolve(true); |
| 88 m_resolver.clear(); | 111 m_resolver.clear(); |
| 89 } | 112 } |
| 90 | 113 |
| 91 void onError(WebServiceWorkerCacheError* reason) override | 114 #ifdef CRBUG_494884 |
| 115 // Ownership of |rawReason| must be passed. | |
| 116 virtual void onError(WebServiceWorkerCacheError* rawReason) override | |
| 92 { | 117 { |
| 118 OwnPtr<WebServiceWorkerCacheError> reason = adoptPtr(rawReason); | |
| 93 if (*reason == WebServiceWorkerCacheErrorNotFound) | 119 if (*reason == WebServiceWorkerCacheErrorNotFound) |
| 94 m_resolver->resolve(false); | 120 m_resolver->resolve(false); |
| 95 else | 121 else |
| 96 m_resolver->reject(CacheStorageError::createException(*reason)); | 122 m_resolver->reject(CacheStorageError::createException(*reason)); |
| 97 m_resolver.clear(); | 123 m_resolver.clear(); |
| 98 } | 124 } |
| 125 #else | |
| 126 virtual void onError(WebServiceWorkerCacheError* reason) override | |
| 127 { | |
| 128 m_resolver->reject(CacheStorageError::createException(*reason)); | |
|
jkarlin
2015/06/17 11:16:15
Why is this function different from above?
| |
| 129 m_resolver.clear(); | |
| 130 } | |
| 131 #endif | |
| 99 | 132 |
| 100 private: | 133 private: |
| 101 RefPtrWillBePersistent<ScriptPromiseResolver> m_resolver; | 134 RefPtrWillBePersistent<ScriptPromiseResolver> m_resolver; |
| 102 }; | 135 }; |
| 103 | 136 |
| 104 // FIXME: Consider using CallbackPromiseAdapter. | 137 // FIXME: Consider using CallbackPromiseAdapter. |
| 105 class CacheWithRequestsCallbacks : public WebServiceWorkerCache::CacheWithReques tsCallbacks { | 138 class CacheWithRequestsCallbacks : public WebServiceWorkerCache::CacheWithReques tsCallbacks { |
| 106 WTF_MAKE_NONCOPYABLE(CacheWithRequestsCallbacks); | 139 WTF_MAKE_NONCOPYABLE(CacheWithRequestsCallbacks); |
| 107 public: | 140 public: |
| 108 CacheWithRequestsCallbacks(PassRefPtrWillBeRawPtr<ScriptPromiseResolver> res olver) | 141 CacheWithRequestsCallbacks(PassRefPtrWillBeRawPtr<ScriptPromiseResolver> res olver) |
| 109 : m_resolver(resolver) { } | 142 : m_resolver(resolver) { } |
| 110 | 143 |
| 111 virtual void onSuccess(WebVector<WebServiceWorkerRequest>* webRequests) over ride | 144 virtual void onSuccess(WebVector<WebServiceWorkerRequest>* webRequests) over ride |
| 112 { | 145 { |
| 113 HeapVector<Member<Request>> requests; | 146 HeapVector<Member<Request>> requests; |
| 114 for (size_t i = 0; i < webRequests->size(); ++i) | 147 for (size_t i = 0; i < webRequests->size(); ++i) |
| 115 requests.append(Request::create(m_resolver->scriptState()->execution Context(), (*webRequests)[i])); | 148 requests.append(Request::create(m_resolver->scriptState()->execution Context(), (*webRequests)[i])); |
| 116 m_resolver->resolve(requests); | 149 m_resolver->resolve(requests); |
| 117 m_resolver.clear(); | 150 m_resolver.clear(); |
| 118 } | 151 } |
| 119 | 152 |
| 153 #ifdef CRBUG_494884 | |
| 154 // Ownership of |rawReason| must be passed. | |
| 155 virtual void onError(WebServiceWorkerCacheError* rawReason) override | |
| 156 { | |
| 157 OwnPtr<WebServiceWorkerCacheError> reason = adoptPtr(rawReason); | |
| 158 m_resolver->reject(CacheStorageError::createException(*reason)); | |
| 159 m_resolver.clear(); | |
| 160 } | |
| 161 #else | |
| 120 virtual void onError(WebServiceWorkerCacheError* reason) override | 162 virtual void onError(WebServiceWorkerCacheError* reason) override |
| 121 { | 163 { |
| 122 m_resolver->reject(CacheStorageError::createException(*reason)); | 164 m_resolver->reject(CacheStorageError::createException(*reason)); |
| 123 m_resolver.clear(); | 165 m_resolver.clear(); |
| 124 } | 166 } |
| 167 #endif | |
| 125 | 168 |
| 126 private: | 169 private: |
| 127 RefPtrWillBePersistent<ScriptPromiseResolver> m_resolver; | 170 RefPtrWillBePersistent<ScriptPromiseResolver> m_resolver; |
| 128 }; | 171 }; |
| 129 | 172 |
| 130 ScriptPromise rejectAsNotImplemented(ScriptState* scriptState) | 173 ScriptPromise rejectAsNotImplemented(ScriptState* scriptState) |
| 131 { | 174 { |
| 132 return ScriptPromise::rejectWithDOMException(scriptState, DOMException::crea te(NotSupportedError, "Cache is not implemented")); | 175 return ScriptPromise::rejectWithDOMException(scriptState, DOMException::crea te(NotSupportedError, "Cache is not implemented")); |
| 133 } | 176 } |
| 134 | 177 |
| (...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 427 m_webCache->dispatchKeys(new CacheWithRequestsCallbacks(resolver), 0, toWebQ ueryParams(options)); | 470 m_webCache->dispatchKeys(new CacheWithRequestsCallbacks(resolver), 0, toWebQ ueryParams(options)); |
| 428 return promise; | 471 return promise; |
| 429 } | 472 } |
| 430 | 473 |
| 431 WebServiceWorkerCache* Cache::webCache() const | 474 WebServiceWorkerCache* Cache::webCache() const |
| 432 { | 475 { |
| 433 return m_webCache.get(); | 476 return m_webCache.get(); |
| 434 } | 477 } |
| 435 | 478 |
| 436 } // namespace blink | 479 } // namespace blink |
| OLD | NEW |