| 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 #ifndef PlaceholderImage_h |   5 #ifndef PlaceholderImage_h | 
|   6 #define PlaceholderImage_h |   6 #define PlaceholderImage_h | 
|   7  |   7  | 
|   8 #include "platform/SharedBuffer.h" |   8 #include "platform/SharedBuffer.h" | 
|   9 #include "platform/geometry/IntSize.h" |   9 #include "platform/geometry/IntSize.h" | 
|  10 #include "platform/graphics/Image.h" |  10 #include "platform/graphics/Image.h" | 
|  11 #include "platform/graphics/ImageOrientation.h" |  11 #include "platform/graphics/ImageOrientation.h" | 
|  12 #include "third_party/skia/include/core/SkImage.h" |  12 #include "third_party/skia/include/core/SkImage.h" | 
|  13 #include "third_party/skia/include/core/SkRefCnt.h" |  13 #include "third_party/skia/include/core/SkRefCnt.h" | 
|  14 #include "wtf/PassRefPtr.h" |  14 #include "wtf/PassRefPtr.h" | 
|  15  |  15  | 
|  16 class SkCanvas; |  | 
|  17 class SkPaint; |  | 
|  18  |  | 
|  19 namespace blink { |  16 namespace blink { | 
|  20  |  17  | 
|  21 class FloatRect; |  18 class FloatRect; | 
|  22 class ImageObserver; |  19 class ImageObserver; | 
|  23  |  20  | 
|  24 // A generated placeholder image that shows a translucent gray rectangle. |  21 // A generated placeholder image that shows a translucent gray rectangle. | 
|  25 class PLATFORM_EXPORT PlaceholderImage final : public Image { |  22 class PLATFORM_EXPORT PlaceholderImage final : public Image { | 
|  26  public: |  23  public: | 
|  27   static PassRefPtr<PlaceholderImage> create(ImageObserver* observer, |  24   static PassRefPtr<PlaceholderImage> create(ImageObserver* observer, | 
|  28                                              const IntSize& size) { |  25                                              const IntSize& size) { | 
|  29     return adoptRef(new PlaceholderImage(observer, size)); |  26     return adoptRef(new PlaceholderImage(observer, size)); | 
|  30   } |  27   } | 
|  31  |  28  | 
|  32   ~PlaceholderImage() override; |  29   ~PlaceholderImage() override; | 
|  33  |  30  | 
|  34   IntSize size() const override { return m_size; } |  31   IntSize size() const override { return m_size; } | 
|  35  |  32  | 
|  36   sk_sp<SkImage> imageForCurrentFrame(const ColorBehavior&) override; |  33   sk_sp<SkImage> imageForCurrentFrame(const ColorBehavior&) override; | 
|  37  |  34  | 
|  38   void draw(SkCanvas*, |  35   void draw(PaintCanvas*, | 
|  39             const SkPaint&, |  36             const PaintFlags&, | 
|  40             const FloatRect& destRect, |  37             const FloatRect& destRect, | 
|  41             const FloatRect& srcRect, |  38             const FloatRect& srcRect, | 
|  42             RespectImageOrientationEnum, |  39             RespectImageOrientationEnum, | 
|  43             ImageClampingMode, |  40             ImageClampingMode, | 
|  44             const ColorBehavior&) override; |  41             const ColorBehavior&) override; | 
|  45  |  42  | 
|  46   void destroyDecodedData() override; |  43   void destroyDecodedData() override; | 
|  47  |  44  | 
|  48  private: |  45  private: | 
|  49   PlaceholderImage(ImageObserver* observer, const IntSize& size) |  46   PlaceholderImage(ImageObserver* observer, const IntSize& size) | 
|  50       : Image(observer), m_size(size) {} |  47       : Image(observer), m_size(size) {} | 
|  51  |  48  | 
|  52   bool currentFrameHasSingleSecurityOrigin() const override { return true; } |  49   bool currentFrameHasSingleSecurityOrigin() const override { return true; } | 
|  53  |  50  | 
|  54   bool currentFrameKnownToBeOpaque(MetadataMode = UseCurrentMetadata) override { |  51   bool currentFrameKnownToBeOpaque(MetadataMode = UseCurrentMetadata) override { | 
|  55     // Placeholder images are translucent. |  52     // Placeholder images are translucent. | 
|  56     return false; |  53     return false; | 
|  57   } |  54   } | 
|  58  |  55  | 
|  59   IntSize m_size; |  56   IntSize m_size; | 
|  60   // Lazily initialized. |  57   // Lazily initialized. | 
|  61   sk_sp<SkImage> m_imageForCurrentFrame; |  58   sk_sp<SkImage> m_imageForCurrentFrame; | 
|  62 }; |  59 }; | 
|  63  |  60  | 
|  64 }  // namespace blink |  61 }  // namespace blink | 
|  65  |  62  | 
|  66 #endif |  63 #endif | 
| OLD | NEW |