From 4d91f637b68ff6dcf6d3387cb803b3162bbeefa5 Mon Sep 17 00:00:00 2001 From: Moonchild Date: Wed, 22 Apr 2026 23:54:56 +0200 Subject: [PATCH] [DOM] Update some DOM canvas checks. --- dom/canvas/CanvasRenderingContext2D.cpp | 5 +++-- dom/canvas/CanvasRenderingContext2D.h | 4 +++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/dom/canvas/CanvasRenderingContext2D.cpp b/dom/canvas/CanvasRenderingContext2D.cpp index e069312817..0af8559ed4 100644 --- a/dom/canvas/CanvasRenderingContext2D.cpp +++ b/dom/canvas/CanvasRenderingContext2D.cpp @@ -4356,6 +4356,9 @@ CanvasRenderingContext2D::DrawOrMeasureText(const nsAString& aRawText, textToDraw.Truncate(); } + // This is only needed to know if we can know the drawing bounding box easily. + const bool doCalculateBounds = NeedToCalculateBounds(); + // for now, default to ltr if not in doc bool isRTL = false; @@ -4376,8 +4379,6 @@ CanvasRenderingContext2D::DrawOrMeasureText(const nsAString& aRawText, isRTL = GET_BIDI_OPTION_DIRECTION(document->GetBidiOptions()) == IBMBIDI_TEXTDIRECTION_RTL; } - // This is only needed to know if we can know the drawing bounding box easily. - const bool doCalculateBounds = NeedToCalculateBounds(); if (presShell->IsDestroying()) { return NS_ERROR_FAILURE; } diff --git a/dom/canvas/CanvasRenderingContext2D.h b/dom/canvas/CanvasRenderingContext2D.h index 81637e8eb6..5526fd1e3f 100644 --- a/dom/canvas/CanvasRenderingContext2D.h +++ b/dom/canvas/CanvasRenderingContext2D.h @@ -890,7 +890,9 @@ protected: * last call to UpdateFilter and now. */ const gfx::FilterDescription& EnsureUpdatedFilter() { - bool isWriteOnly = mCanvasElement && mCanvasElement->IsWriteOnly(); + bool isWriteOnly = IsWriteOnly() || + (mCanvasElement && mCanvasElement->IsWriteOnly()) || + (mOffscreenCanvas && mOffscreenCanvas->IsWriteOnly()); if (CurrentState().filterSourceGraphicTainted != isWriteOnly) { UpdateFilter(); EnsureTarget();