| Index: third_party/WebKit/Source/core/fetch/RawResource.cpp
|
| diff --git a/third_party/WebKit/Source/core/fetch/RawResource.cpp b/third_party/WebKit/Source/core/fetch/RawResource.cpp
|
| index 48eadab9c2642b1e7d8f8605d0f8ed1ba74ec627..37c225d31083b9380e64516edee3504b4d1296fc 100644
|
| --- a/third_party/WebKit/Source/core/fetch/RawResource.cpp
|
| +++ b/third_party/WebKit/Source/core/fetch/RawResource.cpp
|
| @@ -106,20 +106,21 @@ void RawResource::didAddClient(ResourceClient* c)
|
| return;
|
| ASSERT(RawResourceClient::isExpectedType(c));
|
| RawResourceClient* client = static_cast<RawResourceClient*>(c);
|
| + WeakPtr<RawResourceClient> clientWeak = client->createWeakPtr();
|
| for (const auto& redirect : redirectChain()) {
|
| ResourceRequest request(redirect.m_request);
|
| client->redirectReceived(this, request, redirect.m_redirectResponse);
|
| - if (!hasClient(c))
|
| + if (!clientWeak || !hasClient(c))
|
| return;
|
| }
|
|
|
| if (!m_response.isNull())
|
| client->responseReceived(this, m_response, nullptr);
|
| - if (!hasClient(c))
|
| + if (!clientWeak || !hasClient(c))
|
| return;
|
| if (m_data)
|
| client->dataReceived(this, m_data->data(), m_data->size());
|
| - if (!hasClient(c))
|
| + if (!clientWeak || !hasClient(c))
|
| return;
|
| Resource::didAddClient(client);
|
| }
|
|
|