Bug 1299065 - invisible elements in the foreground should also be recorded; r?gerald
MozReview-Commit-ID: 56JBbJ743DM
--- a/dom/html/HTMLMediaElement.cpp
+++ b/dom/html/HTMLMediaElement.cpp
@@ -6564,28 +6564,39 @@ HTMLMediaElement::OnVisibilityChange(Vis
}
switch (aNewVisibility) {
case Visibility::UNTRACKED: {
MOZ_ASSERT_UNREACHABLE("Shouldn't notify for untracked visibility");
break;
}
case Visibility::NONVISIBLE: {
+ if (mPlayTime.IsStarted()) {
+ // Not visible, play time is running -> Start hidden play time if needed.
+ HiddenVideoStart();
+ }
+
mDecoder->NotifyOwnerActivityChanged(false);
break;
}
case Visibility::MAY_BECOME_VISIBLE: {
if (aOldVisibility == Visibility::NONVISIBLE) {
+ // Visible -> Just pause hidden play time (no-op if already paused).
+ HiddenVideoStop();
+
mDecoder->NotifyOwnerActivityChanged(true);
} else if (aOldVisibility == Visibility::IN_DISPLAYPORT) {
// Do nothing.
}
break;
}
case Visibility::IN_DISPLAYPORT: {
+ // Visible -> Just pause hidden play time (no-op if already paused).
+ HiddenVideoStop();
+
mDecoder->NotifyOwnerActivityChanged(true);
break;
}
}
}
void