Backed out 8 changesets (bug 1627999) for wpt failures on MediaPlaybackStatus.h. CLOSED TREE

Backed out changeset 98e98e2ecb56 (bug 1627999)
Backed out changeset 5533b1c9e3ed (bug 1627999)
Backed out changeset c9c9f78e131d (bug 1627999)
Backed out changeset 37b8f7a47ede (bug 1627999)
Backed out changeset 433a0eb70fc6 (bug 1627999)
Backed out changeset 72a1340bc112 (bug 1627999)
Backed out changeset 10e3550226eb (bug 1627999)
Backed out changeset 039ecd63e3fb (bug 1627999)
This commit is contained in:
Cosmin Sabou
2020-05-14 12:29:01 +03:00
parent 0b14ddd0da
commit 6aba48d3f6
23 changed files with 427 additions and 706 deletions

View File

@@ -3336,6 +3336,7 @@ void HTMLMediaElement::SetVolumeInternal() {
NotifyAudioPlaybackChanged(
AudioChannelService::AudibleChangedReasons::eVolumeChanged);
StartListeningMediaControlEventIfNeeded();
}
void HTMLMediaElement::SetMuted(bool aMuted) {
@@ -7227,6 +7228,7 @@ void HTMLMediaElement::SetAudibleState(bool aAudible) {
mIsAudioTrackAudible = aAudible;
NotifyAudioPlaybackChanged(
AudioChannelService::AudibleChangedReasons::eDataAudibleChanged);
StartListeningMediaControlEventIfNeeded();
}
}
@@ -7315,6 +7317,7 @@ void HTMLMediaElement::SetMediaInfo(const MediaInfo& aInfo) {
mAudioChannelWrapper->AudioCaptureTrackChangeIfNeeded();
}
UpdateWakeLock();
StartListeningMediaControlEventIfNeeded();
}
void HTMLMediaElement::AudioCaptureTrackChange(bool aCapture) {
@@ -7755,6 +7758,17 @@ void HTMLMediaElement::StartListeningMediaControlEventIfNeeded() {
return;
}
// This includes cases such like `video is muted`, `video has zero volume`,
// `video's audio track is still inaudible` and `tab is muted by audio channel
// (tab sound indicator)`, all these cases would make media inaudible.
// `ComputedVolume()` would return the final volume applied the affection made
// by audio channel, which is used to detect if the tab is muted by audio
// channel.
if (!IsAudible() || ComputedVolume() == 0.0f) {
MEDIACONTROL_LOG("Not listening because media is inaudible");
return;
}
// In order to filter out notification-ish sound, we use this pref to set the
// eligible media duration to prevent showing media control for those short
// sound.