From 9db38d55d251c0cc7a0908ccca838292c819b47d Mon Sep 17 00:00:00 2001 From: "dwitte%stanford.edu" Date: Thu, 28 Feb 2008 08:23:13 +0000 Subject: [PATCH] Bug 416207 - Update cookie/permission services from changes to mozIStorageService::OpenDatabase. r=sdwilsh, sr=mconnor, a=beltzner git-svn-id: svn://10.0.0.236/trunk@246710 18797224-902f-48f8-a5cc-f745e15eee43 --- .../extensions/cookie/nsPermissionManager.cpp | 12 +++++++++-- .../netwerk/cookie/src/nsCookieService.cpp | 20 ++++++++++++++----- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/mozilla/extensions/cookie/nsPermissionManager.cpp b/mozilla/extensions/cookie/nsPermissionManager.cpp index cf090d092eb..7e3830d6379 100644 --- a/mozilla/extensions/cookie/nsPermissionManager.cpp +++ b/mozilla/extensions/cookie/nsPermissionManager.cpp @@ -151,14 +151,22 @@ nsPermissionManager::InitDB() // cache a connection to the hosts database rv = storage->OpenDatabase(permissionsFile, getter_AddRefs(mDBConn)); - if (rv == NS_ERROR_FILE_CORRUPTED) { + NS_ENSURE_SUCCESS(rv, rv); + + PRBool ready; + mDBConn->GetConnectionReady(&ready); + if (!ready) { // delete and try again rv = permissionsFile->Remove(PR_FALSE); NS_ENSURE_SUCCESS(rv, rv); rv = storage->OpenDatabase(permissionsFile, getter_AddRefs(mDBConn)); + NS_ENSURE_SUCCESS(rv, rv); + + mDBConn->GetConnectionReady(&ready); + if (!ready) + return NS_ERROR_UNEXPECTED; } - NS_ENSURE_SUCCESS(rv, rv); PRBool tableExists = PR_FALSE; mDBConn->TableExists(NS_LITERAL_CSTRING("moz_hosts"), &tableExists); diff --git a/mozilla/netwerk/cookie/src/nsCookieService.cpp b/mozilla/netwerk/cookie/src/nsCookieService.cpp index ced5ed3d043..73b77937aa5 100644 --- a/mozilla/netwerk/cookie/src/nsCookieService.cpp +++ b/mozilla/netwerk/cookie/src/nsCookieService.cpp @@ -467,13 +467,23 @@ nsCookieService::InitDB() // cache a connection to the cookie database rv = storage->OpenDatabase(cookieFile, getter_AddRefs(mDBConn)); - if (rv == NS_ERROR_FILE_CORRUPTED) { - // delete and try again - cookieFile->Remove(PR_FALSE); - rv = storage->OpenDatabase(cookieFile, getter_AddRefs(mDBConn)); - } NS_ENSURE_SUCCESS(rv, rv); + PRBool ready; + mDBConn->GetConnectionReady(&ready); + if (!ready) { + // delete and try again + rv = cookieFile->Remove(PR_FALSE); + NS_ENSURE_SUCCESS(rv, rv); + + rv = storage->OpenDatabase(cookieFile, getter_AddRefs(mDBConn)); + NS_ENSURE_SUCCESS(rv, rv); + + mDBConn->GetConnectionReady(&ready); + if (!ready) + return NS_ERROR_UNEXPECTED; + } + PRBool tableExists = PR_FALSE; mDBConn->TableExists(NS_LITERAL_CSTRING("moz_cookies"), &tableExists); if (!tableExists) {