| Index: chrome/browser/history/shortcuts_database.cc
|
| ===================================================================
|
| --- chrome/browser/history/shortcuts_database.cc (revision 257281)
|
| +++ chrome/browser/history/shortcuts_database.cc (working copy)
|
| @@ -5,19 +5,23 @@
|
| #include "chrome/browser/history/shortcuts_database.h"
|
|
|
| #include <string>
|
| -#include <vector>
|
|
|
| #include "base/guid.h"
|
| #include "base/logging.h"
|
| #include "base/strings/stringprintf.h"
|
| #include "base/time/time.h"
|
| +#include "chrome/common/autocomplete_match_type.h"
|
| +#include "content/public/common/page_transition_types.h"
|
| #include "sql/statement.h"
|
| #include "sql/transaction.h"
|
|
|
| +
|
| +// Helpers --------------------------------------------------------------------
|
| +
|
| namespace {
|
|
|
| void BindShortcutToStatement(
|
| - const history::ShortcutsBackend::Shortcut& shortcut,
|
| + const history::ShortcutsDatabase::Shortcut& shortcut,
|
| sql::Statement* s) {
|
| DCHECK(base::IsValidGUID(shortcut.id));
|
| s->BindString(0, shortcut.id);
|
| @@ -25,11 +29,9 @@
|
| s->BindString16(2, shortcut.match_core.fill_into_edit);
|
| s->BindString(3, shortcut.match_core.destination_url.spec());
|
| s->BindString16(4, shortcut.match_core.contents);
|
| - s->BindString(5, AutocompleteMatch::ClassificationsToString(
|
| - shortcut.match_core.contents_class));
|
| + s->BindString(5, shortcut.match_core.contents_class);
|
| s->BindString16(6, shortcut.match_core.description);
|
| - s->BindString(7, AutocompleteMatch::ClassificationsToString(
|
| - shortcut.match_core.description_class));
|
| + s->BindString(7, shortcut.match_core.description_class);
|
| s->BindInt(8, shortcut.match_core.transition);
|
| s->BindInt(9, shortcut.match_core.type);
|
| s->BindString16(10, shortcut.match_core.keyword);
|
| @@ -49,8 +51,63 @@
|
|
|
| } // namespace
|
|
|
| +
|
| namespace history {
|
|
|
| +// ShortcutsDatabase::Shortcut::MatchCore -------------------------------------
|
| +
|
| +ShortcutsDatabase::Shortcut::MatchCore::MatchCore(
|
| + const base::string16& fill_into_edit,
|
| + const GURL& destination_url,
|
| + const base::string16& contents,
|
| + const std::string& contents_class,
|
| + const base::string16& description,
|
| + const std::string& description_class,
|
| + int transition,
|
| + int type,
|
| + const base::string16& keyword)
|
| + : fill_into_edit(fill_into_edit),
|
| + destination_url(destination_url),
|
| + contents(contents),
|
| + contents_class(contents_class),
|
| + description(description),
|
| + description_class(description_class),
|
| + transition(transition),
|
| + type(type),
|
| + keyword(keyword) {
|
| +}
|
| +
|
| +ShortcutsDatabase::Shortcut::MatchCore::~MatchCore() {
|
| +}
|
| +
|
| +// ShortcutsDatabase::Shortcut ------------------------------------------------
|
| +
|
| +ShortcutsDatabase::Shortcut::Shortcut(
|
| + const std::string& id,
|
| + const base::string16& text,
|
| + const MatchCore& match_core,
|
| + const base::Time& last_access_time,
|
| + int number_of_hits)
|
| + : id(id),
|
| + text(text),
|
| + match_core(match_core),
|
| + last_access_time(last_access_time),
|
| + number_of_hits(number_of_hits) {
|
| +}
|
| +
|
| +ShortcutsDatabase::Shortcut::Shortcut()
|
| + : match_core(base::string16(), GURL(), base::string16(), std::string(),
|
| + base::string16(), std::string(), 0, 0, base::string16()),
|
| + last_access_time(base::Time::Now()),
|
| + number_of_hits(0) {
|
| +}
|
| +
|
| +ShortcutsDatabase::Shortcut::~Shortcut() {
|
| +}
|
| +
|
| +
|
| +// ShortcutsDatabase ----------------------------------------------------------
|
| +
|
| ShortcutsDatabase::ShortcutsDatabase(const base::FilePath& database_path)
|
| : database_path_(database_path) {
|
| }
|
| @@ -72,8 +129,7 @@
|
| return db_.Open(database_path_) && EnsureTable();
|
| }
|
|
|
| -bool ShortcutsDatabase::AddShortcut(
|
| - const ShortcutsBackend::Shortcut& shortcut) {
|
| +bool ShortcutsDatabase::AddShortcut(const Shortcut& shortcut) {
|
| sql::Statement s(db_.GetCachedStatement(
|
| SQL_FROM_HERE,
|
| "INSERT INTO omni_box_shortcuts (id, text, fill_into_edit, url, "
|
| @@ -84,8 +140,7 @@
|
| return s.Run();
|
| }
|
|
|
| -bool ShortcutsDatabase::UpdateShortcut(
|
| - const ShortcutsBackend::Shortcut& shortcut) {
|
| +bool ShortcutsDatabase::UpdateShortcut(const Shortcut& shortcut) {
|
| sql::Statement s(db_.GetCachedStatement(
|
| SQL_FROM_HERE,
|
| "UPDATE omni_box_shortcuts SET id=?, text=?, fill_into_edit=?, url=?, "
|
| @@ -97,11 +152,11 @@
|
| return s.Run();
|
| }
|
|
|
| -bool ShortcutsDatabase::DeleteShortcutsWithIds(
|
| - const std::vector<std::string>& shortcut_ids) {
|
| +bool ShortcutsDatabase::DeleteShortcutsWithIDs(
|
| + const ShortcutIDs& shortcut_ids) {
|
| bool success = true;
|
| db_.BeginTransaction();
|
| - for (std::vector<std::string>::const_iterator it(shortcut_ids.begin());
|
| + for (ShortcutIDs::const_iterator it(shortcut_ids.begin());
|
| it != shortcut_ids.end(); ++it) {
|
| success &= DeleteShortcut("id", *it, db_);
|
| }
|
| @@ -109,7 +164,7 @@
|
| return success;
|
| }
|
|
|
| -bool ShortcutsDatabase::DeleteShortcutsWithUrl(
|
| +bool ShortcutsDatabase::DeleteShortcutsWithURL(
|
| const std::string& shortcut_url_spec) {
|
| return DeleteShortcut("url", shortcut_url_spec, db_);
|
| }
|
| @@ -134,22 +189,18 @@
|
| while (s.Step()) {
|
| shortcuts->insert(std::make_pair(
|
| s.ColumnString(0),
|
| - ShortcutsBackend::Shortcut(
|
| + Shortcut(
|
| s.ColumnString(0), // id
|
| s.ColumnString16(1), // text
|
| - ShortcutsBackend::Shortcut::MatchCore(
|
| + Shortcut::MatchCore(
|
| s.ColumnString16(2), // fill_into_edit
|
| GURL(s.ColumnString(3)), // destination_url
|
| s.ColumnString16(4), // contents
|
| - AutocompleteMatch::ClassificationsFromString(s.ColumnString(5)),
|
| - // contents_class
|
| + s.ColumnString(5), // contents_class
|
| s.ColumnString16(6), // description
|
| - AutocompleteMatch::ClassificationsFromString(s.ColumnString(7)),
|
| - // description_class
|
| - static_cast<content::PageTransition>(s.ColumnInt(8)),
|
| - // transition
|
| - static_cast<AutocompleteMatch::Type>(s.ColumnInt(9)),
|
| - // type
|
| + s.ColumnString(7), // description_class
|
| + s.ColumnInt(8), // transition
|
| + s.ColumnInt(9), // type
|
| s.ColumnString16(10)), // keyword
|
| base::Time::FromInternalValue(s.ColumnInt64(11)),
|
| // last_access_time
|
|
|