зеркало из https://github.com/mozilla/gecko-dev.git
Fixing bug 770175 and bug 770171. Idle API moz assert fix. r=jst@mozilla.com
This commit is contained in:
Родитель
07903f7e5c
Коммит
7fd6df0b47
|
@ -8715,12 +8715,12 @@ nsGlobalWindow::RegisterIdleObserver(nsIIdleObserver* aIdleObserver)
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
MOZ_ASSERT(mIdleCallbackIndex >= 0);
|
||||
|
||||
if (!mCurrentlyIdle) {
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
MOZ_ASSERT(mIdleCallbackIndex >= 0);
|
||||
|
||||
if (static_cast<PRInt32>(insertAtIndex) < mIdleCallbackIndex) {
|
||||
NotifyIdleObserver(tmpIdleObserver.mIdleObserver,
|
||||
tmpIdleObserver.mTimeInS,
|
||||
|
@ -8784,7 +8784,6 @@ nsresult
|
|||
nsGlobalWindow::UnregisterIdleObserver(nsIIdleObserver* aIdleObserver)
|
||||
{
|
||||
MOZ_ASSERT(IsInnerWindow(), "Must be an inner window!");
|
||||
MOZ_ASSERT(mIdleTimer);
|
||||
|
||||
PRInt32 removeElementIndex;
|
||||
nsresult rv = FindIndexOfElementToRemove(aIdleObserver, &removeElementIndex);
|
||||
|
@ -8794,11 +8793,13 @@ nsGlobalWindow::UnregisterIdleObserver(nsIIdleObserver* aIdleObserver)
|
|||
}
|
||||
mIdleObservers.RemoveElementAt(removeElementIndex);
|
||||
|
||||
MOZ_ASSERT(mIdleTimer);
|
||||
if (mIdleObservers.IsEmpty() && mIdleService) {
|
||||
rv = mIdleService->RemoveIdleObserver(mObserver, MIN_IDLE_NOTIFICATION_TIME_S);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
mIdleService = nsnull;
|
||||
|
||||
mIdleTimer->Cancel();
|
||||
mIdleCallbackIndex = -1;
|
||||
return NS_OK;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче