From 95adb6f673cebdba6bced4e94fd8c7564ed8ecbe Mon Sep 17 00:00:00 2001 From: Sam <16504129+sagudev@users.noreply.github.com> Date: Fri, 29 Aug 2025 18:30:47 +0200 Subject: [PATCH] script: Always provide canvas epoch on update_rendering (#39024) We never not provided it. Testing: Existing tests. Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> --- components/script/canvas_context.rs | 10 +++++----- components/script/dom/canvasrenderingcontext2d.rs | 4 ++-- components/script/dom/document.rs | 4 ++-- components/script/dom/webgpu/gpucanvascontext.rs | 4 ++-- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/components/script/canvas_context.rs b/components/script/canvas_context.rs index 87fd7e8dd9a..f6640f98218 100644 --- a/components/script/canvas_context.rs +++ b/components/script/canvas_context.rs @@ -70,9 +70,9 @@ pub(crate) trait CanvasContext { /// The WebRender [`ImageKey`] of this [`CanvasContext`] if any. fn image_key(&self) -> Option; - /// Request that the [`CanvasContext`] update the rendering of its contents, returning - /// the new [`Epoch`] of the image produced, if one was. - fn update_rendering(&self, _canvas_epoch: Option) -> bool { + /// Request that the [`CanvasContext`] update the rendering of its contents, + /// returning `true` if new image was produced. + fn update_rendering(&self, _canvas_epoch: Epoch) -> bool { false } @@ -250,7 +250,7 @@ impl CanvasContext for RenderingContext { } } - fn update_rendering(&self, canvas_epoch: Option) -> bool { + fn update_rendering(&self, canvas_epoch: Epoch) -> bool { match self { RenderingContext::Placeholder(offscreen_canvas) => offscreen_canvas .context() @@ -357,7 +357,7 @@ impl CanvasContext for OffscreenRenderingContext { None } - fn update_rendering(&self, canvas_epoch: Option) -> bool { + fn update_rendering(&self, canvas_epoch: Epoch) -> bool { match self { OffscreenRenderingContext::Context2d(context) => context.update_rendering(canvas_epoch), OffscreenRenderingContext::BitmapRenderer(context) => { diff --git a/components/script/dom/canvasrenderingcontext2d.rs b/components/script/dom/canvasrenderingcontext2d.rs index 18ab337de64..97dad333ce5 100644 --- a/components/script/dom/canvasrenderingcontext2d.rs +++ b/components/script/dom/canvasrenderingcontext2d.rs @@ -123,11 +123,11 @@ impl CanvasContext for CanvasRenderingContext2D { Some(self.canvas.clone()) } - fn update_rendering(&self, canvas_epoch: Option) -> bool { + fn update_rendering(&self, canvas_epoch: Epoch) -> bool { if !self.onscreen() { return false; } - self.canvas_state.update_rendering(canvas_epoch) + self.canvas_state.update_rendering(Some(canvas_epoch)) } fn resize(&self) { diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index 5eecfdb03c0..8c1f81adb3a 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -2690,7 +2690,7 @@ impl Document { .borrow_mut() .iter() .filter_map(|(_, context)| context.root()) - .filter(|context| context.update_rendering(Some(canvas_epoch))) + .filter(|context| context.update_rendering(canvas_epoch)) .map(|context| context.image_key()), ); @@ -2698,7 +2698,7 @@ impl Document { self.dirty_2d_contexts .borrow_mut() .drain() - .filter(|(_, context)| context.update_rendering(Some(canvas_epoch))) + .filter(|(_, context)| context.update_rendering(canvas_epoch)) .map(|(_, context)| context.image_key()), ); diff --git a/components/script/dom/webgpu/gpucanvascontext.rs b/components/script/dom/webgpu/gpucanvascontext.rs index 3fb744fd29a..6cdbb837eb9 100644 --- a/components/script/dom/webgpu/gpucanvascontext.rs +++ b/components/script/dom/webgpu/gpucanvascontext.rs @@ -278,13 +278,13 @@ impl CanvasContext for GPUCanvasContext { } /// - fn update_rendering(&self, canvas_epoch: Option) -> bool { + fn update_rendering(&self, canvas_epoch: Epoch) -> bool { if !self.onscreen() { return false; } // Step 1: Expire the current texture of context. - self.expire_current_texture(canvas_epoch) + self.expire_current_texture(Some(canvas_epoch)) // Step 2: Set context.[[lastPresentedImage]] to context.[[drawingBuffer]]. // TODO: Implement this. }