#pragma once
#include "CanvasGradient.h"
#include "CanvasPattern.h"
#include "CanvasRenderingContext2D.h"
#include "DOMMatrix2DInit.h"
#include "Element.h"
#include "HTMLCanvasElement.h"
#include "HTMLImageElement.h"
#include "HTMLVideoElement.h"
#include "ImageData.h"
#if ENABLE(OFFSCREEN_CANVAS)
#include "OffscreenCanvas.h"
#endif
#include "Path2D.h"
#include "TypedOMCSSImageValue.h"
#include <JavaScriptCore/ArrayBuffer.h>
#include <JavaScriptCore/ArrayBufferView.h>
#include <JavaScriptCore/Float32Array.h>
#include <JavaScriptCore/Int32Array.h>
#include <JavaScriptCore/Uint32Array.h>
#include <wtf/Optional.h>
#include <wtf/RefPtr.h>
#include <wtf/Variant.h>
#include <wtf/Vector.h>
#include <wtf/text/WTFString.h>
#if ENABLE(WEBGL)
#include "WebGLBuffer.h"
#include "WebGLFramebuffer.h"
#include "WebGLProgram.h"
#include "WebGLQuery.h"
#include "WebGLRenderbuffer.h"
#include "WebGLRenderingContextBase.h"
#include "WebGLSampler.h"
#include "WebGLShader.h"
#include "WebGLSync.h"
#include "WebGLTexture.h"
#include "WebGLUniformLocation.h"
#include "WebGLVertexArrayObject.h"
#endif
#if ENABLE(WEBGL2)
#include "WebGL2RenderingContext.h"
#include "WebGLTransformFeedback.h"
#endif
namespace WebCore {
using RecordCanvasActionVariant = Variant<
CanvasDirection,
CanvasFillRule,
CanvasLineCap,
CanvasLineJoin,
CanvasTextAlign,
CanvasTextBaseline,
ImageSmoothingQuality,
DOMMatrix2DInit,
Element*,
HTMLImageElement*,
ImageBitmap*,
ImageData*,
Path2D*,
#if ENABLE(WEBGL)
WebGLBuffer*,
WebGLFramebuffer*,
WebGLProgram*,
WebGLQuery*,
WebGLRenderbuffer*,
WebGLSampler*,
WebGLShader*,
WebGLSync*,
WebGLTexture*,
WebGLUniformLocation*,
WebGLVertexArrayObject*,
#endif
#if ENABLE(WEBGL2)
WebGLTransformFeedback*,
#endif
RefPtr<ArrayBuffer>,
RefPtr<ArrayBufferView>,
RefPtr<CanvasGradient>,
RefPtr<CanvasPattern>,
RefPtr<Float32Array>,
RefPtr<HTMLCanvasElement>,
RefPtr<HTMLImageElement>,
#if ENABLE(VIDEO)
RefPtr<HTMLVideoElement>,
#endif
RefPtr<ImageBitmap>,
#if ENABLE(CSS_TYPED_OM)
RefPtr<TypedOMCSSImageValue>,
#endif
RefPtr<ImageData>,
#if ENABLE(OFFSCREEN_CANVAS)
RefPtr<OffscreenCanvas>,
#endif
RefPtr<Int32Array>,
RefPtr<Uint32Array>,
CanvasImageSource,
CanvasRenderingContext2DBase::StyleVariant,
#if ENABLE(WEBGL)
WebGLRenderingContextBase::BufferDataSource,
Optional<WebGLRenderingContextBase::BufferDataSource>,
WebGLRenderingContextBase::TexImageSource,
Optional<WebGLRenderingContextBase::TexImageSource>,
#endif
Vector<String>,
Vector<float>,
Vector<uint32_t>,
Vector<int32_t>,
#if ENABLE(WEBGL)
WebGLRenderingContextBase::Float32List::VariantType,
WebGLRenderingContextBase::Int32List::VariantType,
#endif
#if ENABLE(WEBGL2)
WebGL2RenderingContext::Uint32List::VariantType,
#endif
String,
double,
float,
Optional<float>,
uint64_t,
int64_t,
uint32_t,
int32_t,
uint8_t,
bool
>;
}