diff --git a/mozilla/embedding/components/printingui/src/mac/nsPrintingPromptService.cpp b/mozilla/embedding/components/printingui/src/mac/nsPrintingPromptService.cpp index 51154552ce6..38df51ea2a6 100644 --- a/mozilla/embedding/components/printingui/src/mac/nsPrintingPromptService.cpp +++ b/mozilla/embedding/components/printingui/src/mac/nsPrintingPromptService.cpp @@ -509,11 +509,15 @@ nsPrintingPromptService::ShowPrinterProperties(nsIDOMWindow *parent, const PRUni NS_IMETHODIMP nsPrintingPromptService::OnStateChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, PRUint32 aStateFlags, nsresult aStatus) { - if (aStateFlags & STATE_STOP) + if ((aStateFlags & STATE_STOP) && mWebProgressListener) { mWebProgressListener->OnStateChange(aWebProgress, aRequest, aStateFlags, aStatus); - mPrintProgress->CloseProgressDialog(PR_TRUE); - mPrintProgress = nsnull; + if (mPrintProgress) + { + mPrintProgress->CloseProgressDialog(PR_TRUE); + } + mPrintProgress = nsnull; + mWebProgressListener = nsnull; } return NS_OK; } diff --git a/mozilla/embedding/components/printingui/src/mac/nsPrintingPromptServiceX.cpp b/mozilla/embedding/components/printingui/src/mac/nsPrintingPromptServiceX.cpp index ffebc4bee7e..f0d3dbaa0bc 100644 --- a/mozilla/embedding/components/printingui/src/mac/nsPrintingPromptServiceX.cpp +++ b/mozilla/embedding/components/printingui/src/mac/nsPrintingPromptServiceX.cpp @@ -370,11 +370,15 @@ nsPrintingPromptService::ShowPrinterProperties(nsIDOMWindow *parent, const PRUni NS_IMETHODIMP nsPrintingPromptService::OnStateChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, PRUint32 aStateFlags, nsresult aStatus) { - if (aStateFlags & STATE_STOP) + if ((aStateFlags & STATE_STOP) && mWebProgressListener) { mWebProgressListener->OnStateChange(aWebProgress, aRequest, aStateFlags, aStatus); - mPrintProgress->CloseProgressDialog(PR_TRUE); - mPrintProgress = nsnull; + if (mPrintProgress) + { + mPrintProgress->CloseProgressDialog(PR_TRUE); + } + mPrintProgress = nsnull; + mWebProgressListener = nsnull; } return NS_OK; } diff --git a/mozilla/embedding/components/printingui/src/os2/nsPrintingPromptService.cpp b/mozilla/embedding/components/printingui/src/os2/nsPrintingPromptService.cpp index 10398e083f4..b0cc61239d8 100644 --- a/mozilla/embedding/components/printingui/src/os2/nsPrintingPromptService.cpp +++ b/mozilla/embedding/components/printingui/src/os2/nsPrintingPromptService.cpp @@ -285,10 +285,13 @@ nsPrintingPromptService::DoDialog(nsIDOMWindow *aParent, NS_IMETHODIMP nsPrintingPromptService::OnStateChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, PRUint32 aStateFlags, nsresult aStatus) { - if (aStateFlags & STATE_STOP) { + if ((aStateFlags & STATE_STOP) && mWebProgressListener) { mWebProgressListener->OnStateChange(aWebProgress, aRequest, aStateFlags, aStatus); - mPrintProgress->CloseProgressDialog(PR_TRUE); - mPrintProgress = nsnull; + if (mPrintProgress) { + mPrintProgress->CloseProgressDialog(PR_TRUE); + } + mPrintProgress = nsnull; + mWebProgressListener = nsnull; } return NS_OK; } diff --git a/mozilla/embedding/components/printingui/src/unixshared/nsPrintingPromptService.cpp b/mozilla/embedding/components/printingui/src/unixshared/nsPrintingPromptService.cpp index 60171181e34..99405969970 100644 --- a/mozilla/embedding/components/printingui/src/unixshared/nsPrintingPromptService.cpp +++ b/mozilla/embedding/components/printingui/src/unixshared/nsPrintingPromptService.cpp @@ -291,10 +291,13 @@ nsPrintingPromptService::DoDialog(nsIDOMWindow *aParent, NS_IMETHODIMP nsPrintingPromptService::OnStateChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, PRUint32 aStateFlags, nsresult aStatus) { - if (aStateFlags & STATE_STOP) { + if ((aStateFlags & STATE_STOP) && mWebProgressListener) { mWebProgressListener->OnStateChange(aWebProgress, aRequest, aStateFlags, aStatus); - mPrintProgress->CloseProgressDialog(PR_TRUE); - mPrintProgress = nsnull; + if (mPrintProgress) { + mPrintProgress->CloseProgressDialog(PR_TRUE); + } + mPrintProgress = nsnull; + mWebProgressListener = nsnull; } return NS_OK; }