Fixing bug 770175 and bug 770171. Idle API moz assert fix. r=jst@mozilla.com

This commit is contained in:
Bonnie Surender 2012-07-02 16:18:57 -07:00
Родитель 07903f7e5c
Коммит 7fd6df0b47
1 изменённых файлов: 4 добавлений и 3 удалений

Просмотреть файл

@ -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;
}