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

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

Issue 2020313002: Verify the order of RawResourceClient callbacks in DocumentThreadableLoader (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix rebase error and update TODO comment Created 4 years, 4 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.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;
};

Powered by Google App Engine
This is Rietveld 408576698