Bug 1373888 - part2 : remove the timer which was used for b2g. r=cpearce

The timer was added for the b2g issue, now we can remove it.

MozReview-Commit-ID: BNjIghImCzC

--HG--
extra : rebase_source : c5490d417b2d40619eb7092dfc21b19a99982a1c
This commit is contained in:
Alastor Wu 2017-08-29 10:54:25 +08:00
parent f570c3c5ec
commit 71ad2fdb83
3 changed files with 4 additions and 45 deletions

View File

@ -4165,56 +4165,21 @@ HTMLMediaElement::WakeLockBoolWrapper::operator=(bool val)
return *this;
}
HTMLMediaElement::WakeLockBoolWrapper::~WakeLockBoolWrapper()
{
if (mTimer) {
mTimer->Cancel();
}
}
void
HTMLMediaElement::WakeLockBoolWrapper::UpdateWakeLock()
{
MOZ_ASSERT(NS_IsMainThread());
if (!mOuter) {
return;
}
MOZ_ASSERT(mOuter);
bool playing = !mValue;
if (playing) {
if (mTimer) {
mTimer->Cancel();
mTimer = nullptr;
}
mOuter->WakeLockCreate();
} else if (!mTimer) {
// Don't release the wake lock immediately; instead, release it after a
// grace period.
int timeout = Preferences::GetInt("media.wakelock_timeout", 2000);
mTimer = do_CreateInstance("@mozilla.org/timer;1");
if (mTimer) {
mTimer->SetTarget(mOuter->MainThreadEventTarget());
mTimer->InitWithNamedFuncCallback(
TimerCallback,
this,
timeout,
nsITimer::TYPE_ONE_SHOT,
"dom::HTMLMediaElement::WakeLockBoolWrapper::UpdateWakeLock");
}
} else {
mOuter->WakeLockRelease();
}
}
void
HTMLMediaElement::WakeLockBoolWrapper::TimerCallback(nsITimer* aTimer,
void* aClosure)
{
WakeLockBoolWrapper* wakeLock = static_cast<WakeLockBoolWrapper*>(aClosure);
wakeLock->mOuter->WakeLockRelease();
wakeLock->mTimer = nullptr;
}
void
HTMLMediaElement::WakeLockCreate()
{

View File

@ -822,7 +822,7 @@ protected:
, mOuter(nullptr)
{}
~WakeLockBoolWrapper();
~WakeLockBoolWrapper() {};
void SetOuter(HTMLMediaElement* outer) { mOuter = outer; }
@ -832,14 +832,11 @@ protected:
bool operator !() const { return !mValue; }
static void TimerCallback(nsITimer* aTimer, void* aClosure);
private:
void UpdateWakeLock();
bool mValue;
HTMLMediaElement* mOuter;
nsCOMPtr<nsITimer> mTimer;
};
// Holds references to the DOM wrappers for the MediaStreams that we're

View File

@ -349,9 +349,6 @@ pref("media.throttle-regardless-of-download-rate", false);
// Master HTML5 media volume scale.
pref("media.volume_scale", "1.0");
// Timeout for wakelock release
pref("media.wakelock_timeout", 2000);
// Whether we should play videos opened in a "video document", i.e. videos
// opened as top-level documents, as opposed to inside a media element.
pref("media.play-stand-alone", true);