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

Unified Diff: Source/modules/fetch/FetchManager.cpp

Issue 869903002: Oilpan: fix build after r188851. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: add missing GC base Created 5 years, 11 months 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
« no previous file with comments | « Source/modules/fetch/FetchManager.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/modules/fetch/FetchManager.cpp
diff --git a/Source/modules/fetch/FetchManager.cpp b/Source/modules/fetch/FetchManager.cpp
index c17645f9e9dc3f56188f3fe116639cce195b9269..60b91eedba2fd1a9fe070ac4ba9c120bd029d439 100644
--- a/Source/modules/fetch/FetchManager.cpp
+++ b/Source/modules/fetch/FetchManager.cpp
@@ -30,10 +30,17 @@
namespace blink {
-class FetchManager::Loader : public ThreadableLoaderClient, public ContextLifecycleObserver {
+class FetchManager::Loader final : public NoBaseWillBeGarbageCollectedFinalized<FetchManager::Loader>, public ThreadableLoaderClient, public ContextLifecycleObserver {
+ WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(FetchManager::Loader);
public:
- Loader(ExecutionContext*, FetchManager*, PassRefPtrWillBeRawPtr<ScriptPromiseResolver>, const FetchRequestData*);
+ static PassOwnPtrWillBeRawPtr<Loader> create(ExecutionContext* executionContext, FetchManager* fetchManager, PassRefPtrWillBeRawPtr<ScriptPromiseResolver> resolver, const FetchRequestData* request)
+ {
+ return adoptPtrWillBeNoop(new Loader(executionContext, fetchManager, resolver, request));
+ }
+
~Loader() override;
+ void trace(Visitor*) override;
+
void didReceiveResponse(unsigned long, const ResourceResponse&, PassOwnPtr<WebDataConsumerHandle>) override;
void didReceiveData(const char*, unsigned) override;
void didFinishLoading(unsigned long, double) override;
@@ -45,16 +52,18 @@ public:
void cleanup();
private:
+ Loader(ExecutionContext*, FetchManager*, PassRefPtrWillBeRawPtr<ScriptPromiseResolver>, const FetchRequestData*);
+
void performBasicFetch();
void performNetworkError(const String& message);
void performHTTPFetch(bool corsFlag, bool corsPreflightFlag);
void failed(const String& message);
void notifyFinished();
- FetchManager* m_fetchManager;
- RefPtrWillBePersistent<ScriptPromiseResolver> m_resolver;
- Persistent<FetchRequestData> m_request;
- Persistent<BodyStreamBuffer> m_responseBuffer;
+ RawPtrWillBeMember<FetchManager> m_fetchManager;
+ RefPtrWillBeMember<ScriptPromiseResolver> m_resolver;
+ PersistentWillBeMember<FetchRequestData> m_request;
+ PersistentWillBeMember<BodyStreamBuffer> m_responseBuffer;
RefPtr<ThreadableLoader> m_loader;
bool m_failed;
};
@@ -74,6 +83,15 @@ FetchManager::Loader::~Loader()
m_loader->cancel();
}
+void FetchManager::Loader::trace(Visitor* visitor)
+{
+ visitor->trace(m_fetchManager);
+ visitor->trace(m_resolver);
+ visitor->trace(m_request);
+ visitor->trace(m_responseBuffer);
+ ContextLifecycleObserver::trace(visitor);
+}
+
void FetchManager::Loader::didReceiveResponse(unsigned long, const ResourceResponse& response, PassOwnPtr<WebDataConsumerHandle> handle)
{
// FIXME: Use |handle|.
@@ -375,8 +393,10 @@ FetchManager::FetchManager(ExecutionContext* executionContext)
FetchManager::~FetchManager()
{
+#if !ENABLE(OILPAN)
if (!m_isStopped)
stop();
+#endif
}
ScriptPromise FetchManager::fetch(ScriptState* scriptState, const FetchRequestData* request)
@@ -384,7 +404,7 @@ ScriptPromise FetchManager::fetch(ScriptState* scriptState, const FetchRequestDa
RefPtrWillBeRawPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState);
ScriptPromise promise = resolver->promise();
- OwnPtr<Loader> ownLoader(adoptPtr(new Loader(m_executionContext, this, resolver.release(), request)));
+ OwnPtrWillBeRawPtr<Loader> ownLoader = Loader::create(m_executionContext, this, resolver.release(), request);
Loader* loader = m_loaders.add(ownLoader.release()).storedValue->get();
loader->start();
return promise;
@@ -407,7 +427,10 @@ void FetchManager::onLoaderFinished(Loader* loader)
void FetchManager::trace(Visitor* visitor)
{
+#if ENABLE(OILPAN)
visitor->trace(m_executionContext);
+ visitor->trace(m_loaders);
+#endif
}
} // namespace blink
« no previous file with comments | « Source/modules/fetch/FetchManager.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698