Commit db70bb19 authored by yhirano@chromium.org's avatar yhirano@chromium.org

[CacheStorage] Use appopriate type parameters for WebCallbacks (1/3).

This series of CLs fixes WebCallback parameter types used in CacheStorage.

 - WebServiceWorkerResponse* (ownership not transferred)
  => const WebServiceWorkerResponse&
 - WebVector<WebServiceWorkerResponse>* (ownership not transferred)
  => const WebVector<WebServiceWorkerResponse>&
 - WebVector<WebServiceWorkerRequest>* (ownership not transferred)
  => const WebVector<WebServiceWorkerRequest>&
 - WebServiceWorkerCache* (ownership transferred)
  => WebPassOwnPtr<WebServiceWorkerCache>
 - WebVector<WebString>* (ownership not transferred)
  => const WebVector<WebString>&
 - WebServiceWorkerCacheError* (ownership transferred)
  => WebServiceWorkerCacheError

1/3: https://codereview.chromium.org/1284173004/
2/3: https://codereview.chromium.org/1284283003/
3/3: https://codereview.chromium.org/1296723005/

BUG=493531

Review URL: https://codereview.chromium.org/1284173004

git-svn-id: svn://svn.chromium.org/blink/trunk@200825 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 604beae9
...@@ -34,24 +34,22 @@ public: ...@@ -34,24 +34,22 @@ public:
explicit CacheMatchCallbacks(ScriptPromiseResolver* resolver) explicit CacheMatchCallbacks(ScriptPromiseResolver* resolver)
: m_resolver(resolver) { } : m_resolver(resolver) { }
void onSuccess(WebServiceWorkerResponse* webResponse) override void onSuccess(const WebServiceWorkerResponse& webResponse) override
{ {
if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped()) if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped())
return; return;
m_resolver->resolve(Response::create(m_resolver->scriptState()->executionContext(), *webResponse)); m_resolver->resolve(Response::create(m_resolver->scriptState()->executionContext(), webResponse));
m_resolver.clear(); m_resolver.clear();
} }
// Ownership of |rawReason| must be passed. void onError(WebServiceWorkerCacheError reason) override
void onError(WebServiceWorkerCacheError* rawReason) override
{ {
OwnPtr<WebServiceWorkerCacheError> reason = adoptPtr(rawReason);
if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped()) if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped())
return; return;
if (*reason == WebServiceWorkerCacheErrorNotFound) if (reason == WebServiceWorkerCacheErrorNotFound)
m_resolver->resolve(); m_resolver->resolve();
else else
m_resolver->reject(CacheStorageError::createException(*reason)); m_resolver->reject(CacheStorageError::createException(reason));
m_resolver.clear(); m_resolver.clear();
} }
...@@ -66,24 +64,22 @@ public: ...@@ -66,24 +64,22 @@ public:
explicit CacheWithResponsesCallbacks(ScriptPromiseResolver* resolver) explicit CacheWithResponsesCallbacks(ScriptPromiseResolver* resolver)
: m_resolver(resolver) { } : m_resolver(resolver) { }
void onSuccess(WebVector<WebServiceWorkerResponse>* webResponses) override void onSuccess(const WebVector<WebServiceWorkerResponse>& webResponses) override
{ {
if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped()) if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped())
return; return;
HeapVector<Member<Response>> responses; HeapVector<Member<Response>> responses;
for (size_t i = 0; i < webResponses->size(); ++i) for (size_t i = 0; i < webResponses.size(); ++i)
responses.append(Response::create(m_resolver->scriptState()->executionContext(), (*webResponses)[i])); responses.append(Response::create(m_resolver->scriptState()->executionContext(), webResponses[i]));
m_resolver->resolve(responses); m_resolver->resolve(responses);
m_resolver.clear(); m_resolver.clear();
} }
// Ownership of |rawReason| must be passed. void onError(WebServiceWorkerCacheError reason) override
void onError(WebServiceWorkerCacheError* rawReason) override
{ {
OwnPtr<WebServiceWorkerCacheError> reason = adoptPtr(rawReason);
if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped()) if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped())
return; return;
m_resolver->reject(CacheStorageError::createException(*reason)); m_resolver->reject(CacheStorageError::createException(reason));
m_resolver.clear(); m_resolver.clear();
} }
...@@ -128,24 +124,22 @@ public: ...@@ -128,24 +124,22 @@ public:
explicit CacheWithRequestsCallbacks(ScriptPromiseResolver* resolver) explicit CacheWithRequestsCallbacks(ScriptPromiseResolver* resolver)
: m_resolver(resolver) { } : m_resolver(resolver) { }
void onSuccess(WebVector<WebServiceWorkerRequest>* webRequests) override void onSuccess(const WebVector<WebServiceWorkerRequest>& webRequests) override
{ {
if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped()) if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped())
return; return;
HeapVector<Member<Request>> requests; HeapVector<Member<Request>> requests;
for (size_t i = 0; i < webRequests->size(); ++i) for (size_t i = 0; i < webRequests.size(); ++i)
requests.append(Request::create(m_resolver->scriptState()->executionContext(), (*webRequests)[i])); requests.append(Request::create(m_resolver->scriptState()->executionContext(), webRequests[i]));
m_resolver->resolve(requests); m_resolver->resolve(requests);
m_resolver.clear(); m_resolver.clear();
} }
// Ownership of |rawReason| must be passed. void onError(WebServiceWorkerCacheError reason) override
void onError(WebServiceWorkerCacheError* rawReason) override
{ {
OwnPtr<WebServiceWorkerCacheError> reason = adoptPtr(rawReason);
if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped()) if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped())
return; return;
m_resolver->reject(CacheStorageError::createException(*reason)); m_resolver->reject(CacheStorageError::createException(reason));
m_resolver.clear(); m_resolver.clear();
} }
......
...@@ -57,16 +57,14 @@ public: ...@@ -57,16 +57,14 @@ public:
m_resolver.clear(); m_resolver.clear();
} }
// Ownership of |rawReason| must be passed. void onError(WebServiceWorkerCacheError reason) override
void onError(WebServiceWorkerCacheError* rawReason) override
{ {
OwnPtr<WebServiceWorkerCacheError> reason = adoptPtr(rawReason);
if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped()) if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped())
return; return;
if (*reason == WebServiceWorkerCacheErrorNotFound) if (reason == WebServiceWorkerCacheErrorNotFound)
m_resolver->resolve(false); m_resolver->resolve(false);
else else
m_resolver->reject(CacheStorageError::createException(*reason)); m_resolver->reject(CacheStorageError::createException(reason));
m_resolver.clear(); m_resolver.clear();
} }
...@@ -82,33 +80,24 @@ public: ...@@ -82,33 +80,24 @@ public:
: m_cacheName(cacheName), m_cacheStorage(cacheStorage), m_resolver(resolver) { } : m_cacheName(cacheName), m_cacheStorage(cacheStorage), m_resolver(resolver) { }
~WithCacheCallbacks() override { } ~WithCacheCallbacks() override { }
// Ownership of |rawWebCache| must be passed. void onSuccess(WebPassOwnPtr<WebServiceWorkerCache> webCache) override
void onSuccess(WebServiceWorkerCache* rawWebCache) override
{ {
OwnPtr<WebServiceWorkerCache> webCache = adoptPtr(rawWebCache);
if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped()) if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped())
return; return;
// FIXME: Remove this once content's WebServiceWorkerCache implementation has landed.
if (!webCache) {
m_resolver->reject("not implemented");
return;
}
Cache* cache = Cache::create(m_cacheStorage->m_scopedFetcher, webCache.release()); Cache* cache = Cache::create(m_cacheStorage->m_scopedFetcher, webCache.release());
m_cacheStorage->m_nameToCacheMap.set(m_cacheName, cache); m_cacheStorage->m_nameToCacheMap.set(m_cacheName, cache);
m_resolver->resolve(cache); m_resolver->resolve(cache);
m_resolver.clear(); m_resolver.clear();
} }
// Ownership of |rawReason| must be passed. void onError(WebServiceWorkerCacheError reason) override
void onError(WebServiceWorkerCacheError* rawReason) override
{ {
OwnPtr<WebServiceWorkerCacheError> reason = adoptPtr(rawReason);
if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped()) if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped())
return; return;
if (*reason == WebServiceWorkerCacheErrorNotFound) if (reason == WebServiceWorkerCacheErrorNotFound)
m_resolver->resolve(); m_resolver->resolve();
else else
m_resolver->reject(CacheStorageError::createException(*reason)); m_resolver->reject(CacheStorageError::createException(reason));
m_resolver.clear(); m_resolver.clear();
} }
...@@ -125,24 +114,22 @@ public: ...@@ -125,24 +114,22 @@ public:
explicit MatchCallbacks(ScriptPromiseResolver* resolver) explicit MatchCallbacks(ScriptPromiseResolver* resolver)
: m_resolver(resolver) { } : m_resolver(resolver) { }
void onSuccess(WebServiceWorkerResponse* webResponse) override void onSuccess(const WebServiceWorkerResponse& webResponse) override
{ {
if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped()) if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped())
return; return;
m_resolver->resolve(Response::create(m_resolver->scriptState()->executionContext(), *webResponse)); m_resolver->resolve(Response::create(m_resolver->scriptState()->executionContext(), webResponse));
m_resolver.clear(); m_resolver.clear();
} }
// Ownership of |rawReason| must be passed. void onError(WebServiceWorkerCacheError reason) override
void onError(WebServiceWorkerCacheError* rawReason) override
{ {
OwnPtr<WebServiceWorkerCacheError> reason = adoptPtr(rawReason);
if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped()) if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped())
return; return;
if (*reason == WebServiceWorkerCacheErrorNotFound) if (reason == WebServiceWorkerCacheErrorNotFound)
m_resolver->resolve(); m_resolver->resolve();
else else
m_resolver->reject(CacheStorageError::createException(*reason)); m_resolver->reject(CacheStorageError::createException(reason));
m_resolver.clear(); m_resolver.clear();
} }
...@@ -168,16 +155,14 @@ public: ...@@ -168,16 +155,14 @@ public:
m_resolver.clear(); m_resolver.clear();
} }
// Ownership of |rawReason| must be passed. void onError(WebServiceWorkerCacheError reason) override
void onError(WebServiceWorkerCacheError* rawReason) override
{ {
OwnPtr<WebServiceWorkerCacheError> reason = adoptPtr(rawReason);
if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped()) if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped())
return; return;
if (*reason == WebServiceWorkerCacheErrorNotFound) if (reason == WebServiceWorkerCacheErrorNotFound)
m_resolver->resolve(false); m_resolver->resolve(false);
else else
m_resolver->reject(CacheStorageError::createException(*reason)); m_resolver->reject(CacheStorageError::createException(reason));
m_resolver.clear(); m_resolver.clear();
} }
...@@ -195,24 +180,22 @@ public: ...@@ -195,24 +180,22 @@ public:
: m_resolver(resolver) { } : m_resolver(resolver) { }
~KeysCallbacks() override { } ~KeysCallbacks() override { }
void onSuccess(WebVector<WebString>* keys) override void onSuccess(const WebVector<WebString>& keys) override
{ {
if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped()) if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped())
return; return;
Vector<String> wtfKeys; Vector<String> wtfKeys;
for (size_t i = 0; i < keys->size(); ++i) for (size_t i = 0; i < keys.size(); ++i)
wtfKeys.append((*keys)[i]); wtfKeys.append(keys[i]);
m_resolver->resolve(wtfKeys); m_resolver->resolve(wtfKeys);
m_resolver.clear(); m_resolver.clear();
} }
// Ownership of |rawReason| must be passed. void onError(WebServiceWorkerCacheError reason) override
void onError(WebServiceWorkerCacheError* rawReason) override
{ {
OwnPtr<WebServiceWorkerCacheError> reason = adoptPtr(rawReason);
if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped()) if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped())
return; return;
m_resolver->reject(CacheStorageError::createException(*reason)); m_resolver->reject(CacheStorageError::createException(reason));
m_resolver.clear(); m_resolver.clear();
} }
......
...@@ -112,7 +112,7 @@ public: ...@@ -112,7 +112,7 @@ public:
checkQueryParamsIfProvided(queryParams); checkQueryParamsIfProvided(queryParams);
OwnPtr<CacheMatchCallbacks> ownedCallbacks(adoptPtr(callbacks)); OwnPtr<CacheMatchCallbacks> ownedCallbacks(adoptPtr(callbacks));
return callbacks->onError(new WebServiceWorkerCacheError(m_error)); return callbacks->onError(m_error);
} }
void dispatchMatchAll(CacheWithResponsesCallbacks* callbacks, const WebServiceWorkerRequest& webRequest, const QueryParams& queryParams) override void dispatchMatchAll(CacheWithResponsesCallbacks* callbacks, const WebServiceWorkerRequest& webRequest, const QueryParams& queryParams) override
...@@ -122,7 +122,7 @@ public: ...@@ -122,7 +122,7 @@ public:
checkQueryParamsIfProvided(queryParams); checkQueryParamsIfProvided(queryParams);
OwnPtr<CacheWithResponsesCallbacks> ownedCallbacks(adoptPtr(callbacks)); OwnPtr<CacheWithResponsesCallbacks> ownedCallbacks(adoptPtr(callbacks));
return callbacks->onError(new WebServiceWorkerCacheError(m_error)); return callbacks->onError(m_error);
} }
void dispatchKeys(CacheWithRequestsCallbacks* callbacks, const WebServiceWorkerRequest* webRequest, const QueryParams& queryParams) override void dispatchKeys(CacheWithRequestsCallbacks* callbacks, const WebServiceWorkerRequest* webRequest, const QueryParams& queryParams) override
...@@ -134,7 +134,7 @@ public: ...@@ -134,7 +134,7 @@ public:
} }
OwnPtr<CacheWithRequestsCallbacks> ownedCallbacks(adoptPtr(callbacks)); OwnPtr<CacheWithRequestsCallbacks> ownedCallbacks(adoptPtr(callbacks));
return callbacks->onError(new WebServiceWorkerCacheError(m_error)); return callbacks->onError(m_error);
} }
void dispatchBatch(CacheBatchCallbacks* callbacks, const WebVector<BatchOperation>& batchOperations) override void dispatchBatch(CacheBatchCallbacks* callbacks, const WebVector<BatchOperation>& batchOperations) override
...@@ -474,7 +474,7 @@ public: ...@@ -474,7 +474,7 @@ public:
void dispatchMatch(CacheMatchCallbacks* callbacks, const WebServiceWorkerRequest& webRequest, const QueryParams& queryParams) override void dispatchMatch(CacheMatchCallbacks* callbacks, const WebServiceWorkerRequest& webRequest, const QueryParams& queryParams) override
{ {
OwnPtr<CacheMatchCallbacks> ownedCallbacks(adoptPtr(callbacks)); OwnPtr<CacheMatchCallbacks> ownedCallbacks(adoptPtr(callbacks));
return callbacks->onSuccess(&m_response); return callbacks->onSuccess(m_response);
} }
private: private:
...@@ -510,7 +510,7 @@ public: ...@@ -510,7 +510,7 @@ public:
void dispatchKeys(CacheWithRequestsCallbacks* callbacks, const WebServiceWorkerRequest* webRequest, const QueryParams& queryParams) override void dispatchKeys(CacheWithRequestsCallbacks* callbacks, const WebServiceWorkerRequest* webRequest, const QueryParams& queryParams) override
{ {
OwnPtr<CacheWithRequestsCallbacks> ownedCallbacks(adoptPtr(callbacks)); OwnPtr<CacheWithRequestsCallbacks> ownedCallbacks(adoptPtr(callbacks));
return callbacks->onSuccess(&m_requests); return callbacks->onSuccess(m_requests);
} }
private: private:
...@@ -555,7 +555,7 @@ public: ...@@ -555,7 +555,7 @@ public:
void dispatchMatchAll(CacheWithResponsesCallbacks* callbacks, const WebServiceWorkerRequest& webRequest, const QueryParams& queryParams) override void dispatchMatchAll(CacheWithResponsesCallbacks* callbacks, const WebServiceWorkerRequest& webRequest, const QueryParams& queryParams) override
{ {
OwnPtr<CacheWithResponsesCallbacks> ownedCallbacks(adoptPtr(callbacks)); OwnPtr<CacheWithResponsesCallbacks> ownedCallbacks(adoptPtr(callbacks));
return callbacks->onSuccess(&m_responses); return callbacks->onSuccess(m_responses);
} }
void dispatchBatch(CacheBatchCallbacks* callbacks, const WebVector<BatchOperation>& batchOperations) override void dispatchBatch(CacheBatchCallbacks* callbacks, const WebVector<BatchOperation>& batchOperations) override
......
...@@ -122,11 +122,11 @@ public: ...@@ -122,11 +122,11 @@ public:
~RequestCacheNames() override { } ~RequestCacheNames() override { }
void onSuccess(WebVector<WebString>* caches) void onSuccess(const WebVector<WebString>& caches) override
{ {
RefPtr<Array<Cache>> array = Array<Cache>::create(); RefPtr<Array<Cache>> array = Array<Cache>::create();
for (size_t i = 0; i < caches->size(); i++) { for (size_t i = 0; i < caches.size(); i++) {
String name = String((*caches)[i]); String name = String(caches[i]);
RefPtr<Cache> entry = Cache::create() RefPtr<Cache> entry = Cache::create()
.setSecurityOrigin(m_securityOrigin) .setSecurityOrigin(m_securityOrigin)
.setCacheName(name) .setCacheName(name)
...@@ -136,9 +136,9 @@ public: ...@@ -136,9 +136,9 @@ public:
m_callback->sendSuccess(array); m_callback->sendSuccess(array);
} }
void onError(WebServiceWorkerCacheError* error) void onError(WebServiceWorkerCacheError error) override
{ {
m_callback->sendFailure(String::format("Error requesting cache names: %s", serviceWorkerCacheErrorString(*error).data())); m_callback->sendFailure(String::format("Error requesting cache names: %s", serviceWorkerCacheErrorString(error).data()));
} }
private: private:
...@@ -229,14 +229,14 @@ public: ...@@ -229,14 +229,14 @@ public:
} }
~GetCacheResponsesForRequestData() override { } ~GetCacheResponsesForRequestData() override { }
void onSuccess(WebServiceWorkerResponse* response) void onSuccess(const WebServiceWorkerResponse& response) override
{ {
m_accumulator->addRequestResponsePair(m_request, *response); m_accumulator->addRequestResponsePair(m_request, response);
} }
void onError(WebServiceWorkerCacheError* error) void onError(WebServiceWorkerCacheError error) override
{ {
m_callback->sendFailure(String::format("Error requesting responses for cache %s: %s", m_params.cacheName.utf8().data(), serviceWorkerCacheErrorString(*error).data())); m_callback->sendFailure(String::format("Error requesting responses for cache %s: %s", m_params.cacheName.utf8().data(), serviceWorkerCacheErrorString(error).data()));
} }
private: private:
...@@ -258,25 +258,26 @@ public: ...@@ -258,25 +258,26 @@ public:
} }
~GetCacheKeysForRequestData() override { } ~GetCacheKeysForRequestData() override { }
void onSuccess(WebVector<WebServiceWorkerRequest>* requests) WebServiceWorkerCache* cache() { return m_cache.get(); }
void onSuccess(const WebVector<WebServiceWorkerRequest>& requests) override
{ {
if (requests->isEmpty()) { if (requests.isEmpty()) {
RefPtr<Array<DataEntry>> array = Array<DataEntry>::create(); RefPtr<Array<DataEntry>> array = Array<DataEntry>::create();
m_callback->sendSuccess(array, false); m_callback->sendSuccess(array, false);
return; return;
} }
RefPtr<ResponsesAccumulator> accumulator = adoptRef(new ResponsesAccumulator(requests->size(), m_params, m_callback)); RefPtr<ResponsesAccumulator> accumulator = adoptRef(new ResponsesAccumulator(requests.size(), m_params, m_callback));
for (size_t i = 0; i < requests->size(); i++) { for (size_t i = 0; i < requests.size(); i++) {
const auto& request = (*requests)[i]; const auto& request = requests[i];
auto* cacheRequest = new GetCacheResponsesForRequestData(m_params, request, accumulator, m_callback); auto* cacheRequest = new GetCacheResponsesForRequestData(m_params, request, accumulator, m_callback);
m_cache->dispatchMatch(cacheRequest, request, WebServiceWorkerCache::QueryParams()); m_cache->dispatchMatch(cacheRequest, request, WebServiceWorkerCache::QueryParams());
} }
} }
void onError(WebServiceWorkerCacheError* error) void onError(WebServiceWorkerCacheError error) override
{ {
m_callback->sendFailure(String::format("Error requesting requests for cache %s: %s", m_params.cacheName.utf8().data(), serviceWorkerCacheErrorString(*error).data())); m_callback->sendFailure(String::format("Error requesting requests for cache %s: %s", m_params.cacheName.utf8().data(), serviceWorkerCacheErrorString(error).data()));
} }
private: private:
...@@ -297,15 +298,15 @@ public: ...@@ -297,15 +298,15 @@ public:
} }
~GetCacheForRequestData() override { } ~GetCacheForRequestData() override { }
void onSuccess(WebServiceWorkerCache* cache) void onSuccess(WebPassOwnPtr<WebServiceWorkerCache> cache) override
{ {
auto* cacheRequest = new GetCacheKeysForRequestData(m_params, adoptPtr(cache), m_callback); auto* cacheRequest = new GetCacheKeysForRequestData(m_params, cache.release(), m_callback);
cache->dispatchKeys(cacheRequest, nullptr, WebServiceWorkerCache::QueryParams()); cacheRequest->cache()->dispatchKeys(cacheRequest, nullptr, WebServiceWorkerCache::QueryParams());
} }
void onError(WebServiceWorkerCacheError* error) void onError(WebServiceWorkerCacheError error) override
{ {
m_callback->sendFailure(String::format("Error requesting cache %s: %s", m_params.cacheName.utf8().data(), serviceWorkerCacheErrorString(*error).data())); m_callback->sendFailure(String::format("Error requesting cache %s: %s", m_params.cacheName.utf8().data(), serviceWorkerCacheErrorString(error).data()));
} }
private: private:
...@@ -323,14 +324,14 @@ public: ...@@ -323,14 +324,14 @@ public:
} }
~DeleteCache() override { } ~DeleteCache() override { }
void onSuccess() void onSuccess() override
{ {
m_callback->sendSuccess(); m_callback->sendSuccess();
} }
void onError(WebServiceWorkerCacheError* error) void onError(WebServiceWorkerCacheError error) override
{ {
m_callback->sendFailure(String::format("Error requesting cache names: %s", serviceWorkerCacheErrorString(*error).data())); m_callback->sendFailure(String::format("Error requesting cache names: %s", serviceWorkerCacheErrorString(error).data()));
} }
private: private:
...@@ -347,12 +348,12 @@ public: ...@@ -347,12 +348,12 @@ public:
} }
~DeleteCacheEntry() override { } ~DeleteCacheEntry() override { }
void onSuccess() void onSuccess() override
{ {
m_callback->sendSuccess(); m_callback->sendSuccess();
} }
void onError(WebServiceWorkerCacheError error) void onError(WebServiceWorkerCacheError error) override
{ {
m_callback->sendFailure(String::format("Error requesting cache names: %s", serviceWorkerCacheErrorString(error).data())); m_callback->sendFailure(String::format("Error requesting cache names: %s", serviceWorkerCacheErrorString(error).data()));
} }
...@@ -374,20 +375,20 @@ public: ...@@ -374,20 +375,20 @@ public:
} }
~GetCacheForDeleteEntry() override { } ~GetCacheForDeleteEntry() override { }
void onSuccess(WebServiceWorkerCache* cache) void onSuccess(WebPassOwnPtr<WebServiceWorkerCache> cache) override
{ {
auto* deleteRequest = new DeleteCacheEntry( m_callback); auto* deleteRequest = new DeleteCacheEntry(m_callback);
BatchOperation deleteOperation; BatchOperation deleteOperation;
deleteOperation.operationType = WebServiceWorkerCache::OperationTypeDelete; deleteOperation.operationType = WebServiceWorkerCache::OperationTypeDelete;
deleteOperation.request.setURL(KURL(ParsedURLString, m_requestSpec)); deleteOperation.request.setURL(KURL(ParsedURLString, m_requestSpec));
Vector<BatchOperation> operations; Vector<BatchOperation> operations;
operations.append(deleteOperation); operations.append(deleteOperation);
cache->dispatchBatch(deleteRequest, WebVector<BatchOperation>(operations)); cache.release()->dispatchBatch(deleteRequest, WebVector<BatchOperation>(operations));
} }
void onError(WebServiceWorkerCacheError* error) void onError(WebServiceWorkerCacheError error) override
{ {
m_callback->sendFailure(String::format("Error requesting cache %s: %s", m_cacheName.utf8().data(), serviceWorkerCacheErrorString(*error).data())); m_callback->sendFailure(String::format("Error requesting cache %s: %s", m_cacheName.utf8().data(), serviceWorkerCacheErrorString(error).data()));
} }
private: private:
......
...@@ -20,9 +20,39 @@ namespace blink { ...@@ -20,9 +20,39 @@ namespace blink {
// This object is owned by Blink, and should be destroyed as each Cache instance is no longer in use. // This object is owned by Blink, and should be destroyed as each Cache instance is no longer in use.
class WebServiceWorkerCache { class WebServiceWorkerCache {
public: public:
using CacheMatchCallbacks = WebCallbacks<WebServiceWorkerResponse*, WebServiceWorkerCacheError*>; class CacheMatchCallbacks : public WebCallbacks<const WebServiceWorkerResponse&, WebServiceWorkerCacheError> {
using CacheWithResponsesCallbacks = WebCallbacks<WebVector<WebServiceWorkerResponse>*, WebServiceWorkerCacheError*>; public:
using CacheWithRequestsCallbacks = WebCallbacks<WebVector<WebServiceWorkerRequest>*, WebServiceWorkerCacheError*>; void onSuccess(WebServiceWorkerResponse* r) { onSuccess(*r); }
void onError(WebServiceWorkerCacheError* e)
{
onError(*e);
delete e;
}
void onSuccess(const WebServiceWorkerResponse&) override {}
void onError(WebServiceWorkerCacheError) override {}
};
class CacheWithResponsesCallbacks : public WebCallbacks<const WebVector<WebServiceWorkerResponse>&, WebServiceWorkerCacheError> {
public:
void onSuccess(WebVector<WebServiceWorkerResponse>* r) { onSuccess(*r); }
void onError(WebServiceWorkerCacheError* e)
{
onError(*e);
delete e;
}
void onSuccess(const WebVector<WebServiceWorkerResponse>&) override {}
void onError(WebServiceWorkerCacheError) override {}
};
class CacheWithRequestsCallbacks : public WebCallbacks<const WebVector<WebServiceWorkerRequest>&, WebServiceWorkerCacheError> {
public:
void onSuccess(WebVector<WebServiceWorkerRequest>* r) { onSuccess(*r); }
void onError(WebServiceWorkerCacheError* e)
{
onError(*e);
delete e;
}
void onSuccess(const WebVector<WebServiceWorkerRequest>&) override {}
void onError(WebServiceWorkerCacheError) override {}
};
using CacheBatchCallbacks = WebCallbacks<void, WebServiceWorkerCacheError>; using CacheBatchCallbacks = WebCallbacks<void, WebServiceWorkerCacheError>;
virtual ~WebServiceWorkerCache() { } virtual ~WebServiceWorkerCache() { }
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include "public/platform/WebCallbacks.h" #include "public/platform/WebCallbacks.h"
#include "public/platform/WebCommon.h" #include "public/platform/WebCommon.h"
#include "public/platform/WebPassOwnPtr.h"
#include "public/platform/WebServiceWorkerCache.h" #include "public/platform/WebServiceWorkerCache.h"
#include "public/platform/WebServiceWorkerCacheError.h" #include "public/platform/WebServiceWorkerCacheError.h"
#include "public/platform/WebString.h" #include "public/platform/WebString.h"
...@@ -21,10 +22,51 @@ class WebServiceWorkerCache; ...@@ -21,10 +22,51 @@ class WebServiceWorkerCache;
// after operations complete. // after operations complete.
class WebServiceWorkerCacheStorage { class WebServiceWorkerCacheStorage {
public: public:
typedef WebCallbacks<void, WebServiceWorkerCacheError*> CacheStorageCallbacks; class CacheStorageCallbacks : public WebCallbacks<void, WebServiceWorkerCacheError> {
typedef WebCallbacks<WebServiceWorkerCache*, WebServiceWorkerCacheError*> CacheStorageWithCacheCallbacks; public:
typedef WebCallbacks<WebVector<WebString>*, WebServiceWorkerCacheError*> CacheStorageKeysCallbacks; void onError(WebServiceWorkerCacheError* e)
typedef WebCallbacks<WebServiceWorkerResponse*, WebServiceWorkerCacheError*> CacheStorageMatchCallbacks; {
onError(*e);
delete e;
}
void onError(WebServiceWorkerCacheError) override {}
};
class CacheStorageWithCacheCallbacks : public WebCallbacks<WebPassOwnPtr<WebServiceWorkerCache>, WebServiceWorkerCacheError> {
public:
void onSuccess(WebServiceWorkerCache* r)
{
onSuccess(adoptWebPtr(r));
}
void onError(WebServiceWorkerCacheError* e)
{
onError(*e);
delete e;
}
void onSuccess(WebPassOwnPtr<WebServiceWorkerCache>) override {}
void onError(WebServiceWorkerCacheError) override {}
};
class CacheStorageKeysCallbacks : public WebCallbacks<const WebVector<WebString>&, WebServiceWorkerCacheError> {
public:
void onSuccess(WebVector<WebString>* r) { onSuccess(*r); }
void onError(WebServiceWorkerCacheError* e)
{
onError(*e);
delete e;
}
void onSuccess(const WebVector<WebString>&) override {}
void onError(WebServiceWorkerCacheError) override {}
};
class CacheStorageMatchCallbacks : public WebCallbacks<const WebServiceWorkerResponse&, WebServiceWorkerCacheError> {
public:
void onSuccess(WebServiceWorkerResponse* r) { onSuccess(*r); }
void onError(WebServiceWorkerCacheError* e)
{
onError(*e);
delete e;
}
void onSuccess(const WebServiceWorkerResponse&) override {}
void onError(WebServiceWorkerCacheError) override {}
};
virtual ~WebServiceWorkerCacheStorage() { } virtual ~WebServiceWorkerCacheStorage() { }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment