Bug 1495064 - part1 : refactor the logic of requesting wakelock. r=jya
HTMLMediaElement::UpdateWakeLock() is responsible for creating and releasing audio wakelock. HTMLVideoElement::UpdateWakeLock() is responsible for creating and releasing video wakelock. In addition, each platform would handle system wakelock properly depending on different requests. Differential Revision: https://phabricator.services.mozilla.com/D7214
This commit is contained in:
@@ -4282,14 +4282,14 @@ HTMLMediaElement::UpdateWakeLock()
|
||||
Volume() > 0.0 && !mMuted && mIsAudioTrackAudible;
|
||||
// WakeLock when playing audible media.
|
||||
if (playing && isAudible) {
|
||||
WakeLockCreate();
|
||||
CreateAudioWakeLockIfNeeded();
|
||||
} else {
|
||||
WakeLockRelease();
|
||||
ReleaseAudioWakeLockIfExists();
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
HTMLMediaElement::WakeLockCreate()
|
||||
HTMLMediaElement::CreateAudioWakeLockIfNeeded()
|
||||
{
|
||||
if (!mWakeLock) {
|
||||
RefPtr<power::PowerManagerService> pmService =
|
||||
@@ -4297,13 +4297,14 @@ HTMLMediaElement::WakeLockCreate()
|
||||
NS_ENSURE_TRUE_VOID(pmService);
|
||||
|
||||
ErrorResult rv;
|
||||
mWakeLock = pmService->NewWakeLock(
|
||||
NS_LITERAL_STRING("audio-playing"), OwnerDoc()->GetInnerWindow(), rv);
|
||||
mWakeLock = pmService->NewWakeLock(NS_LITERAL_STRING("audio-playing"),
|
||||
OwnerDoc()->GetInnerWindow(),
|
||||
rv);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
HTMLMediaElement::WakeLockRelease()
|
||||
HTMLMediaElement::ReleaseAudioWakeLockIfExists()
|
||||
{
|
||||
if (mWakeLock) {
|
||||
ErrorResult rv;
|
||||
@@ -4313,6 +4314,12 @@ HTMLMediaElement::WakeLockRelease()
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
HTMLMediaElement::WakeLockRelease()
|
||||
{
|
||||
ReleaseAudioWakeLockIfExists();
|
||||
}
|
||||
|
||||
HTMLMediaElement::OutputMediaStream::OutputMediaStream()
|
||||
: mNextAvailableTrackID(1)
|
||||
, mFinishWhenEnded(false)
|
||||
|
||||
Reference in New Issue
Block a user