Changeset 109697 in webkit
- Timestamp:
- Mar 4, 2012 7:23:58 PM (12 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r109696 r109697 1 2012-03-04 Jonathan Dong <jonathan.dong@torchmobile.com.cn> 2 3 [BlackBerry] Credential backing store implementation 4 https://bugs.webkit.org/show_bug.cgi?id=79650 5 6 Reviewed by Antonio Gomes. 7 8 Opened Credential database in CedentialBackingStore::instance(). 9 Added never_remember table and associated sql statment 10 members to store the never remember sites. 11 Removed CredentialStorage initialize codes because that 12 won't give users a chance to re-enter the new credential 13 information for an already stored site. 14 Changed login update and has statement to support 15 autofill feature of multiple credential forms in the 16 same page; Also added url as a parameter of hasLogin() function. 17 Added calling reset() after each statement calls step(), 18 to make it work correctly next time. 19 Also fixed a macro typo in HANDLE_SQL_EXEC_FAILURE. 20 21 No new tests. 22 23 * platform/network/blackberry/CredentialBackingStore.cpp: 24 (WebCore::CredentialBackingStore::instance): 25 (WebCore::CredentialBackingStore::CredentialBackingStore): 26 (WebCore::CredentialBackingStore::open): 27 (WebCore::CredentialBackingStore::close): 28 (WebCore::CredentialBackingStore::addLogin): 29 (WebCore::CredentialBackingStore::updateLogin): 30 (WebCore::CredentialBackingStore::hasLogin): 31 (WebCore::CredentialBackingStore::getLogin): 32 (WebCore): 33 (WebCore::CredentialBackingStore::removeLogin): 34 (WebCore::CredentialBackingStore::addNeverRemember): 35 (WebCore::CredentialBackingStore::hasNeverRemember): 36 (WebCore::CredentialBackingStore::getNeverRemember): 37 (WebCore::CredentialBackingStore::removeNeverRemember): 38 (WebCore::CredentialBackingStore::clearLogins): 39 (WebCore::CredentialBackingStore::clearNeverRemember): 40 * platform/network/blackberry/CredentialBackingStore.h: 41 (CredentialBackingStore): 42 1 43 2012-03-04 Hyowon Kim <hw1008.kim@samsung.com> 2 44 -
trunk/Source/WebCore/platform/network/blackberry/CredentialBackingStore.cpp
r106234 r109697 23 23 24 24 #include "CredentialStorage.h" 25 #include "FileSystem.h" 25 26 #include "KURL.h" 26 27 #include "NotImplemented.h" 27 28 #include "ProtectionSpaceHash.h" 28 29 #include "SQLiteStatement.h" 29 #include < wtf/UnusedParam.h>30 #include <BlackBerryPlatformClient.h> 30 31 31 32 #define HANDLE_SQL_EXEC_FAILURE(statement, returnValue, ...) \ 32 33 if (statement) { \ 33 LOG_ERROR(__VA R_ARGS__); \34 LOG_ERROR(__VA_ARGS__); \ 34 35 return returnValue; \ 35 36 } … … 40 41 { 41 42 static CredentialBackingStore* backingStore = 0; 42 if (!backingStore) 43 if (!backingStore) { 43 44 backingStore = new CredentialBackingStore; 45 backingStore->open(pathByAppendingComponent(BlackBerry::Platform::Client::get()->getApplicationDataDirectory().c_str(), "/credentials.db")); 46 } 44 47 return backingStore; 45 48 } 46 49 47 50 CredentialBackingStore::CredentialBackingStore() 48 : m_addStatement(0) 49 , m_updateStatement(0) 50 , m_hasStatement(0) 51 , m_getStatement(0) 52 , m_removeStatement(0) 51 : m_addLoginStatement(0) 52 , m_updateLoginStatement(0) 53 , m_hasLoginStatement(0) 54 , m_getLoginStatement(0) 55 , m_getLoginByURLStatement(0) 56 , m_removeLoginStatement(0) 57 , m_addNeverRememberStatement(0) 58 , m_hasNeverRememberStatement(0) 59 , m_getNeverRememberStatement(0) 60 , m_removeNeverRememberStatement(0) 53 61 { 54 62 } … … 72 80 73 81 // Create index for table logins. 74 HANDLE_SQL_EXEC_FAILURE(!m_database.executeCommand("CREATE INDEX logins_ signonON logins (host)"),82 HANDLE_SQL_EXEC_FAILURE(!m_database.executeCommand("CREATE INDEX logins_index ON logins (host)"), 75 83 false, "Failed to create index for table logins"); 76 } else { // Initiate CredentialStorage.77 SQLiteStatement query(m_database, "SELECT origin_url, host, port, service_type, realm, auth_scheme, username, password FROM logins");78 HANDLE_SQL_EXEC_FAILURE(query.prepare() != SQLResultOk,79 false, "Failed to prepare query statement to initiate CredentialStorage");80 81 int result = query.step();82 while (result == SQLResultRow) {83 String strUrl = query.getColumnText(1);84 String strHost = query.getColumnText(2);85 int intPort = query.getColumnInt(3);86 ProtectionSpaceServerType serviceType = static_cast<ProtectionSpaceServerType>(query.getColumnInt(4));87 String strRealm = query.getColumnText(5);88 ProtectionSpaceAuthenticationScheme authScheme = static_cast<ProtectionSpaceAuthenticationScheme>(query.getColumnInt(6));89 String strUserName = query.getColumnText(7);90 String strPassword = decryptedString(query.getColumnText(8));91 92 KURL url(ParsedURLString, strUrl);93 ProtectionSpace protectionSpace(strHost, intPort, serviceType, strRealm, authScheme);94 Credential credential(strUserName, strPassword, CredentialPersistencePermanent);95 CredentialStorage::set(credential, protectionSpace, url);96 97 result = query.step();98 }99 84 } 100 85 86 if (!m_database.tableExists("never_remember")) { 87 HANDLE_SQL_EXEC_FAILURE(!m_database.executeCommand("CREATE TABLE never_remember (origin_url VARCHAR NOT NULL, host VARCHAR NOT NULL, port INTEGER, service_type INTEGER NOT NULL, realm VARCHAR, auth_scheme INTEGER NOT NULL) "), 88 false, "Failed to create table never_remember for login database"); 89 90 // Create index for table never_remember. 91 HANDLE_SQL_EXEC_FAILURE(!m_database.executeCommand("CREATE INDEX never_remember_index ON never_remember (host)"), 92 false, "Failed to create index for table never_remember"); 93 } 94 101 95 // Prepare the statements. 102 m_add Statement = new SQLiteStatement(m_database, "INSERT OR REPLACE INTO logins (origin_url, host, port, service_type, realm, auth_scheme, username, password) VALUES (?, ?, ?, ?, ?, ?, ?, ?)");103 HANDLE_SQL_EXEC_FAILURE(m_add Statement->prepare() != SQLResultOk,96 m_addLoginStatement = new SQLiteStatement(m_database, "INSERT OR REPLACE INTO logins (origin_url, host, port, service_type, realm, auth_scheme, username, password) VALUES (?, ?, ?, ?, ?, ?, ?, ?)"); 97 HANDLE_SQL_EXEC_FAILURE(m_addLoginStatement->prepare() != SQLResultOk, 104 98 false, "Failed to prepare addLogin statement"); 105 99 106 m_update Statement = new SQLiteStatement(m_database, "UPDATE logins SET username = ?, password = ? WHERE origin_url = ? AND host = ? AND port = ? AND service_type = ? AND realm = ? AND auth_scheme = ?");107 HANDLE_SQL_EXEC_FAILURE(m_update Statement->prepare() != SQLResultOk,100 m_updateLoginStatement = new SQLiteStatement(m_database, "UPDATE logins SET username = ?, password = ? WHERE origin_url = ? AND host = ? AND port = ? AND service_type = ? AND realm = ? AND auth_scheme = ?"); 101 HANDLE_SQL_EXEC_FAILURE(m_updateLoginStatement->prepare() != SQLResultOk, 108 102 false, "Failed to prepare updateLogin statement"); 109 103 110 m_has Statement = new SQLiteStatement(m_database, "SELECT COUNT(*) FROM logins WHEREhost = ? AND port = ? AND service_type = ? AND realm = ? AND auth_scheme = ?");111 HANDLE_SQL_EXEC_FAILURE(m_has Statement->prepare() != SQLResultOk,104 m_hasLoginStatement = new SQLiteStatement(m_database, "SELECT COUNT(*) FROM logins WHERE origin_url = ? AND host = ? AND port = ? AND service_type = ? AND realm = ? AND auth_scheme = ?"); 105 HANDLE_SQL_EXEC_FAILURE(m_hasLoginStatement->prepare() != SQLResultOk, 112 106 false, "Failed to prepare hasLogin statement"); 113 107 114 m_get Statement = new SQLiteStatement(m_database, "SELECT username, password FROM logins WHERE host = ? AND port = ? AND service_type = ? AND realm = ? AND auth_scheme = ?");115 HANDLE_SQL_EXEC_FAILURE(m_get Statement->prepare() != SQLResultOk,108 m_getLoginStatement = new SQLiteStatement(m_database, "SELECT username, password FROM logins WHERE host = ? AND port = ? AND service_type = ? AND realm = ? AND auth_scheme = ?"); 109 HANDLE_SQL_EXEC_FAILURE(m_getLoginStatement->prepare() != SQLResultOk, 116 110 false, "Failed to prepare getLogin statement"); 117 111 118 m_removeStatement = new SQLiteStatement(m_database, "DELETE FROM logins WHERE host = ? AND port = ? AND service_type = ? AND realm = ? AND auth_scheme = ?"); 119 HANDLE_SQL_EXEC_FAILURE(m_removeStatement->prepare() != SQLResultOk, 112 m_getLoginByURLStatement = new SQLiteStatement(m_database, "SELECT username, password FROM logins WHERE origin_url = ?"); 113 HANDLE_SQL_EXEC_FAILURE(m_getLoginByURLStatement->prepare() != SQLResultOk, 114 false, "Failed to prepare getLoginByURL statement"); 115 116 m_removeLoginStatement = new SQLiteStatement(m_database, "DELETE FROM logins WHERE origin_url = ? AND host = ? AND port = ? AND service_type = ? AND realm = ? AND auth_scheme = ?"); 117 HANDLE_SQL_EXEC_FAILURE(m_removeLoginStatement->prepare() != SQLResultOk, 120 118 false, "Failed to prepare removeLogin statement"); 121 119 120 m_addNeverRememberStatement = new SQLiteStatement(m_database, "INSERT OR REPLACE INTO never_remember (origin_url, host, port, service_type, realm, auth_scheme) VALUES (?, ?, ?, ?, ?, ?)"); 121 HANDLE_SQL_EXEC_FAILURE(m_addNeverRememberStatement->prepare() != SQLResultOk, 122 false, "Failed to prepare addNeverRemember statement"); 123 124 m_hasNeverRememberStatement = new SQLiteStatement(m_database, "SELECT COUNT(*) FROM never_remember WHERE host = ? AND port = ? AND service_type = ? AND realm = ? AND auth_scheme = ?"); 125 HANDLE_SQL_EXEC_FAILURE(m_hasNeverRememberStatement->prepare() != SQLResultOk, 126 false, "Failed to prepare hasNeverRemember statement"); 127 128 m_getNeverRememberStatement = new SQLiteStatement(m_database, "SELECT origin_url FROM never_remember WHERE host = ? AND port = ? AND service_type = ? AND realm = ? AND auth_scheme = ?"); 129 HANDLE_SQL_EXEC_FAILURE(m_getNeverRememberStatement->prepare() != SQLResultOk, 130 false, "Failed to prepare getNeverRemember statement"); 131 132 m_removeNeverRememberStatement = new SQLiteStatement(m_database, "DELETE FROM never_remember WHERE host = ? AND port = ? AND service_type = ? AND realm = ? AND auth_scheme = ?"); 133 HANDLE_SQL_EXEC_FAILURE(m_removeNeverRememberStatement->prepare() != SQLResultOk, 134 false, "Failed to prepare removeNeverRemember statement"); 135 122 136 return true; 123 137 } … … 125 139 void CredentialBackingStore::close() 126 140 { 127 delete m_addStatement; 128 m_addStatement = 0; 129 delete m_updateStatement; 130 m_updateStatement = 0; 131 delete m_hasStatement; 132 m_hasStatement = 0; 133 delete m_getStatement; 134 m_getStatement = 0; 135 delete m_removeStatement; 136 m_removeStatement = 0; 141 delete m_addLoginStatement; 142 m_addLoginStatement = 0; 143 delete m_updateLoginStatement; 144 m_updateLoginStatement = 0; 145 delete m_hasLoginStatement; 146 m_hasLoginStatement = 0; 147 delete m_getLoginStatement; 148 m_getLoginStatement = 0; 149 delete m_getLoginByURLStatement; 150 m_getLoginByURLStatement = 0; 151 delete m_removeLoginStatement; 152 m_removeLoginStatement = 0; 153 delete m_addNeverRememberStatement; 154 m_addNeverRememberStatement = 0; 155 delete m_hasNeverRememberStatement; 156 m_hasNeverRememberStatement = 0; 157 delete m_getNeverRememberStatement; 158 m_getNeverRememberStatement = 0; 159 delete m_removeNeverRememberStatement; 160 m_removeNeverRememberStatement = 0; 137 161 138 162 if (m_database.isOpen()) … … 145 169 ASSERT(m_database.tableExists("logins")); 146 170 147 if (!m_addStatement) 148 return false; 149 150 m_addStatement->bindText(1, url.string()); 151 m_addStatement->bindText(2, protectionSpace.host()); 152 m_addStatement->bindInt(3, protectionSpace.port()); 153 m_addStatement->bindInt(4, static_cast<int>(protectionSpace.serverType())); 154 m_addStatement->bindText(5, protectionSpace.realm()); 155 m_addStatement->bindInt(6, static_cast<int>(protectionSpace.authenticationScheme())); 156 m_addStatement->bindText(7, credential.user()); 157 m_addStatement->bindBlob(8, encryptedString(credential.password())); 158 159 int result = m_addStatement->step(); 171 if (!m_addLoginStatement) 172 return false; 173 174 m_addLoginStatement->bindText(1, url.string()); 175 m_addLoginStatement->bindText(2, protectionSpace.host()); 176 m_addLoginStatement->bindInt(3, protectionSpace.port()); 177 m_addLoginStatement->bindInt(4, static_cast<int>(protectionSpace.serverType())); 178 m_addLoginStatement->bindText(5, protectionSpace.realm()); 179 m_addLoginStatement->bindInt(6, static_cast<int>(protectionSpace.authenticationScheme())); 180 m_addLoginStatement->bindText(7, credential.user()); 181 m_addLoginStatement->bindBlob(8, encryptedString(credential.password())); 182 183 int result = m_addLoginStatement->step(); 184 m_addLoginStatement->reset(); 160 185 HANDLE_SQL_EXEC_FAILURE(result != SQLResultDone, false, 161 186 "Failed to add login info into table logins - %i", result); … … 169 194 ASSERT(m_database.tableExists("logins")); 170 195 171 if (!m_updateStatement) 172 return false; 173 174 m_updateStatement->bindText(1, url.string()); 175 m_updateStatement->bindText(2, credential.user()); 176 m_updateStatement->bindBlob(3, encryptedString(credential.password())); 177 m_updateStatement->bindText(4, protectionSpace.host()); 178 m_updateStatement->bindInt(5, protectionSpace.port()); 179 m_updateStatement->bindInt(6, static_cast<int>(protectionSpace.serverType())); 180 m_updateStatement->bindText(7, protectionSpace.realm()); 181 m_updateStatement->bindInt(8, static_cast<int>(protectionSpace.authenticationScheme())); 182 183 int result = m_updateStatement->step(); 196 if (!m_updateLoginStatement) 197 return false; 198 199 m_updateLoginStatement->bindText(1, credential.user()); 200 m_updateLoginStatement->bindBlob(2, encryptedString(credential.password())); 201 m_updateLoginStatement->bindText(3, url.string()); 202 m_updateLoginStatement->bindText(4, protectionSpace.host()); 203 m_updateLoginStatement->bindInt(5, protectionSpace.port()); 204 m_updateLoginStatement->bindInt(6, static_cast<int>(protectionSpace.serverType())); 205 m_updateLoginStatement->bindText(7, protectionSpace.realm()); 206 m_updateLoginStatement->bindInt(8, static_cast<int>(protectionSpace.authenticationScheme())); 207 208 int result = m_updateLoginStatement->step(); 209 m_updateLoginStatement->reset(); 184 210 HANDLE_SQL_EXEC_FAILURE(result != SQLResultDone, false, 185 211 "Failed to update login info in table logins - %i", result); … … 188 214 } 189 215 190 bool CredentialBackingStore::hasLogin(const ProtectionSpace& protectionSpace) 191 { 192 ASSERT(m_database.isOpen()); 193 ASSERT(m_database.tableExists("logins")); 194 195 if (!m_hasStatement) 196 return false; 197 198 m_hasStatement->bindText(1, protectionSpace.host()); 199 m_hasStatement->bindInt(2, protectionSpace.port()); 200 m_hasStatement->bindInt(3, static_cast<int>(protectionSpace.serverType())); 201 m_hasStatement->bindText(4, protectionSpace.realm()); 202 m_hasStatement->bindInt(5, static_cast<int>(protectionSpace.authenticationScheme())); 203 204 int result = m_hasStatement->step(); 216 bool CredentialBackingStore::hasLogin(const KURL& url, const ProtectionSpace& protectionSpace) 217 { 218 ASSERT(m_database.isOpen()); 219 ASSERT(m_database.tableExists("logins")); 220 221 if (!m_hasLoginStatement) 222 return false; 223 224 m_hasLoginStatement->bindText(1, url.string()); 225 m_hasLoginStatement->bindText(2, protectionSpace.host()); 226 m_hasLoginStatement->bindInt(3, protectionSpace.port()); 227 m_hasLoginStatement->bindInt(4, static_cast<int>(protectionSpace.serverType())); 228 m_hasLoginStatement->bindText(5, protectionSpace.realm()); 229 m_hasLoginStatement->bindInt(6, static_cast<int>(protectionSpace.authenticationScheme())); 230 231 int result = m_hasLoginStatement->step(); 232 int numOfRow = m_hasLoginStatement->getColumnInt(0); 233 m_hasLoginStatement->reset(); 205 234 HANDLE_SQL_EXEC_FAILURE(result != SQLResultRow, false, 206 235 "Failed to execute select login info from table logins in hasLogin - %i", result); 207 236 208 if ( m_hasStatement->getColumnInt(0))237 if (numOfRow) 209 238 return true; 210 239 return false; … … 216 245 ASSERT(m_database.tableExists("logins")); 217 246 218 if (!m_get Statement)247 if (!m_getLoginStatement) 219 248 return Credential(); 220 249 221 m_getStatement->bindText(1, protectionSpace.host()); 222 m_getStatement->bindInt(2, protectionSpace.port()); 223 m_getStatement->bindInt(3, static_cast<int>(protectionSpace.serverType())); 224 m_getStatement->bindText(4, protectionSpace.realm()); 225 m_getStatement->bindInt(5, static_cast<int>(protectionSpace.authenticationScheme())); 226 227 int result = m_getStatement->step(); 250 m_getLoginStatement->bindText(1, protectionSpace.host()); 251 m_getLoginStatement->bindInt(2, protectionSpace.port()); 252 m_getLoginStatement->bindInt(3, static_cast<int>(protectionSpace.serverType())); 253 m_getLoginStatement->bindText(4, protectionSpace.realm()); 254 m_getLoginStatement->bindInt(5, static_cast<int>(protectionSpace.authenticationScheme())); 255 256 int result = m_getLoginStatement->step(); 257 String username = m_getLoginStatement->getColumnText(0); 258 String password = m_getLoginStatement->getColumnBlobAsString(1); 259 m_getLoginStatement->reset(); 228 260 HANDLE_SQL_EXEC_FAILURE(result != SQLResultRow, Credential(), 229 261 "Failed to execute select login info from table logins in getLogin - %i", result); 230 262 231 return Credential(m_getStatement->getColumnText(0), decryptedString(m_getStatement->getColumnText(1)), CredentialPersistencePermanent); 232 } 233 234 bool CredentialBackingStore::removeLogin(const ProtectionSpace& protectionSpace) 235 { 236 ASSERT(m_database.isOpen()); 237 ASSERT(m_database.tableExists("logins")); 238 239 if (!m_removeStatement) 240 return false; 241 242 m_removeStatement->bindText(1, protectionSpace.host()); 243 m_removeStatement->bindInt(2, protectionSpace.port()); 244 m_removeStatement->bindInt(3, static_cast<int>(protectionSpace.serverType())); 245 m_removeStatement->bindText(4, protectionSpace.realm()); 246 m_removeStatement->bindInt(5, static_cast<int>(protectionSpace.authenticationScheme())); 247 248 int result = m_removeStatement->step(); 263 return Credential(username, decryptedString(password), CredentialPersistencePermanent); 264 } 265 266 Credential CredentialBackingStore::getLogin(const KURL& url) 267 { 268 ASSERT(m_database.isOpen()); 269 ASSERT(m_database.tableExists("logins")); 270 271 if (!m_getLoginByURLStatement) 272 return Credential(); 273 274 m_getLoginByURLStatement->bindText(1, url.string()); 275 276 int result = m_getLoginByURLStatement->step(); 277 String username = m_getLoginByURLStatement->getColumnText(0); 278 String password = m_getLoginByURLStatement->getColumnBlobAsString(1); 279 m_getLoginByURLStatement->reset(); 280 HANDLE_SQL_EXEC_FAILURE(result != SQLResultRow, Credential(), 281 "Failed to execute select login info from table logins in getLogin - %i", result); 282 283 return Credential(username, decryptedString(password), CredentialPersistencePermanent); 284 } 285 286 bool CredentialBackingStore::removeLogin(const KURL& url, const ProtectionSpace& protectionSpace) 287 { 288 ASSERT(m_database.isOpen()); 289 ASSERT(m_database.tableExists("logins")); 290 291 if (!m_removeLoginStatement) 292 return false; 293 294 m_removeLoginStatement->bindText(1, url.string()); 295 m_removeLoginStatement->bindText(2, protectionSpace.host()); 296 m_removeLoginStatement->bindInt(3, protectionSpace.port()); 297 m_removeLoginStatement->bindInt(4, static_cast<int>(protectionSpace.serverType())); 298 m_removeLoginStatement->bindText(5, protectionSpace.realm()); 299 m_removeLoginStatement->bindInt(6, static_cast<int>(protectionSpace.authenticationScheme())); 300 301 int result = m_removeLoginStatement->step(); 302 m_removeLoginStatement->reset(); 249 303 HANDLE_SQL_EXEC_FAILURE(result != SQLResultDone, false, 250 304 "Failed to remove login info from table logins - %i", result); … … 253 307 } 254 308 255 bool CredentialBackingStore::clear() 309 bool CredentialBackingStore::addNeverRemember(const KURL& url, const ProtectionSpace& protectionSpace) 310 { 311 ASSERT(m_database.isOpen()); 312 ASSERT(m_database.tableExists("never_remember")); 313 314 if (!m_addNeverRememberStatement) 315 return false; 316 317 m_addNeverRememberStatement->bindText(1, url.string()); 318 m_addNeverRememberStatement->bindText(2, protectionSpace.host()); 319 m_addNeverRememberStatement->bindInt(3, protectionSpace.port()); 320 m_addNeverRememberStatement->bindInt(4, static_cast<int>(protectionSpace.serverType())); 321 m_addNeverRememberStatement->bindText(5, protectionSpace.realm()); 322 m_addNeverRememberStatement->bindInt(6, static_cast<int>(protectionSpace.authenticationScheme())); 323 324 int result = m_addNeverRememberStatement->step(); 325 m_addNeverRememberStatement->reset(); 326 HANDLE_SQL_EXEC_FAILURE(result != SQLResultDone, false, 327 "Failed to add naver saved item info into table never_remember - %i", result); 328 329 return true; 330 } 331 332 bool CredentialBackingStore::hasNeverRemember(const ProtectionSpace& protectionSpace) 333 { 334 ASSERT(m_database.isOpen()); 335 ASSERT(m_database.tableExists("never_remember")); 336 337 if (!m_hasNeverRememberStatement) 338 return false; 339 340 m_hasNeverRememberStatement->bindText(1, protectionSpace.host()); 341 m_hasNeverRememberStatement->bindInt(2, protectionSpace.port()); 342 m_hasNeverRememberStatement->bindInt(3, static_cast<int>(protectionSpace.serverType())); 343 m_hasNeverRememberStatement->bindText(4, protectionSpace.realm()); 344 m_hasNeverRememberStatement->bindInt(5, static_cast<int>(protectionSpace.authenticationScheme())); 345 346 int result = m_hasNeverRememberStatement->step(); 347 int numOfRow = m_hasNeverRememberStatement->getColumnInt(0); 348 m_hasNeverRememberStatement->reset(); 349 HANDLE_SQL_EXEC_FAILURE(result != SQLResultRow, false, 350 "Failed to execute select to find naver saved site from table never_remember - %i", result); 351 352 if (numOfRow) 353 return true; 354 return false; 355 } 356 357 KURL CredentialBackingStore::getNeverRemember(const ProtectionSpace& protectionSpace) 358 { 359 ASSERT(m_database.isOpen()); 360 ASSERT(m_database.tableExists("never_remember")); 361 362 if (!m_getNeverRememberStatement) 363 return KURL(); 364 365 m_getNeverRememberStatement->bindText(1, protectionSpace.host()); 366 m_getNeverRememberStatement->bindInt(2, protectionSpace.port()); 367 m_getNeverRememberStatement->bindInt(3, static_cast<int>(protectionSpace.serverType())); 368 m_getNeverRememberStatement->bindText(4, protectionSpace.realm()); 369 m_getNeverRememberStatement->bindInt(5, static_cast<int>(protectionSpace.authenticationScheme())); 370 371 int result = m_getNeverRememberStatement->step(); 372 String url = m_getNeverRememberStatement->getColumnText(0); 373 m_getNeverRememberStatement->reset(); 374 HANDLE_SQL_EXEC_FAILURE(result != SQLResultRow, KURL(), 375 "Failed to execute select never saved site info from table never_remember in getNeverRemember - %i", result); 376 377 return KURL(ParsedURLString, url); 378 } 379 380 bool CredentialBackingStore::removeNeverRemember(const ProtectionSpace& protectionSpace) 381 { 382 ASSERT(m_database.isOpen()); 383 ASSERT(m_database.tableExists("never_remember")); 384 385 if (!m_removeNeverRememberStatement) 386 return false; 387 388 m_removeNeverRememberStatement->bindText(1, protectionSpace.host()); 389 m_removeNeverRememberStatement->bindInt(2, protectionSpace.port()); 390 m_removeNeverRememberStatement->bindInt(3, static_cast<int>(protectionSpace.serverType())); 391 m_removeNeverRememberStatement->bindText(4, protectionSpace.realm()); 392 m_removeNeverRememberStatement->bindInt(5, static_cast<int>(protectionSpace.authenticationScheme())); 393 394 int result = m_removeNeverRememberStatement->step(); 395 m_removeNeverRememberStatement->reset(); 396 HANDLE_SQL_EXEC_FAILURE(result != SQLResultDone, false, 397 "Failed to remove never saved site from table never_remember - %i", result); 398 399 return true; 400 } 401 402 bool CredentialBackingStore::clearLogins() 256 403 { 257 404 ASSERT(m_database.isOpen()); … … 260 407 HANDLE_SQL_EXEC_FAILURE(!m_database.executeCommand("DELETE * FROM logins"), 261 408 false, "Failed to clear table logins"); 409 410 return true; 411 } 412 413 bool CredentialBackingStore::clearNeverRemember() 414 { 415 ASSERT(m_database.isOpen()); 416 ASSERT(m_database.tableExists("never_remember")); 417 418 HANDLE_SQL_EXEC_FAILURE(!m_database.executeCommand("DELETE * FROM never_remember"), 419 false, "Failed to clear table never_remember"); 262 420 263 421 return true; -
trunk/Source/WebCore/platform/network/blackberry/CredentialBackingStore.h
r101668 r109697 38 38 bool addLogin(const KURL&, const ProtectionSpace&, const Credential&); 39 39 bool updateLogin(const KURL&, const ProtectionSpace&, const Credential&); 40 bool hasLogin(const ProtectionSpace&);40 bool hasLogin(const KURL&, const ProtectionSpace&); 41 41 Credential getLogin(const ProtectionSpace&); 42 bool removeLogin(const ProtectionSpace&); 43 bool clear(); 42 Credential getLogin(const KURL&); 43 bool removeLogin(const KURL&, const ProtectionSpace&); 44 bool addNeverRemember(const KURL&, const ProtectionSpace&); 45 bool hasNeverRemember(const ProtectionSpace&); 46 KURL getNeverRemember(const ProtectionSpace&); 47 bool removeNeverRemember(const ProtectionSpace&); 48 bool clearLogins(); 49 bool clearNeverRemember(); 44 50 45 51 private: … … 49 55 50 56 SQLiteDatabase m_database; 51 SQLiteStatement* m_addStatement; 52 SQLiteStatement* m_updateStatement; 53 SQLiteStatement* m_hasStatement; 54 SQLiteStatement* m_getStatement; 55 SQLiteStatement* m_removeStatement; 57 SQLiteStatement* m_addLoginStatement; 58 SQLiteStatement* m_updateLoginStatement; 59 SQLiteStatement* m_hasLoginStatement; 60 SQLiteStatement* m_getLoginStatement; 61 SQLiteStatement* m_getLoginByURLStatement; 62 SQLiteStatement* m_removeLoginStatement; 63 SQLiteStatement* m_addNeverRememberStatement; 64 SQLiteStatement* m_hasNeverRememberStatement; 65 SQLiteStatement* m_getNeverRememberStatement; 66 SQLiteStatement* m_removeNeverRememberStatement; 56 67 }; 57 68
Note: See TracChangeset
for help on using the changeset viewer.