Chromium Code Reviews| 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.
|
| } |
| } |