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

Unified Diff: third_party/WebKit/Source/core/loader/DocumentThreadableLoader.cpp

Issue 2371663002: Introduce an injection point to configure the internal pointer of WeakPtr
Patch Set: fix Created 4 years, 3 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
Index: third_party/WebKit/Source/core/loader/DocumentThreadableLoader.cpp
diff --git a/third_party/WebKit/Source/core/loader/DocumentThreadableLoader.cpp b/third_party/WebKit/Source/core/loader/DocumentThreadableLoader.cpp
index aca2279354f78667ef087902a9356f4b69bddc58..1e7f5ce971a3e9a4960fb741fd432866ca40a58c 100644
--- a/third_party/WebKit/Source/core/loader/DocumentThreadableLoader.cpp
+++ b/third_party/WebKit/Source/core/loader/DocumentThreadableLoader.cpp
@@ -151,7 +151,6 @@ DocumentThreadableLoader::DocumentThreadableLoader(Document& document, Threadabl
, m_corsRedirectLimit(m_options.crossOriginRequestPolicy == UseAccessControl ? kMaxCORSRedirects : 0)
, m_redirectMode(WebURLRequest::FetchRedirectModeFollow)
, m_didRedirect(false)
- , m_weakFactory(this)
{
DCHECK(client);
}
@@ -434,10 +433,6 @@ void DocumentThreadableLoader::redirectReceived(Resource* resource, ResourceRequ
}
if (m_redirectMode == WebURLRequest::FetchRedirectModeManual) {
- // Keep |this| alive even if the client release a reference in
- // responseReceived().
- WeakPtr<DocumentThreadableLoader> self(m_weakFactory.createWeakPtr());
-
// We use |m_redirectMode| to check the original redirect mode.
// |request| is a new request for redirect. So we don't set the redirect
// mode of it in WebURLLoaderImpl::Context::OnReceivedRedirect().
@@ -450,11 +445,6 @@ void DocumentThreadableLoader::redirectReceived(Resource* resource, ResourceRequ
// because it doesn't store the body of redirect responses.
responseReceived(resource, redirectResponse, wrapUnique(new EmptyDataHandle()));
- if (!self) {
- request = ResourceRequest();
- return;
- }
-
if (m_client) {
DCHECK(m_actualRequest.isNull());
notifyFinished(resource);
@@ -868,8 +858,6 @@ void DocumentThreadableLoader::loadRequest(const ResourceRequest& request, Resou
newRequest.setOriginRestriction(FetchRequest::NoOriginRestriction);
DCHECK(!resource());
- WeakPtr<DocumentThreadableLoader> self(m_weakFactory.createWeakPtr());
-
if (request.requestContext() == WebURLRequest::RequestContextVideo || request.requestContext() == WebURLRequest::RequestContextAudio)
setResource(RawResource::fetchMedia(newRequest, document().fetcher()));
else if (request.requestContext() == WebURLRequest::RequestContextManifest)
@@ -877,10 +865,6 @@ void DocumentThreadableLoader::loadRequest(const ResourceRequest& request, Resou
else
setResource(RawResource::fetch(newRequest, document().fetcher()));
- // setResource() might call notifyFinished() synchronously, and thus
- if (!self)
- return;
-
if (!resource()) {
InspectorInstrumentation::documentThreadableLoaderFailedToStartLoadingForClient(m_document, m_client);
ThreadableLoaderClient* client = m_client;

Powered by Google App Engine
This is Rietveld 408576698