diff --git a/dom/html/HTMLCanvasElement.cpp b/dom/html/HTMLCanvasElement.cpp
index 27178b32f0c7..0b6354cfe594 100644
--- a/dom/html/HTMLCanvasElement.cpp
+++ b/dom/html/HTMLCanvasElement.cpp
@@ -155,10 +155,13 @@ class RequestedFrameRefreshObserver : public nsARefreshObserver {
return;
}
- TimeStamp next = mLastCaptureTime + TimeDuration::FromMilliseconds(
- nsRefreshDriver::DefaultInterval());
TimeStamp now = TimeStamp::Now();
- if (mLastCaptureTime.IsNull() || next < now) {
+ TimeStamp next =
+ mLastCaptureTime.IsNull()
+ ? now
+ : mLastCaptureTime + TimeDuration::FromMilliseconds(
+ nsRefreshDriver::DefaultInterval());
+ if (mLastCaptureTime.IsNull() || next <= now) {
AUTO_PROFILER_MARKER_TEXT("Canvas CaptureStream", MEDIA_RT, {},
"CaptureFrame direct while throttled"_ns);
CaptureFrame(now);