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

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

Issue 1435263002: Oilpan: account for DocumentThreadableLoader::m_document back ref. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: use WeakPersistent Created 5 years, 1 month 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 | « third_party/WebKit/Source/core/loader/DocumentThreadableLoader.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 7d3f682563256409a2d4253605ee09b8a3382b3c..cb7d2ed6b4d98c4d5eee3af4e31e39d5a458dbea 100644
--- a/third_party/WebKit/Source/core/loader/DocumentThreadableLoader.cpp
+++ b/third_party/WebKit/Source/core/loader/DocumentThreadableLoader.cpp
@@ -126,7 +126,7 @@ PassRefPtr<DocumentThreadableLoader> DocumentThreadableLoader::create(Document&
DocumentThreadableLoader::DocumentThreadableLoader(Document& document, ThreadableLoaderClient* client, BlockingBehavior blockingBehavior, const ResourceRequest& request, const ThreadableLoaderOptions& options, const ResourceLoaderOptions& resourceLoaderOptions)
: m_client(client)
- , m_document(document)
+ , m_document(&document)
, m_options(options)
, m_resourceLoaderOptions(resourceLoaderOptions)
, m_forceDoNotAllowStoredCredentials(false)
@@ -182,7 +182,7 @@ DocumentThreadableLoader::DocumentThreadableLoader(Document& document, Threadabl
// - Some non-script initiated fetches such as WorkerScriptLoader also use
// ThreadableLoader, but they are guaranteed to use GET method.
if (request.httpMethod() != "GET") {
- if (Page* page = m_document.page())
+ if (Page* page = document.page())
page->chromeClient().didObserveNonGetFetchFromScript();
}
@@ -194,7 +194,7 @@ DocumentThreadableLoader::DocumentThreadableLoader(Document& document, Threadabl
//
// We assume that ServiceWorker is skipped for sync requests and non-HTTP
// familiy requests by content/ code.
- if (m_async && !request.skipServiceWorker() && request.url().protocolIsInHTTPFamily() && m_document.fetcher()->isControlledByServiceWorker()) {
+ if (m_async && !request.skipServiceWorker() && request.url().protocolIsInHTTPFamily() && document.fetcher()->isControlledByServiceWorker()) {
ResourceRequest newRequest(request);
// FetchRequestMode should be set by the caller. But the expected value
// of FetchRequestMode is not speced yet except for XHR. So we set here.
@@ -266,7 +266,7 @@ void DocumentThreadableLoader::makeCrossOriginAccessRequest(const ResourceReques
m_actualRequest = crossOriginRequest.release();
m_actualOptions = crossOriginOptions.release();
- bool shouldForcePreflight = InspectorInstrumentation::shouldForceCORSPreflight(&m_document);
+ bool shouldForcePreflight = InspectorInstrumentation::shouldForceCORSPreflight(m_document);
bool canSkipPreflight = CrossOriginPreflightResultCache::shared().canSkipPreflight(securityOrigin()->toString(), m_actualRequest->url(), effectiveAllowCredentials(), m_actualRequest->httpMethod(), m_actualRequest->httpHeaderFields());
if (canSkipPreflight && !shouldForcePreflight) {
loadActualRequest();
@@ -425,7 +425,7 @@ void DocumentThreadableLoader::redirectReceived(Resource* resource, ResourceRequ
} else if (m_options.crossOriginRequestPolicy == UseAccessControl) {
--m_corsRedirectLimit;
- InspectorInstrumentation::didReceiveCORSRedirectResponse(m_document.frame(), resource->identifier(), m_document.frame()->loader().documentLoader(), redirectResponse, 0);
+ InspectorInstrumentation::didReceiveCORSRedirectResponse(document().frame(), resource->identifier(), document().frame()->loader().documentLoader(), redirectResponse, 0);
bool allowRedirect = false;
String accessControlErrorDescription;
@@ -560,8 +560,8 @@ void DocumentThreadableLoader::handlePreflightResponse(const ResourceResponse& r
void DocumentThreadableLoader::reportResponseReceived(unsigned long identifier, const ResourceResponse& response)
{
- DocumentLoader* loader = m_document.frame()->loader().documentLoader();
- LocalFrame* frame = m_document.frame();
+ LocalFrame* frame = document().frame();
+ DocumentLoader* loader = frame->loader().documentLoader();
InspectorInstrumentation::didReceiveResourceResponse(frame, identifier, loader, response, resource() ? resource()->loader() : 0);
frame->console().reportResourceResponseReceived(loader, identifier, response);
}
@@ -785,12 +785,12 @@ void DocumentThreadableLoader::loadRequest(const ResourceRequest& request, Resou
newRequest.setOriginRestriction(FetchRequest::NoOriginRestriction);
ASSERT(!resource());
if (request.requestContext() == WebURLRequest::RequestContextVideo || request.requestContext() == WebURLRequest::RequestContextAudio)
- setResource(RawResource::fetchMedia(newRequest, m_document.fetcher()));
+ setResource(RawResource::fetchMedia(newRequest, document().fetcher()));
else
- setResource(RawResource::fetch(newRequest, m_document.fetcher()));
+ setResource(RawResource::fetch(newRequest, document().fetcher()));
if (resource() && resource()->loader()) {
unsigned long identifier = resource()->identifier();
- InspectorInstrumentation::documentThreadableLoaderStartedLoadingForClient(&m_document, identifier, m_client);
+ InspectorInstrumentation::documentThreadableLoaderStartedLoadingForClient(m_document, identifier, m_client);
}
return;
}
@@ -798,12 +798,12 @@ void DocumentThreadableLoader::loadRequest(const ResourceRequest& request, Resou
FetchRequest fetchRequest(request, m_options.initiator, resourceLoaderOptions);
if (m_options.crossOriginRequestPolicy == AllowCrossOriginRequests)
fetchRequest.setOriginRestriction(FetchRequest::NoOriginRestriction);
- ResourcePtr<Resource> resource = RawResource::fetchSynchronously(fetchRequest, m_document.fetcher());
+ ResourcePtr<Resource> resource = RawResource::fetchSynchronously(fetchRequest, document().fetcher());
ResourceResponse response = resource ? resource->response() : ResourceResponse();
unsigned long identifier = resource ? resource->identifier() : std::numeric_limits<unsigned long>::max();
ResourceError error = resource ? resource->resourceError() : ResourceError();
- InspectorInstrumentation::documentThreadableLoaderStartedLoadingForClient(&m_document, identifier, m_client);
+ InspectorInstrumentation::documentThreadableLoaderStartedLoadingForClient(m_document, identifier, m_client);
if (!resource) {
m_client->didFail(error);
@@ -859,7 +859,7 @@ bool DocumentThreadableLoader::isAllowedByContentSecurityPolicy(const KURL& url,
{
if (m_options.contentSecurityPolicyEnforcement != EnforceConnectSrcDirective)
return true;
- return m_document.contentSecurityPolicy()->allowConnectToSource(url, redirectStatus);
+ return document().contentSecurityPolicy()->allowConnectToSource(url, redirectStatus);
}
StoredCredentials DocumentThreadableLoader::effectiveAllowCredentials() const
@@ -871,7 +871,13 @@ StoredCredentials DocumentThreadableLoader::effectiveAllowCredentials() const
SecurityOrigin* DocumentThreadableLoader::securityOrigin() const
{
- return m_securityOrigin ? m_securityOrigin.get() : m_document.securityOrigin();
+ return m_securityOrigin ? m_securityOrigin.get() : document().securityOrigin();
+}
+
+Document& DocumentThreadableLoader::document() const
+{
+ ASSERT(m_document);
+ return *m_document;
}
} // namespace blink
« no previous file with comments | « third_party/WebKit/Source/core/loader/DocumentThreadableLoader.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698