diff --git a/Userland/Libraries/LibWeb/HTML/CanvasRenderingContext2D.cpp b/Userland/Libraries/LibWeb/HTML/CanvasRenderingContext2D.cpp index b97ec2070b1..be84f363cb1 100644 --- a/Userland/Libraries/LibWeb/HTML/CanvasRenderingContext2D.cpp +++ b/Userland/Libraries/LibWeb/HTML/CanvasRenderingContext2D.cpp @@ -336,6 +336,13 @@ void CanvasRenderingContext2D::reset() reset_to_default_state(); } +// https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-iscontextlost +bool CanvasRenderingContext2D::is_context_lost() +{ + // The isContextLost() method steps are to return this's context lost. + return m_context_lost; +} + // https://html.spec.whatwg.org/multipage/canvas.html#reset-the-rendering-context-to-its-default-state void CanvasRenderingContext2D::reset_to_default_state() { diff --git a/Userland/Libraries/LibWeb/HTML/CanvasRenderingContext2D.h b/Userland/Libraries/LibWeb/HTML/CanvasRenderingContext2D.h index fc925c69132..99d05f6baf4 100644 --- a/Userland/Libraries/LibWeb/HTML/CanvasRenderingContext2D.h +++ b/Userland/Libraries/LibWeb/HTML/CanvasRenderingContext2D.h @@ -72,6 +72,7 @@ public: void save(); void restore(); void reset(); + bool is_context_lost(); void reset_to_default_state(); @@ -97,6 +98,9 @@ private: DrawingState m_drawing_state; Vector m_drawing_state_stack; + // https://html.spec.whatwg.org/multipage/canvas.html#concept-canvas-context-lost + bool m_context_lost { false }; + Gfx::Path m_path; }; diff --git a/Userland/Libraries/LibWeb/HTML/CanvasRenderingContext2D.idl b/Userland/Libraries/LibWeb/HTML/CanvasRenderingContext2D.idl index d61dfbdde0c..8a4e7dbec82 100644 --- a/Userland/Libraries/LibWeb/HTML/CanvasRenderingContext2D.idl +++ b/Userland/Libraries/LibWeb/HTML/CanvasRenderingContext2D.idl @@ -34,6 +34,7 @@ interface CanvasRenderingContext2D { undefined save(); undefined restore(); undefined reset(); + boolean isContextLost(); readonly attribute HTMLCanvasElement canvas;