Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1088)

Unified Diff: Source/modules/serviceworkers/Cache.cpp

Issue 783423003: Make ScriptPromiseResolver RefCountedWillBeRefCountedGarbageCollected. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;

Powered by Google App Engine
This is Rietveld 408576698