| Index: Source/modules/serviceworkers/Cache.cpp
|
| diff --git a/Source/modules/serviceworkers/Cache.cpp b/Source/modules/serviceworkers/Cache.cpp
|
| index 1f40c1d03570650aadc8a3e525268f3cf7dd133d..947928dfd63cb92f2d26d14ae5ee6caf013d74be 100644
|
| --- a/Source/modules/serviceworkers/Cache.cpp
|
| +++ b/Source/modules/serviceworkers/Cache.cpp
|
| @@ -23,7 +23,7 @@ namespace {
|
| class CacheMatchCallbacks : public WebServiceWorkerCache::CacheMatchCallbacks {
|
| WTF_MAKE_NONCOPYABLE(CacheMatchCallbacks);
|
| public:
|
| - CacheMatchCallbacks(PassRefPtr<ScriptPromiseResolver> resolver)
|
| + CacheMatchCallbacks(PassRefPtrWillBeRawPtr<ScriptPromiseResolver> resolver)
|
| : m_resolver(resolver) { }
|
|
|
| virtual void onSuccess(WebServiceWorkerResponse* webResponse) override
|
| @@ -42,14 +42,14 @@ public:
|
| }
|
|
|
| private:
|
| - RefPtr<ScriptPromiseResolver> m_resolver;
|
| + RefPtrWillBePersistent<ScriptPromiseResolver> m_resolver;
|
| };
|
|
|
| // FIXME: Consider using CallbackPromiseAdapter.
|
| class CacheWithResponsesCallbacks : public WebServiceWorkerCache::CacheWithResponsesCallbacks {
|
| WTF_MAKE_NONCOPYABLE(CacheWithResponsesCallbacks);
|
| public:
|
| - CacheWithResponsesCallbacks(PassRefPtr<ScriptPromiseResolver> resolver)
|
| + CacheWithResponsesCallbacks(PassRefPtrWillBeRawPtr<ScriptPromiseResolver> resolver)
|
| : m_resolver(resolver) { }
|
|
|
| virtual void onSuccess(WebVector<WebServiceWorkerResponse>* webResponses) override
|
| @@ -68,14 +68,14 @@ public:
|
| }
|
|
|
| protected:
|
| - RefPtr<ScriptPromiseResolver> m_resolver;
|
| + RefPtrWillBePersistent<ScriptPromiseResolver> m_resolver;
|
| };
|
|
|
| // FIXME: Consider using CallbackPromiseAdapter.
|
| class CacheAddOrPutCallbacks : public CacheWithResponsesCallbacks {
|
| WTF_MAKE_NONCOPYABLE(CacheAddOrPutCallbacks);
|
| public:
|
| - CacheAddOrPutCallbacks(PassRefPtr<ScriptPromiseResolver> resolver)
|
| + CacheAddOrPutCallbacks(PassRefPtrWillBeRawPtr<ScriptPromiseResolver> resolver)
|
| : CacheWithResponsesCallbacks(resolver) { }
|
|
|
| virtual void onSuccess(WebVector<WebServiceWorkerResponse>* webResponses) override
|
| @@ -90,7 +90,7 @@ public:
|
| class CacheDeleteCallback : public WebServiceWorkerCache::CacheWithResponsesCallbacks {
|
| WTF_MAKE_NONCOPYABLE(CacheDeleteCallback);
|
| public:
|
| - CacheDeleteCallback(PassRefPtr<ScriptPromiseResolver> resolver)
|
| + CacheDeleteCallback(PassRefPtrWillBeRawPtr<ScriptPromiseResolver> resolver)
|
| : m_resolver(resolver) { }
|
|
|
| virtual void onSuccess(WebVector<WebServiceWorkerResponse>* webResponses) override
|
| @@ -110,14 +110,14 @@ public:
|
| }
|
|
|
| private:
|
| - RefPtr<ScriptPromiseResolver> m_resolver;
|
| + RefPtrWillBePersistent<ScriptPromiseResolver> m_resolver;
|
| };
|
|
|
| // FIXME: Consider using CallbackPromiseAdapter.
|
| class CacheWithRequestsCallbacks : public WebServiceWorkerCache::CacheWithRequestsCallbacks {
|
| WTF_MAKE_NONCOPYABLE(CacheWithRequestsCallbacks);
|
| public:
|
| - CacheWithRequestsCallbacks(PassRefPtr<ScriptPromiseResolver> resolver)
|
| + CacheWithRequestsCallbacks(PassRefPtrWillBeRawPtr<ScriptPromiseResolver> resolver)
|
| : m_resolver(resolver) { }
|
|
|
| virtual void onSuccess(WebVector<WebServiceWorkerRequest>* webRequests) override
|
| @@ -136,7 +136,7 @@ public:
|
| }
|
|
|
| private:
|
| - RefPtr<ScriptPromiseResolver> m_resolver;
|
| + RefPtrWillBePersistent<ScriptPromiseResolver> m_resolver;
|
| };
|
|
|
| ScriptPromise rejectAsNotImplemented(ScriptState* scriptState)
|
| @@ -148,7 +148,7 @@ ScriptPromise rejectAsNotImplemented(ScriptState* scriptState)
|
|
|
| class Cache::AsyncPutBatch final : public BodyStreamBuffer::BlobHandleCreatorClient {
|
| public:
|
| - AsyncPutBatch(PassRefPtr<ScriptPromiseResolver> resolver, Cache* cache, Request* request, Response* response)
|
| + AsyncPutBatch(PassRefPtrWillBeRawPtr<ScriptPromiseResolver> resolver, Cache* cache, Request* request, Response* response)
|
| : m_resolver(resolver)
|
| , m_cache(cache)
|
| {
|
| @@ -163,7 +163,7 @@ public:
|
| batchOperations[0].request = m_webRequest;
|
| batchOperations[0].response = m_webResponse;
|
| batchOperations[0].response.setBlobDataHandle(handle);
|
| - m_cache->webCache()->dispatchBatch(new CacheAddOrPutCallbacks(m_resolver), batchOperations);
|
| + m_cache->webCache()->dispatchBatch(new CacheAddOrPutCallbacks(m_resolver.get()), batchOperations);
|
| cleanup();
|
| }
|
| void didFail(PassRefPtrWillBeRawPtr<DOMException> exception) override
|
| @@ -173,9 +173,11 @@ public:
|
| m_resolver->reject(V8ThrowException::createTypeError(state->isolate(), exception->toString()));
|
| cleanup();
|
| }
|
| +
|
| void trace(Visitor* visitor) override
|
| {
|
| BlobHandleCreatorClient::trace(visitor);
|
| + visitor->trace(m_resolver);
|
| visitor->trace(m_cache);
|
| }
|
|
|
| @@ -185,7 +187,7 @@ private:
|
| m_resolver = nullptr;
|
| m_cache = nullptr;
|
| }
|
| - RefPtr<ScriptPromiseResolver> m_resolver;
|
| + RefPtrWillBeMember<ScriptPromiseResolver> m_resolver;
|
| Member<Cache> m_cache;
|
| WebServiceWorkerRequest m_webRequest;
|
| WebServiceWorkerResponse m_webResponse;
|
| @@ -293,7 +295,7 @@ ScriptPromise Cache::matchImpl(ScriptState* scriptState, const Request* request,
|
| WebServiceWorkerRequest webRequest;
|
| request->populateWebServiceWorkerRequest(webRequest);
|
|
|
| - RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState);
|
| + RefPtrWillBeRawPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState);
|
| const ScriptPromise promise = resolver->promise();
|
| m_webCache->dispatchMatch(new CacheMatchCallbacks(resolver), webRequest, toWebQueryParams(options));
|
| return promise;
|
| @@ -304,7 +306,7 @@ ScriptPromise Cache::matchAllImpl(ScriptState* scriptState, const Request* reque
|
| WebServiceWorkerRequest webRequest;
|
| request->populateWebServiceWorkerRequest(webRequest);
|
|
|
| - RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState);
|
| + RefPtrWillBeRawPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState);
|
| const ScriptPromise promise = resolver->promise();
|
| m_webCache->dispatchMatchAll(new CacheWithResponsesCallbacks(resolver), webRequest, toWebQueryParams(options));
|
| return promise;
|
| @@ -344,7 +346,7 @@ ScriptPromise Cache::deleteImpl(ScriptState* scriptState, const Request* request
|
| request->populateWebServiceWorkerRequest(batchOperations[0].request);
|
| batchOperations[0].matchParams = toWebQueryParams(options);
|
|
|
| - RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState);
|
| + RefPtrWillBeRawPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState);
|
| const ScriptPromise promise = resolver->promise();
|
| m_webCache->dispatchBatch(new CacheDeleteCallback(resolver), batchOperations);
|
| return promise;
|
| @@ -369,7 +371,7 @@ ScriptPromise Cache::putImpl(ScriptState* scriptState, Request* request, Respons
|
| if (response->hasBody())
|
| response->setBodyUsed();
|
|
|
| - RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState);
|
| + RefPtrWillBeRawPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState);
|
| const ScriptPromise promise = resolver->promise();
|
| if (response->internalBuffer()) {
|
| // If the response body type is stream, read the all data and create the
|
| @@ -388,7 +390,7 @@ ScriptPromise Cache::putImpl(ScriptState* scriptState, Request* request, Respons
|
|
|
| ScriptPromise Cache::keysImpl(ScriptState* scriptState)
|
| {
|
| - RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState);
|
| + RefPtrWillBeRawPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState);
|
| const ScriptPromise promise = resolver->promise();
|
| m_webCache->dispatchKeys(new CacheWithRequestsCallbacks(resolver), 0, WebServiceWorkerCache::QueryParams());
|
| return promise;
|
| @@ -399,7 +401,7 @@ ScriptPromise Cache::keysImpl(ScriptState* scriptState, const Request* request,
|
| WebServiceWorkerRequest webRequest;
|
| request->populateWebServiceWorkerRequest(webRequest);
|
|
|
| - RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState);
|
| + RefPtrWillBeRawPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState);
|
| const ScriptPromise promise = resolver->promise();
|
| m_webCache->dispatchKeys(new CacheWithRequestsCallbacks(resolver), 0, toWebQueryParams(options));
|
| return promise;
|
|
|