Index: third_party/WebKit/Source/core/loader/DocumentThreadableLoader.h |
diff --git a/third_party/WebKit/Source/core/loader/DocumentThreadableLoader.h b/third_party/WebKit/Source/core/loader/DocumentThreadableLoader.h |
index d30f14a859f604181e81f95fd3313efedccf744c..fcd9c6a34749fba2977393339cd98f32bee23273 100644 |
--- a/third_party/WebKit/Source/core/loader/DocumentThreadableLoader.h |
+++ b/third_party/WebKit/Source/core/loader/DocumentThreadableLoader.h |
@@ -151,11 +151,12 @@ class CORE_EXPORT DocumentThreadableLoader final : public ThreadableLoader, priv |
// returns allowCredentials value of m_resourceLoaderOptions. |
StoredCredentials effectiveAllowCredentials() const; |
- // TODO(oilpan): DocumentThreadableLoader used to be a ResourceOwner, |
- // but ResourceOwner was moved onto the oilpan heap before |
- // DocumentThreadableLoader was ready. When DocumentThreadableLoader |
- // moves onto the oilpan heap, make it a ResourceOwner again and remove |
- // this re-implementation of ResourceOwner. |
+ // TODO(hiroshige): After crbug.com/633696 is fixed, |
+ // - Remove RawResourceClientStateChecker logic, |
+ // - Make DocumentThreadableLoader to be a ResourceOwner and remove |
+ // this re-implementation of ResourceOwner, and |
+ // - Consider re-applying RawResourceClientStateChecker in a more |
+ // general fashion (crbug.com/640291). |
RawResource* resource() const { return m_resource.get(); } |
void clearResource() { setResource(nullptr); } |
void setResource(RawResource* newResource) |
@@ -163,11 +164,14 @@ class CORE_EXPORT DocumentThreadableLoader final : public ThreadableLoader, priv |
if (newResource == m_resource) |
return; |
- if (RawResource* oldResource = m_resource.release()) |
+ if (RawResource* oldResource = m_resource.release()) { |
+ m_checker.willRemoveClient(); |
oldResource->removeClient(this); |
+ } |
if (newResource) { |
m_resource = newResource; |
+ m_checker.willAddClient(); |
m_resource->addClient(this); |
} |
} |
@@ -233,6 +237,7 @@ class CORE_EXPORT DocumentThreadableLoader final : public ThreadableLoader, priv |
bool m_didRedirect; |
Referrer m_referrerAfterRedirect; |
+ RawResourceClientStateChecker m_checker; |
WeakPtrFactory<DocumentThreadableLoader> m_weakFactory; |
}; |