зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1118336. Extract timer rate function from RefreshDriverTimer into SimpleTimerBasedRefreshTimer. r=roc
This commit is contained in:
Родитель
13c4ff02cb
Коммит
caec1fe4eb
|
@ -84,12 +84,9 @@ namespace mozilla {
|
|||
*/
|
||||
class RefreshDriverTimer {
|
||||
public:
|
||||
/*
|
||||
* aRate -- the delay, in milliseconds, requested between timer firings
|
||||
*/
|
||||
explicit RefreshDriverTimer(double aRate)
|
||||
RefreshDriverTimer()
|
||||
: mLastFireEpoch(0)
|
||||
{
|
||||
SetRate(aRate);
|
||||
}
|
||||
|
||||
virtual ~RefreshDriverTimer()
|
||||
|
@ -121,18 +118,6 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
double GetRate() const
|
||||
{
|
||||
return mRateMilliseconds;
|
||||
}
|
||||
|
||||
// will take effect at next timer tick
|
||||
virtual void SetRate(double aNewRate)
|
||||
{
|
||||
mRateMilliseconds = aNewRate;
|
||||
mRateDuration = TimeDuration::FromMilliseconds(mRateMilliseconds);
|
||||
}
|
||||
|
||||
TimeStamp MostRecentRefresh() const { return mLastFireTime; }
|
||||
int64_t MostRecentRefreshEpochTime() const { return mLastFireEpoch; }
|
||||
|
||||
|
@ -177,9 +162,6 @@ protected:
|
|||
driver->Tick(jsnow, now);
|
||||
}
|
||||
|
||||
double mRateMilliseconds;
|
||||
TimeDuration mRateDuration;
|
||||
|
||||
int64_t mLastFireEpoch;
|
||||
TimeStamp mLastFireTime;
|
||||
TimeStamp mTargetTime;
|
||||
|
@ -206,9 +188,12 @@ class SimpleTimerBasedRefreshDriverTimer :
|
|||
public RefreshDriverTimer
|
||||
{
|
||||
public:
|
||||
/*
|
||||
* aRate -- the delay, in milliseconds, requested between timer firings
|
||||
*/
|
||||
explicit SimpleTimerBasedRefreshDriverTimer(double aRate)
|
||||
: RefreshDriverTimer(aRate)
|
||||
{
|
||||
SetRate(aRate);
|
||||
mTimer = do_CreateInstance(NS_TIMER_CONTRACTID);
|
||||
}
|
||||
|
||||
|
@ -217,6 +202,18 @@ public:
|
|||
StopTimer();
|
||||
}
|
||||
|
||||
// will take effect at next timer tick
|
||||
virtual void SetRate(double aNewRate)
|
||||
{
|
||||
mRateMilliseconds = aNewRate;
|
||||
mRateDuration = TimeDuration::FromMilliseconds(mRateMilliseconds);
|
||||
}
|
||||
|
||||
double GetRate() const
|
||||
{
|
||||
return mRateMilliseconds;
|
||||
}
|
||||
|
||||
protected:
|
||||
|
||||
virtual void StartTimer()
|
||||
|
@ -236,6 +233,8 @@ protected:
|
|||
mTimer->Cancel();
|
||||
}
|
||||
|
||||
double mRateMilliseconds;
|
||||
TimeDuration mRateDuration;
|
||||
nsRefPtr<nsITimer> mTimer;
|
||||
};
|
||||
|
||||
|
@ -440,25 +439,23 @@ protected:
|
|||
* at some point, but we don't care too much about how often.
|
||||
*/
|
||||
class InactiveRefreshDriverTimer MOZ_FINAL :
|
||||
public RefreshDriverTimer
|
||||
public SimpleTimerBasedRefreshDriverTimer
|
||||
{
|
||||
public:
|
||||
explicit InactiveRefreshDriverTimer(double aRate)
|
||||
: RefreshDriverTimer(aRate),
|
||||
: SimpleTimerBasedRefreshDriverTimer(aRate),
|
||||
mNextTickDuration(aRate),
|
||||
mDisableAfterMilliseconds(-1.0),
|
||||
mNextDriverIndex(0)
|
||||
{
|
||||
mTimer = do_CreateInstance(NS_TIMER_CONTRACTID);
|
||||
}
|
||||
|
||||
InactiveRefreshDriverTimer(double aRate, double aDisableAfterMilliseconds)
|
||||
: RefreshDriverTimer(aRate),
|
||||
: SimpleTimerBasedRefreshDriverTimer(aRate),
|
||||
mNextTickDuration(aRate),
|
||||
mDisableAfterMilliseconds(aDisableAfterMilliseconds),
|
||||
mNextDriverIndex(0)
|
||||
{
|
||||
mTimer = do_CreateInstance(NS_TIMER_CONTRACTID);
|
||||
}
|
||||
|
||||
virtual void AddRefreshDriver(nsRefreshDriver* aDriver)
|
||||
|
@ -548,7 +545,6 @@ protected:
|
|||
timer->TickOne();
|
||||
}
|
||||
|
||||
nsRefPtr<nsITimer> mTimer;
|
||||
double mNextTickDuration;
|
||||
double mDisableAfterMilliseconds;
|
||||
uint32_t mNextDriverIndex;
|
||||
|
|
Загрузка…
Ссылка в новой задаче