| Index: third_party/WebKit/Source/platform/graphics/BitmapImage.cpp
|
| diff --git a/third_party/WebKit/Source/platform/graphics/BitmapImage.cpp b/third_party/WebKit/Source/platform/graphics/BitmapImage.cpp
|
| index f1524ed4ee789d4e4adcd82d0fa19939b901f40e..a6a92481e1513134e2e427d185a8875df6ae3e00 100644
|
| --- a/third_party/WebKit/Source/platform/graphics/BitmapImage.cpp
|
| +++ b/third_party/WebKit/Source/platform/graphics/BitmapImage.cpp
|
| @@ -56,20 +56,24 @@ ColorBehavior DefaultColorBehavior() {
|
| } // namespace
|
|
|
| PassRefPtr<BitmapImage> BitmapImage::CreateWithOrientationForTesting(
|
| + RefPtr<WebTaskRunner> task_runner,
|
| const SkBitmap& bitmap,
|
| ImageOrientation orientation) {
|
| if (bitmap.isNull()) {
|
| - return BitmapImage::Create();
|
| + return BitmapImage::Create(task_runner);
|
| }
|
|
|
| - RefPtr<BitmapImage> result = AdoptRef(new BitmapImage(bitmap));
|
| + RefPtr<BitmapImage> result = AdoptRef(new BitmapImage(task_runner, bitmap));
|
| result->frames_[0].orientation_ = orientation;
|
| if (orientation.UsesWidthAsHeight())
|
| result->size_respecting_orientation_ = result->size_.TransposedSize();
|
| return result.Release();
|
| }
|
|
|
| -BitmapImage::BitmapImage(ImageObserver* observer)
|
| +BitmapImage::BitmapImage() : BitmapImage(TimerBase::GetTimerTaskRunner()) {}
|
| +
|
| +BitmapImage::BitmapImage(RefPtr<WebTaskRunner> task_runner,
|
| + ImageObserver* observer)
|
| : Image(observer),
|
| current_frame_(0),
|
| cached_frame_index_(0),
|
| @@ -83,9 +87,12 @@ BitmapImage::BitmapImage(ImageObserver* observer)
|
| all_data_received_(false),
|
| have_size_(false),
|
| size_available_(false),
|
| - have_frame_count_(false) {}
|
| + have_frame_count_(false),
|
| + task_runner_(task_runner) {}
|
|
|
| -BitmapImage::BitmapImage(const SkBitmap& bitmap, ImageObserver* observer)
|
| +BitmapImage::BitmapImage(RefPtr<WebTaskRunner> task_runner,
|
| + const SkBitmap& bitmap,
|
| + ImageObserver* observer)
|
| : Image(observer),
|
| size_(bitmap.width(), bitmap.height()),
|
| current_frame_(0),
|
| @@ -100,7 +107,8 @@ BitmapImage::BitmapImage(const SkBitmap& bitmap, ImageObserver* observer)
|
| all_data_received_(true),
|
| have_size_(true),
|
| size_available_(true),
|
| - have_frame_count_(true) {
|
| + have_frame_count_(true),
|
| + task_runner_(task_runner) {
|
| // Since we don't have a decoder, we can't figure out the image orientation.
|
| // Set m_sizeRespectingOrientation to be the same as m_size so it's not 0x0.
|
| size_respecting_orientation_ = size_;
|
| @@ -517,8 +525,8 @@ void BitmapImage::StartAnimation(CatchUpAnimation catch_up_if_necessary) {
|
| if (catch_up_if_necessary == kDoNotCatchUp ||
|
| time < desired_frame_start_time_) {
|
| // Haven't yet reached time for next frame to start; delay until then.
|
| - frame_timer_ = WTF::WrapUnique(
|
| - new Timer<BitmapImage>(this, &BitmapImage::AdvanceAnimation));
|
| + frame_timer_ = WTF::WrapUnique(new TaskRunnerTimer<BitmapImage>(
|
| + task_runner_, this, &BitmapImage::AdvanceAnimation));
|
| frame_timer_->StartOneShot(std::max(desired_frame_start_time_ - time, 0.),
|
| BLINK_FROM_HERE);
|
| } else {
|
| @@ -548,8 +556,8 @@ void BitmapImage::StartAnimation(CatchUpAnimation catch_up_if_necessary) {
|
| // may be in the past, meaning the next time through this function we'll
|
| // kick off the next advancement sooner than this frame's duration would
|
| // suggest.
|
| - frame_timer_ = WTF::WrapUnique(new Timer<BitmapImage>(
|
| - this, &BitmapImage::AdvanceAnimationWithoutCatchUp));
|
| + frame_timer_ = WTF::WrapUnique(new TaskRunnerTimer<BitmapImage>(
|
| + task_runner_, this, &BitmapImage::AdvanceAnimationWithoutCatchUp));
|
| frame_timer_->StartOneShot(0, BLINK_FROM_HERE);
|
| }
|
| }
|
| @@ -631,8 +639,9 @@ bool BitmapImage::InternalAdvanceAnimation(AnimationAdvancement advancement) {
|
| // last frame. Skipping frames occurs while painting so we do not
|
| // synchronously notify the observer which could cause a layout.
|
| if (advancement == kSkipFramesToCatchUp) {
|
| - frame_timer_ = WTF::WrapUnique(new Timer<BitmapImage>(
|
| - this, &BitmapImage::NotifyObserversOfAnimationAdvance));
|
| + frame_timer_ = WTF::WrapUnique(new TaskRunnerTimer<BitmapImage>(
|
| + task_runner_, this,
|
| + &BitmapImage::NotifyObserversOfAnimationAdvance));
|
| frame_timer_->StartOneShot(0, BLINK_FROM_HERE);
|
| }
|
|
|
|
|