OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "core/loader/resource/ImageResourceContent.h" | 5 #include "core/loader/resource/ImageResourceContent.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 | 8 |
9 #include "core/loader/resource/ImageResource.h" | 9 #include "core/loader/resource/ImageResource.h" |
10 #include "core/loader/resource/ImageResourceInfo.h" | 10 #include "core/loader/resource/ImageResourceInfo.h" |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
61 const KURL&, | 61 const KURL&, |
62 const AtomicString& initiator_name) override {} | 62 const AtomicString& initiator_name) override {} |
63 | 63 |
64 const KURL url_; | 64 const KURL url_; |
65 const ResourceResponse response_; | 65 const ResourceResponse response_; |
66 const ResourceError error_; | 66 const ResourceError error_; |
67 }; | 67 }; |
68 | 68 |
69 } // namespace | 69 } // namespace |
70 | 70 |
71 ImageResourceContent::ImageResourceContent(PassRefPtr<blink::Image> image) | 71 ImageResourceContent::ImageResourceContent(RefPtr<WebTaskRunner> task_runner, |
72 : image_(std::move(image)), is_refetchable_data_from_disk_cache_(true) { | 72 PassRefPtr<blink::Image> image) |
| 73 : image_(std::move(image)), |
| 74 is_refetchable_data_from_disk_cache_(true), |
| 75 task_runner_(task_runner) { |
73 DEFINE_STATIC_LOCAL(NullImageResourceInfo, null_info, | 76 DEFINE_STATIC_LOCAL(NullImageResourceInfo, null_info, |
74 (new NullImageResourceInfo())); | 77 (new NullImageResourceInfo())); |
75 info_ = &null_info; | 78 info_ = &null_info; |
76 } | 79 } |
77 | 80 |
78 ImageResourceContent* ImageResourceContent::Fetch(FetchParameters& params, | 81 ImageResourceContent* ImageResourceContent::Fetch( |
79 ResourceFetcher* fetcher) { | 82 RefPtr<WebTaskRunner> task_runner, |
| 83 FetchParameters& params, |
| 84 ResourceFetcher* fetcher) { |
80 // TODO(hiroshige): Remove direct references to ImageResource by making | 85 // TODO(hiroshige): Remove direct references to ImageResource by making |
81 // the dependencies around ImageResource and ImageResourceContent cleaner. | 86 // the dependencies around ImageResource and ImageResourceContent cleaner. |
82 ImageResource* resource = ImageResource::Fetch(params, fetcher); | 87 ImageResource* resource = ImageResource::Fetch(task_runner, params, fetcher); |
83 if (!resource) | 88 if (!resource) |
84 return nullptr; | 89 return nullptr; |
85 return resource->GetContent(); | 90 return resource->GetContent(); |
86 } | 91 } |
87 | 92 |
88 void ImageResourceContent::SetImageResourceInfo(ImageResourceInfo* info) { | 93 void ImageResourceContent::SetImageResourceInfo(ImageResourceInfo* info) { |
89 info_ = info; | 94 info_ = info; |
90 } | 95 } |
91 | 96 |
92 DEFINE_TRACE(ImageResourceContent) { | 97 DEFINE_TRACE(ImageResourceContent) { |
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
302 observer->ImageNotifyFinished(this); | 307 observer->ImageNotifyFinished(this); |
303 } | 308 } |
304 } | 309 } |
305 } | 310 } |
306 } | 311 } |
307 } | 312 } |
308 | 313 |
309 PassRefPtr<Image> ImageResourceContent::CreateImage() { | 314 PassRefPtr<Image> ImageResourceContent::CreateImage() { |
310 if (info_->GetResponse().MimeType() == "image/svg+xml") | 315 if (info_->GetResponse().MimeType() == "image/svg+xml") |
311 return SVGImage::Create(this); | 316 return SVGImage::Create(this); |
312 return BitmapImage::Create(this); | 317 return BitmapImage::Create(task_runner_, this); |
313 } | 318 } |
314 | 319 |
315 void ImageResourceContent::ClearImage() { | 320 void ImageResourceContent::ClearImage() { |
316 if (!image_) | 321 if (!image_) |
317 return; | 322 return; |
318 int64_t length = image_->Data() ? image_->Data()->size() : 0; | 323 int64_t length = image_->Data() ? image_->Data()->size() : 0; |
319 v8::Isolate::GetCurrent()->AdjustAmountOfExternalAllocatedMemory(-length); | 324 v8::Isolate::GetCurrent()->AdjustAmountOfExternalAllocatedMemory(-length); |
320 | 325 |
321 // If our Image has an observer, it's always us so we need to clear the back | 326 // If our Image has an observer, it's always us so we need to clear the back |
322 // pointer before dropping our reference. | 327 // pointer before dropping our reference. |
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
511 | 516 |
512 const ResourceResponse& ImageResourceContent::GetResponse() const { | 517 const ResourceResponse& ImageResourceContent::GetResponse() const { |
513 return info_->GetResponse(); | 518 return info_->GetResponse(); |
514 } | 519 } |
515 | 520 |
516 const ResourceError& ImageResourceContent::GetResourceError() const { | 521 const ResourceError& ImageResourceContent::GetResourceError() const { |
517 return info_->GetResourceError(); | 522 return info_->GetResourceError(); |
518 } | 523 } |
519 | 524 |
520 } // namespace blink | 525 } // namespace blink |
OLD | NEW |