Bug 1286444 - Use correct types to construct VideoPlaybackQuality - r=kinetik
VideoPlaybackQuality was fed uint64_t's, now it should be given uint32_t's.
Note that FrameStatistics currently provide uint32_t's, so we are fine now;
nevertheless I added a static_assert to verify that and ensure it stays true.
MozReview-Commit-ID: I0dgP1K4lg3
--- a/dom/html/HTMLVideoElement.cpp
+++ b/dom/html/HTMLVideoElement.cpp
@@ -224,30 +224,32 @@ HTMLVideoElement::NotifyOwnerDocumentAct
UpdateScreenWakeLock();
return pauseElement;
}
already_AddRefed<VideoPlaybackQuality>
HTMLVideoElement::GetVideoPlaybackQuality()
{
DOMHighResTimeStamp creationTime = 0;
- uint64_t totalFrames = 0;
- uint64_t droppedFrames = 0;
- uint64_t corruptedFrames = 0;
+ uint32_t totalFrames = 0;
+ uint32_t droppedFrames = 0;
+ uint32_t corruptedFrames = 0;
if (sVideoStatsEnabled) {
if (nsPIDOMWindowInner* window = OwnerDoc()->GetInnerWindow()) {
Performance* perf = window->GetPerformance();
if (perf) {
creationTime = perf->Now();
}
}
if (mDecoder) {
FrameStatistics& stats = mDecoder->GetFrameStatistics();
+ static_assert(sizeof(uint32_t) >= sizeof (stats.GetParsedFrames()),
+ "possible truncation from FrameStatistics to VideoPlaybackQuality");
totalFrames = stats.GetParsedFrames();
droppedFrames = stats.GetDroppedFrames();
corruptedFrames = 0;
}
}
RefPtr<VideoPlaybackQuality> playbackQuality =
new VideoPlaybackQuality(this, creationTime, totalFrames, droppedFrames,