diff --git a/Userland/Libraries/LibWeb/HTML/Canvas/CanvasFilters.idl b/Userland/Libraries/LibWeb/HTML/Canvas/CanvasFilters.idl
new file mode 100644
index 00000000000..389b8aef7e4
--- /dev/null
+++ b/Userland/Libraries/LibWeb/HTML/Canvas/CanvasFilters.idl
@@ -0,0 +1,5 @@
+// https://html.spec.whatwg.org/multipage/canvas.html#canvasfilters
+interface mixin CanvasFilters {
+ // filters
+ [FIXME] attribute DOMString filter; // (default "none")
+};
diff --git a/Userland/Libraries/LibWeb/HTML/Canvas/CanvasShadowStyles.idl b/Userland/Libraries/LibWeb/HTML/Canvas/CanvasShadowStyles.idl
new file mode 100644
index 00000000000..47649465982
--- /dev/null
+++ b/Userland/Libraries/LibWeb/HTML/Canvas/CanvasShadowStyles.idl
@@ -0,0 +1,8 @@
+// https://html.spec.whatwg.org/multipage/canvas.html#canvasshadowstyles
+interface mixin CanvasShadowStyles {
+ // shadows
+ [FIXME] attribute unrestricted double shadowOffsetX; // (default 0)
+ [FIXME] attribute unrestricted double shadowOffsetY; // (default 0)
+ [FIXME] attribute unrestricted double shadowBlur; // (default 0)
+ [FIXME] attribute DOMString shadowColor; // (default transparent black)
+};
diff --git a/Userland/Libraries/LibWeb/HTML/Canvas/CanvasUserInterface.idl b/Userland/Libraries/LibWeb/HTML/Canvas/CanvasUserInterface.idl
new file mode 100644
index 00000000000..a6cddf0ea11
--- /dev/null
+++ b/Userland/Libraries/LibWeb/HTML/Canvas/CanvasUserInterface.idl
@@ -0,0 +1,5 @@
+// https://html.spec.whatwg.org/multipage/canvas.html#canvasuserinterface
+interface mixin CanvasUserInterface {
+ [FIXME] undefined drawFocusIfNeeded(Element element);
+ [FIXME] undefined drawFocusIfNeeded(Path2D path, Element element);
+};
diff --git a/Userland/Libraries/LibWeb/HTML/CanvasRenderingContext2D.idl b/Userland/Libraries/LibWeb/HTML/CanvasRenderingContext2D.idl
index 73d03efb452..b06cc0422ef 100644
--- a/Userland/Libraries/LibWeb/HTML/CanvasRenderingContext2D.idl
+++ b/Userland/Libraries/LibWeb/HTML/CanvasRenderingContext2D.idl
@@ -3,15 +3,27 @@
#import
#import
#import
+#import
#import
#import
#import
#import
#import
#import
+#import
#import
#import
#import
+#import
+
+enum PredefinedColorSpace { "srgb", "display-p3" };
+
+dictionary CanvasRenderingContext2DSettings {
+ boolean alpha = true;
+ boolean desynchronized = false;
+ PredefinedColorSpace colorSpace = "srgb";
+ boolean willReadFrequently = false;
+};
enum ImageSmoothingQuality { "low", "medium", "high" };
@@ -23,6 +35,8 @@ enum CanvasTextBaseline { "top", "hanging", "middle", "alphabetic", "ideographic
[Exposed=Window]
interface CanvasRenderingContext2D {
[ImplementedAs=canvas_for_binding] readonly attribute HTMLCanvasElement canvas;
+
+ [FIXME] CanvasRenderingContext2DSettings getContextAttributes();
};
CanvasRenderingContext2D includes CanvasState;
@@ -30,11 +44,11 @@ CanvasRenderingContext2D includes CanvasTransform;
CanvasRenderingContext2D includes CanvasCompositing;
CanvasRenderingContext2D includes CanvasImageSmoothing;
CanvasRenderingContext2D includes CanvasFillStrokeStyles;
-// FIXME: CanvasRenderingContext2D includes CanvasShadowStyles;
-// FIXME: CanvasRenderingContext2D includes CanvasFilters;
+CanvasRenderingContext2D includes CanvasShadowStyles;
+CanvasRenderingContext2D includes CanvasFilters;
CanvasRenderingContext2D includes CanvasRect;
CanvasRenderingContext2D includes CanvasDrawPath;
-// FIXME: CanvasRenderingContext2D includes CanvasUserInterface;
+CanvasRenderingContext2D includes CanvasUserInterface;
CanvasRenderingContext2D includes CanvasText;
CanvasRenderingContext2D includes CanvasDrawImage;
CanvasRenderingContext2D includes CanvasImageData;