1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_HTML_CANVAS_CANVAS_RENDERING_CONTEXT_FACTORY_H_ 6 #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_CANVAS_CANVAS_RENDERING_CONTEXT_FACTORY_H_ 7 8 #include "base/macros.h" 9 #include "base/memory/scoped_refptr.h" 10 #include "third_party/blink/renderer/core/core_export.h" 11 #include "third_party/blink/renderer/core/dom/document.h" 12 #include "third_party/blink/renderer/core/html/canvas/canvas_context_creation_attributes_core.h" 13 #include "third_party/blink/renderer/core/html/canvas/canvas_rendering_context.h" 14 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h" 15 16 namespace blink { 17 18 class HTMLCanvasElement; 19 class OffscreenCanvas; 20 21 class CORE_EXPORT CanvasRenderingContextFactory { 22 USING_FAST_MALLOC(CanvasRenderingContextFactory); 23 24 public: 25 CanvasRenderingContextFactory() = default; 26 virtual ~CanvasRenderingContextFactory() = default; 27 28 virtual CanvasRenderingContext* Create( 29 CanvasRenderingContextHost*, 30 const CanvasContextCreationAttributesCore&) = 0; 31 32 virtual CanvasRenderingContext::ContextType GetContextType() const = 0; OnError(HTMLCanvasElement *,const String & error)33 virtual void OnError(HTMLCanvasElement*, const String& error) {} OnError(OffscreenCanvas *,const String & error)34 virtual void OnError(OffscreenCanvas*, const String& error) {} 35 36 DISALLOW_COPY_AND_ASSIGN(CanvasRenderingContextFactory); 37 }; 38 39 } // namespace blink 40 41 #endif // THIRD_PARTY_BLINK_RENDERER_CORE_HTML_CANVAS_CANVAS_RENDERING_CONTEXT_FACTORY_H_ 42