Re-applying blake's checkin for bug 112071 - timebomb not working. r=hewitt, sr=ben.

This commit is contained in:
bryner%netscape.com 2002-02-11 05:29:32 +00:00
parent 9e75be1a32
commit e85c057950

View File

@ -111,13 +111,15 @@
#define ENABLE_PAGE_CYCLER
#endif
#include "nsTimeBomb.h"
/* Define Class IDs */
static NS_DEFINE_CID(kPrefServiceCID, NS_PREF_CID);
static NS_DEFINE_IID(kProxyObjectManagerCID, NS_PROXYEVENT_MANAGER_CID);
static NS_DEFINE_IID(kAppShellServiceCID, NS_APPSHELL_SERVICE_CID);
static NS_DEFINE_IID(kCmdLineServiceCID, NS_COMMANDLINE_SERVICE_CID);
static NS_DEFINE_IID(kCGlobalHistoryCID, NS_GLOBALHISTORY_CID);
static NS_DEFINE_CID(kTimeBombCID, NS_TIMEBOMB_CID);
#ifdef DEBUG
static int APP_DEBUG = 0; // Set to 1 in debugger to turn on debugging.
@ -732,8 +734,32 @@ NS_IMETHODIMP nsBrowserContentHandler::GetDefaultArgs(PRUnichar **aDefaultArgs)
return NS_ERROR_NULL_POINTER;
nsresult rv;
static PRBool timebombChecked = PR_FALSE;
nsAutoString args;
if (!timebombChecked) {
// timebomb check
timebombChecked = PR_TRUE;
PRBool expired;
nsCOMPtr<nsITimeBomb> timeBomb(do_GetService(kTimeBombCID, &rv));
if (NS_FAILED(rv)) return rv;
rv = timeBomb->Init();
if (NS_FAILED(rv)) return rv;
rv = timeBomb->CheckWithUI(&expired);
if (NS_FAILED(rv)) return rv;
if (expired) {
nsXPIDLCString urlString;
rv = timeBomb->GetTimebombURL(getter_Copies(urlString));
if (NS_FAILED(rv)) return rv;
args.AssignWithConversion(urlString);
}
}
if (args.IsEmpty()) {
nsCOMPtr<nsIPref> prefs(do_GetService(kPrefServiceCID));
if (!prefs) return NS_ERROR_FAILURE;