diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/modules/canvas/imagebitmap/image_bitmap_rendering_context_base.cc')
-rw-r--r-- | chromium/third_party/blink/renderer/modules/canvas/imagebitmap/image_bitmap_rendering_context_base.cc | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/chromium/third_party/blink/renderer/modules/canvas/imagebitmap/image_bitmap_rendering_context_base.cc b/chromium/third_party/blink/renderer/modules/canvas/imagebitmap/image_bitmap_rendering_context_base.cc index fad044cf917..a3db1e96175 100644 --- a/chromium/third_party/blink/renderer/modules/canvas/imagebitmap/image_bitmap_rendering_context_base.cc +++ b/chromium/third_party/blink/renderer/modules/canvas/imagebitmap/image_bitmap_rendering_context_base.cc @@ -5,8 +5,6 @@ #include "third_party/blink/renderer/modules/canvas/imagebitmap/image_bitmap_rendering_context_base.h" #include "third_party/blink/renderer/bindings/core/v8/v8_union_htmlcanvaselement_offscreencanvas.h" -#include "third_party/blink/renderer/bindings/modules/v8/html_canvas_element_or_offscreen_canvas.h" -#include "third_party/blink/renderer/bindings/modules/v8/rendering_context.h" #include "third_party/blink/renderer/core/imagebitmap/image_bitmap.h" #include "third_party/blink/renderer/platform/graphics/gpu/image_layer_bridge.h" #include "third_party/blink/renderer/platform/graphics/gpu/shared_gpu_context.h" @@ -21,13 +19,12 @@ namespace blink { ImageBitmapRenderingContextBase::ImageBitmapRenderingContextBase( CanvasRenderingContextHost* host, const CanvasContextCreationAttributesCore& attrs) - : CanvasRenderingContext(host, attrs), + : CanvasRenderingContext(host, attrs, CanvasRenderingAPI::kBitmaprenderer), image_layer_bridge_(MakeGarbageCollected<ImageLayerBridge>( attrs.alpha ? kNonOpaque : kOpaque)) {} ImageBitmapRenderingContextBase::~ImageBitmapRenderingContextBase() = default; -#if defined(USE_BLINK_V8_BINDING_NEW_IDL_UNION) V8UnionHTMLCanvasElementOrOffscreenCanvas* ImageBitmapRenderingContextBase::getHTMLOrOffscreenCanvas() const { if (Host()->IsOffscreenCanvas()) { @@ -37,16 +34,6 @@ ImageBitmapRenderingContextBase::getHTMLOrOffscreenCanvas() const { return MakeGarbageCollected<V8UnionHTMLCanvasElementOrOffscreenCanvas>( static_cast<HTMLCanvasElement*>(Host())); } -#else // defined(USE_BLINK_V8_BINDING_NEW_IDL_UNION) -void ImageBitmapRenderingContextBase::getHTMLOrOffscreenCanvas( - HTMLCanvasElementOrOffscreenCanvas& result) const { - if (Host()->IsOffscreenCanvas()) { - result.SetOffscreenCanvas(static_cast<OffscreenCanvas*>(Host())); - } else { - result.SetHTMLCanvasElement(static_cast<HTMLCanvasElement*>(Host())); - } -} -#endif // defined(USE_BLINK_V8_BINDING_NEW_IDL_UNION) void ImageBitmapRenderingContextBase::Stop() { image_layer_bridge_->Dispose(); @@ -75,7 +62,7 @@ void ImageBitmapRenderingContextBase::SetImage(ImageBitmap* image_bitmap) { else ResetInternalBitmapToBlackTransparent(Host()->width(), Host()->height()); - DidDraw(); + DidDraw(CanvasPerformanceMonitor::DrawType::kOther); if (image_bitmap) image_bitmap->close(); @@ -133,6 +120,9 @@ bool ImageBitmapRenderingContextBase::PushFrame() { return false; scoped_refptr<StaticBitmapImage> image = image_layer_bridge_->GetImage(); + if (!image) { + return false; + } cc::PaintFlags paint_flags; paint_flags.setBlendMode(SkBlendMode::kSrc); Host()->ResourceProvider()->Canvas()->drawImage( |