Index: webkit/database/databases_table.cc |
=================================================================== |
--- webkit/database/databases_table.cc (revision 35502) |
+++ webkit/database/databases_table.cc (working copy) |
@@ -112,12 +112,24 @@ |
return false; |
} |
+bool DatabasesTable::GetAllOrigins(std::vector<string16>* origins) { |
+ sql::Statement statement(db_->GetCachedStatement( |
+ SQL_FROM_HERE, "SELECT DISTINCT origin FROM Databases ORDER BY origin")); |
+ if (statement.is_valid()) { |
+ while (statement.Step()) |
+ origins->push_back(UTF8ToUTF16(statement.ColumnString(0))); |
+ return statement.Succeeded(); |
+ } |
+ |
+ return false; |
+} |
+ |
bool DatabasesTable::GetAllDatabaseDetailsForOrigin( |
const string16& origin_identifier, |
std::vector<DatabaseDetails>* details_vector) { |
sql::Statement statement(db_->GetCachedStatement( |
SQL_FROM_HERE, "SELECT name, description, estimated_size " |
- "FROM Databases WHERE origin = ? ORDER BY origin, name")); |
+ "FROM Databases WHERE origin = ? ORDER BY name")); |
if (statement.is_valid() && |
statement.BindString(0, UTF16ToUTF8(origin_identifier))) { |
while (statement.Step()) { |
@@ -134,4 +146,15 @@ |
return false; |
} |
+bool DatabasesTable::DeleteOrigin(const string16& origin_identifier) { |
+ sql::Statement delete_statement(db_->GetCachedStatement( |
+ SQL_FROM_HERE, "DELETE FROM Databases WHERE origin = ?")); |
+ if (delete_statement.is_valid() && |
+ delete_statement.BindString(0, UTF16ToUTF8(origin_identifier))) { |
+ return (delete_statement.Run() && db_->GetLastChangeCount()); |
+ } |
+ |
+ return false; |
+} |
+ |
} // namespace webkit_database |