diff --git a/dom/canvas/test/test_capture_throttled.html b/dom/canvas/test/test_capture_throttled.html index d0ab328104e8..41cd93a6b964 100644 --- a/dom/canvas/test/test_capture_throttled.html +++ b/dom/canvas/test/test_capture_throttled.html @@ -1,36 +1,46 @@ - - + + Canvas2D test: CaptureStream() with throttled rAF - + + + diff --git a/dom/html/HTMLCanvasElement.cpp b/dom/html/HTMLCanvasElement.cpp index a122695a37fd..93a7bb378736 100644 --- a/dom/html/HTMLCanvasElement.cpp +++ b/dom/html/HTMLCanvasElement.cpp @@ -163,7 +163,7 @@ class RequestedFrameRefreshObserver : public nsARefreshObserver { ? now : mLastCaptureTime + TimeDuration::FromMilliseconds( nsRefreshDriver::DefaultInterval()); - if (next <= now) { + if (mLastCaptureTime.IsNull() || next <= now) { AUTO_PROFILER_MARKER_TEXT("Canvas CaptureStream", MEDIA_RT, {}, "CaptureFrame direct while throttled"_ns); CaptureFrame(now); diff --git a/dom/media/CanvasCaptureMediaStream.cpp b/dom/media/CanvasCaptureMediaStream.cpp index 948e663ed124..377243540c22 100644 --- a/dom/media/CanvasCaptureMediaStream.cpp +++ b/dom/media/CanvasCaptureMediaStream.cpp @@ -88,7 +88,7 @@ class TimerDriver : public OutputStreamDriver { str.AppendPrintf( "TimerDriver %staking frame (%sexplicitly requested; after %.2fms; " "interval cap %.2fms)", - FrameCaptureRequested(aTime) ? "" : "NOT ", + sinceLast >= mFrameInterval ? "" : "NOT ", mExplicitCaptureRequested ? "" : "NOT ", sinceLast.ToMilliseconds(), mFrameInterval.ToMilliseconds()); }