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

Unified Diff: third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp

Issue 2807533003: [WIP2] off-main-thread loading
Patch Set: call set_is_secure_context in EmbeddedSharedWorkerStub::CreateWorkerFetchContext() Created 3 years, 8 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/platform/loader/fetch/ResourceFetcher.cpp
diff --git a/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp b/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp
index 0554a74ba34eafad9c243add53a20c9f6df3ee9f..ea9a7766f0c2c124aa27d81a3beaa94c59f0a50c 100644
--- a/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp
+++ b/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp
@@ -423,8 +423,9 @@ Resource* ResourceFetcher::ResourceForStaticData(
response.SetTextEncodingName(archive_resource->TextEncoding());
}
- Resource* resource = factory.Create(params.GetResourceRequest(),
- params.Options(), params.Charset());
+ Resource* resource =
+ factory.Create(params.GetResourceRequest(), params.Options(),
+ params.Charset(), &Context());
resource->SetNeedsSynchronousCacheHit(substitute_data.ForceSynchronousLoad());
// FIXME: We should provide a body stream here.
resource->ResponseReceived(response, nullptr);
@@ -445,8 +446,9 @@ Resource* ResourceFetcher::ResourceForBlockedRequest(
const FetchParameters& params,
const ResourceFactory& factory,
ResourceRequestBlockedReason blocked_reason) {
- Resource* resource = factory.Create(params.GetResourceRequest(),
- params.Options(), params.Charset());
+ Resource* resource =
+ factory.Create(params.GetResourceRequest(), params.Options(),
+ params.Charset(), &Context());
resource->GetError(ResourceError::CancelledDueToAccessCheckError(
params.Url(), blocked_reason));
return resource;
@@ -589,7 +591,7 @@ Resource* ResourceFetcher::RequestResource(
if (!resource && !is_data_url && archive_)
return nullptr;
}
- if (!resource) {
+ if (!resource && IsMainThread()) {
resource =
GetMemoryCache()->ResourceForURL(params.Url(), GetCacheIdentifier());
}
@@ -735,14 +737,15 @@ Resource* ResourceFetcher::CreateResourceForLoading(
const String& charset,
const ResourceFactory& factory) {
const String cache_identifier = GetCacheIdentifier();
- DCHECK(!GetMemoryCache()->ResourceForURL(params.GetResourceRequest().Url(),
+ DCHECK(!IsMainThread() ||
+ !GetMemoryCache()->ResourceForURL(params.GetResourceRequest().Url(),
cache_identifier));
RESOURCE_LOADING_DVLOG(1) << "Loading Resource for "
<< params.GetResourceRequest().Url().ElidedString();
- Resource* resource =
- factory.Create(params.GetResourceRequest(), params.Options(), charset);
+ Resource* resource = factory.Create(params.GetResourceRequest(),
+ params.Options(), charset, &Context());
resource->SetLinkPreload(params.IsLinkPreload());
if (params.IsSpeculativePreload()) {
resource->SetPreloadDiscoveryTime(params.PreloadDiscoveryTime());
@@ -751,7 +754,7 @@ Resource* ResourceFetcher::CreateResourceForLoading(
// - Don't add main resource to cache to prevent reuse.
// - Don't add the resource if its body will not be stored.
- if (factory.GetType() != Resource::kMainResource &&
+ if (IsMainThread() && factory.GetType() != Resource::kMainResource &&
params.Options().data_buffering_policy != kDoNotBufferData) {
GetMemoryCache()->Add(resource);
}
@@ -1249,7 +1252,7 @@ void ResourceFetcher::MoveResourceLoaderToNonBlocking(ResourceLoader* loader) {
bool ResourceFetcher::StartLoad(Resource* resource) {
DCHECK(resource);
DCHECK(resource->StillNeedsLoad());
- if (!Context().ShouldLoadNewResource(resource->GetType())) {
+ if (IsMainThread() && !Context().ShouldLoadNewResource(resource->GetType())) {
GetMemoryCache()->Remove(resource);
return false;
}

Powered by Google App Engine
This is Rietveld 408576698