Bug 622315: Refuse to navigate if a navigation is already pending. r=bz

This commit is contained in:
Kyle Huey 2011-06-07 13:10:47 -07:00
Родитель 3ba7b67ccf
Коммит 12b5e9e908
1 изменённых файлов: 12 добавлений и 0 удалений

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

@ -716,7 +716,13 @@ nsSHistory::GetCanGoBack(PRBool * aCanGoBack)
NS_ENSURE_ARG_POINTER(aCanGoBack);
*aCanGoBack = PR_FALSE;
// If there is already a pending navigation, we cannot go back.
PRInt32 index = -1;
NS_ENSURE_SUCCESS(GetRequestedIndex(&index), NS_ERROR_FAILURE);
if(index != -1)
return NS_OK;
NS_ENSURE_SUCCESS(GetIndex(&index), NS_ERROR_FAILURE);
if(index > 0)
*aCanGoBack = PR_TRUE;
@ -730,9 +736,15 @@ nsSHistory::GetCanGoForward(PRBool * aCanGoForward)
NS_ENSURE_ARG_POINTER(aCanGoForward);
*aCanGoForward = PR_FALSE;
// If there is already a pending navigation, we cannot go forward.
PRInt32 index = -1;
PRInt32 count = -1;
NS_ENSURE_SUCCESS(GetRequestedIndex(&index), NS_ERROR_FAILURE);
if(index != -1)
return NS_OK;
NS_ENSURE_SUCCESS(GetIndex(&index), NS_ERROR_FAILURE);
NS_ENSURE_SUCCESS(GetCount(&count), NS_ERROR_FAILURE);