Index: third_party/WebKit/Source/core/loader/resource/ImageResource.cpp |
diff --git a/third_party/WebKit/Source/core/loader/resource/ImageResource.cpp b/third_party/WebKit/Source/core/loader/resource/ImageResource.cpp |
index 8af06b1b7fc289165dd9b0d836b654fe093950d7..7087606d7df5c16c5e548e1b0fafb72863c7a28d 100644 |
--- a/third_party/WebKit/Source/core/loader/resource/ImageResource.cpp |
+++ b/third_party/WebKit/Source/core/loader/resource/ImageResource.cpp |
@@ -129,13 +129,17 @@ class ImageResource::ImageResourceFactory : public ResourceFactory { |
STACK_ALLOCATED(); |
public: |
- ImageResourceFactory(const FetchParameters& fetch_params) |
- : ResourceFactory(Resource::kImage), fetch_params_(&fetch_params) {} |
+ ImageResourceFactory(const FetchParameters& fetch_params, |
+ RefPtr<WebTaskRunner> task_runner) |
+ : ResourceFactory(Resource::kImage), |
+ fetch_params_(&fetch_params), |
+ task_runner_(task_runner) {} |
Resource* Create(const ResourceRequest& request, |
const ResourceLoaderOptions& options, |
const String&) const override { |
- return new ImageResource(request, options, ImageResourceContent::Create(), |
+ return new ImageResource(task_runner_, request, options, |
+ ImageResourceContent::Create(task_runner_), |
fetch_params_->GetPlaceholderImageRequestType() == |
FetchParameters::kAllowPlaceholder); |
} |
@@ -143,9 +147,11 @@ class ImageResource::ImageResourceFactory : public ResourceFactory { |
private: |
// Weak, unowned pointer. Must outlive |this|. |
const FetchParameters* fetch_params_; |
+ RefPtr<WebTaskRunner> task_runner_; |
}; |
-ImageResource* ImageResource::Fetch(FetchParameters& params, |
+ImageResource* ImageResource::Fetch(RefPtr<WebTaskRunner> task_runner, |
+ FetchParameters& params, |
ResourceFetcher* fetcher) { |
if (params.GetResourceRequest().GetRequestContext() == |
WebURLRequest::kRequestContextUnspecified) { |
@@ -168,8 +174,8 @@ ImageResource* ImageResource::Fetch(FetchParameters& params, |
return nullptr; |
} |
- return ToImageResource( |
- fetcher->RequestResource(params, ImageResourceFactory(params))); |
+ return ToImageResource(fetcher->RequestResource( |
+ params, ImageResourceFactory(params, task_runner))); |
} |
bool ImageResource::CanReuse(const FetchParameters& params) const { |
@@ -182,12 +188,14 @@ bool ImageResource::CanReuse(const FetchParameters& params) const { |
return true; |
} |
-ImageResource* ImageResource::Create(const ResourceRequest& request) { |
- return new ImageResource(request, ResourceLoaderOptions(), |
- ImageResourceContent::Create(), false); |
+ImageResource* ImageResource::Create(RefPtr<WebTaskRunner> task_runner, |
+ const ResourceRequest& request) { |
+ return new ImageResource(task_runner, request, ResourceLoaderOptions(), |
+ ImageResourceContent::Create(task_runner), false); |
} |
-ImageResource::ImageResource(const ResourceRequest& resource_request, |
+ImageResource::ImageResource(RefPtr<WebTaskRunner> task_runner, |
+ const ResourceRequest& resource_request, |
const ResourceLoaderOptions& options, |
ImageResourceContent* content, |
bool is_placeholder) |
@@ -199,7 +207,8 @@ ImageResource::ImageResource(const ResourceRequest& resource_request, |
placeholder_option_( |
is_placeholder ? PlaceholderOption::kShowAndReloadPlaceholderAlways |
: PlaceholderOption::kDoNotReloadPlaceholder), |
- flush_timer_(this, &ImageResource::FlushImageIfNeeded) { |
+ flush_timer_(this, &ImageResource::FlushImageIfNeeded), |
+ task_runner_(task_runner) { |
DCHECK(GetContent()); |
RESOURCE_LOADING_DVLOG(1) << "new ImageResource(ResourceRequest) " << this; |
GetContent()->SetImageResourceInfo(new ImageResourceInfoImpl(this)); |