Index: Source/core/fetch/ResourceFetcher.cpp |
diff --git a/Source/core/fetch/ResourceFetcher.cpp b/Source/core/fetch/ResourceFetcher.cpp |
index 605967270e987fe01f0348d5ef04a2d3eb21e3dd..aab49bffcf16e6f2a579e779f98a3b2461164a7d 100644 |
--- a/Source/core/fetch/ResourceFetcher.cpp |
+++ b/Source/core/fetch/ResourceFetcher.cpp |
@@ -116,9 +116,10 @@ static ResourceLoadPriority loadPriority(Resource::Type type, const FetchRequest |
return ResourceLoadPriorityVeryHigh; |
case Resource::CSSStyleSheet: |
return ResourceLoadPriorityHigh; |
+ case Resource::Raw: |
+ return request.options().synchronousPolicy == RequestSynchronously ? ResourceLoadPriorityVeryHigh : ResourceLoadPriorityMedium; |
case Resource::Script: |
case Resource::Font: |
- case Resource::Raw: |
case Resource::ImportResource: |
return ResourceLoadPriorityMedium; |
case Resource::Image: |
@@ -211,20 +212,14 @@ FetchContext& ResourceFetcher::context() const |
return FetchContext::nullInstance(); |
} |
-unsigned long ResourceFetcher::fetchSynchronously(const ResourceRequest& passedRequest, StoredCredentials storedCredentials, ResourceError& error, ResourceResponse& response, Vector<char>& data) |
+ResourcePtr<Resource> ResourceFetcher::fetchSynchronously(FetchRequest& request) |
{ |
ASSERT(document()); |
- ResourceRequest request(passedRequest); |
- request.setTimeoutInterval(10); |
- addAdditionalRequestHeaders(request, Resource::Raw); |
- |
- unsigned long identifier = createUniqueIdentifier(); |
- context().dispatchWillSendRequest(m_documentLoader, identifier, request, ResourceResponse()); |
- documentLoader()->applicationCacheHost()->willStartLoadingSynchronously(request); |
- ResourceLoader::loadResourceSynchronously(request, storedCredentials, error, response, data); |
- int encodedDataLength = response.resourceLoadInfo() ? static_cast<int>(response.resourceLoadInfo()->encodedDataLength) : -1; |
- context().sendRemainingDelegateMessages(m_documentLoader, identifier, response, data.data(), data.size(), encodedDataLength, error); |
- return identifier; |
+ request.mutableResourceRequest().setTimeoutInterval(10); |
+ ResourceLoaderOptions options(request.options()); |
+ options.synchronousPolicy = RequestSynchronously; |
abarth-chromium
2013/09/13 23:48:28
Should the async pathway ASSERT that the options a
Nate Chapin
2013/09/16 20:32:50
There are a lot of pathways :/
I'd say we should
|
+ request.setOptions(options); |
+ return requestResource(Resource::Raw, request); |
abarth-chromium
2013/09/13 23:48:28
Should this function return a ResourcePtr<RawResou
Nate Chapin
2013/09/16 20:32:50
Probably not? Technically it's a raw resource unde
|
} |
ResourcePtr<ImageResource> ResourceFetcher::fetchImage(FetchRequest& request) |
@@ -579,7 +574,7 @@ ResourcePtr<Resource> ResourceFetcher::requestResource(Resource::Type type, Fetc |
if (resource->errorOccurred()) { |
if (resource->inCache()) |
memoryCache()->remove(resource.get()); |
- return 0; |
+ return request.options().synchronousPolicy == RequestSynchronously ? resource : 0; |
Nate Chapin
2013/09/12 23:28:46
This is kind of lame, wherein we let both sync and
abarth-chromium
2013/09/13 23:48:28
I might add this information as a comment.
Nate Chapin
2013/09/16 20:32:50
Will do.
|
} |
} |