Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1603)

Unified Diff: chrome/browser/history/shortcuts_database.cc

Issue 830503003: Move shortcuts_database.{cc,h} to //chrome/browser/autocomplete (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@history-file-moves
Patch Set: Rebase Created 5 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/history/shortcuts_database.h ('k') | chrome/browser/history/shortcuts_database_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/history/shortcuts_database.cc
diff --git a/chrome/browser/history/shortcuts_database.cc b/chrome/browser/history/shortcuts_database.cc
deleted file mode 100644
index ec4c0973afafb8c33bc4872331525818132a6dd6..0000000000000000000000000000000000000000
--- a/chrome/browser/history/shortcuts_database.cc
+++ /dev/null
@@ -1,281 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/history/shortcuts_database.h"
-
-#include <string>
-
-#include "base/guid.h"
-#include "base/logging.h"
-#include "base/strings/stringprintf.h"
-#include "base/time/time.h"
-#include "components/omnibox/autocomplete_match_type.h"
-#include "sql/meta_table.h"
-#include "sql/statement.h"
-#include "sql/transaction.h"
-#include "ui/base/page_transition_types.h"
-
-
-// Helpers --------------------------------------------------------------------
-
-namespace {
-
-// Current version number. We write databases at the "current" version number,
-// but any previous version that can read the "compatible" one can make do with
-// our database without *too* many bad effects.
-const int kCurrentVersionNumber = 1;
-const int kCompatibleVersionNumber = 1;
-
-void BindShortcutToStatement(
- const history::ShortcutsDatabase::Shortcut& shortcut,
- sql::Statement* s) {
- DCHECK(base::IsValidGUID(shortcut.id));
- s->BindString(0, shortcut.id);
- s->BindString16(1, shortcut.text);
- 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, shortcut.match_core.contents_class);
- s->BindString16(6, shortcut.match_core.description);
- 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);
- s->BindInt64(11, shortcut.last_access_time.ToInternalValue());
- s->BindInt(12, shortcut.number_of_hits);
-}
-
-bool DeleteShortcut(const char* field_name,
- const std::string& id,
- sql::Connection& db) {
- sql::Statement s(db.GetUniqueStatement(
- base::StringPrintf("DELETE FROM omni_box_shortcuts WHERE %s = ?",
- field_name).c_str()));
- s.BindString(0, id);
- return s.Run();
-}
-
-} // 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) {
-}
-
-bool ShortcutsDatabase::Init() {
- db_.set_histogram_tag("Shortcuts");
-
- // Set the database page size to something a little larger to give us
- // better performance (we're typically seek rather than bandwidth limited).
- // This only has an effect before any tables have been created, otherwise
- // this is a NOP. Must be a power of 2 and a max of 8192.
- db_.set_page_size(4096);
-
- // Run the database in exclusive mode. Nobody else should be accessing the
- // database while we're running, and this will give somewhat improved perf.
- db_.set_exclusive_locking();
-
- // Attach the database to our index file.
- return db_.Open(database_path_) && EnsureTable();
-}
-
-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, "
- "contents, contents_class, description, description_class, "
- "transition, type, keyword, last_access_time, number_of_hits) "
- "VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)"));
- BindShortcutToStatement(shortcut, &s);
- return s.Run();
-}
-
-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=?, "
- "contents=?, contents_class=?, description=?, description_class=?, "
- "transition=?, type=?, keyword=?, last_access_time=?, "
- "number_of_hits=? WHERE id=?"));
- BindShortcutToStatement(shortcut, &s);
- s.BindString(13, shortcut.id);
- return s.Run();
-}
-
-bool ShortcutsDatabase::DeleteShortcutsWithIDs(
- const ShortcutIDs& shortcut_ids) {
- bool success = true;
- db_.BeginTransaction();
- for (ShortcutIDs::const_iterator it(shortcut_ids.begin());
- it != shortcut_ids.end(); ++it) {
- success &= DeleteShortcut("id", *it, db_);
- }
- db_.CommitTransaction();
- return success;
-}
-
-bool ShortcutsDatabase::DeleteShortcutsWithURL(
- const std::string& shortcut_url_spec) {
- return DeleteShortcut("url", shortcut_url_spec, db_);
-}
-
-bool ShortcutsDatabase::DeleteAllShortcuts() {
- if (!db_.Execute("DELETE FROM omni_box_shortcuts"))
- return false;
-
- ignore_result(db_.Execute("VACUUM"));
- return true;
-}
-
-void ShortcutsDatabase::LoadShortcuts(GuidToShortcutMap* shortcuts) {
- DCHECK(shortcuts);
- sql::Statement s(db_.GetCachedStatement(
- SQL_FROM_HERE,
- "SELECT id, text, fill_into_edit, url, contents, contents_class, "
- "description, description_class, transition, type, keyword, "
- "last_access_time, number_of_hits FROM omni_box_shortcuts"));
-
- shortcuts->clear();
- while (s.Step()) {
- shortcuts->insert(std::make_pair(
- s.ColumnString(0),
- Shortcut(
- s.ColumnString(0), // id
- s.ColumnString16(1), // text
- Shortcut::MatchCore(
- s.ColumnString16(2), // fill_into_edit
- GURL(s.ColumnString(3)), // destination_url
- s.ColumnString16(4), // contents
- s.ColumnString(5), // contents_class
- s.ColumnString16(6), // description
- 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
- s.ColumnInt(12)))); // number_of_hits
- }
-}
-
-ShortcutsDatabase::~ShortcutsDatabase() {
-}
-
-bool ShortcutsDatabase::EnsureTable() {
- if (!db_.DoesTableExist("omni_box_shortcuts")) {
- return db_.Execute(
- "CREATE TABLE omni_box_shortcuts (id VARCHAR PRIMARY KEY, "
- "text VARCHAR, fill_into_edit VARCHAR, url VARCHAR, "
- "contents VARCHAR, contents_class VARCHAR, description VARCHAR, "
- "description_class VARCHAR, transition INTEGER, type INTEGER, "
- "keyword VARCHAR, last_access_time INTEGER, "
- "number_of_hits INTEGER)");
- }
-
- // The first version of the shortcuts table lacked the fill_into_edit,
- // transition, type, and keyword columns.
- if (!db_.DoesColumnExist("omni_box_shortcuts", "fill_into_edit")) {
- // Perform the upgrade in a transaction to ensure it doesn't happen
- // incompletely.
- sql::Transaction transaction(&db_);
- if (!(transaction.Begin() &&
- db_.Execute("ALTER TABLE omni_box_shortcuts "
- "ADD COLUMN fill_into_edit VARCHAR") &&
- db_.Execute("UPDATE omni_box_shortcuts SET fill_into_edit = url") &&
- db_.Execute("ALTER TABLE omni_box_shortcuts "
- "ADD COLUMN transition INTEGER") &&
- db_.Execute(base::StringPrintf(
- "UPDATE omni_box_shortcuts SET transition = %d",
- static_cast<int>(ui::PAGE_TRANSITION_TYPED)).c_str()) &&
- db_.Execute("ALTER TABLE omni_box_shortcuts ADD COLUMN type INTEGER") &&
- db_.Execute(base::StringPrintf(
- "UPDATE omni_box_shortcuts SET type = %d",
- static_cast<int>(AutocompleteMatchType::HISTORY_TITLE)).c_str()) &&
- db_.Execute("ALTER TABLE omni_box_shortcuts "
- "ADD COLUMN keyword VARCHAR") &&
- transaction.Commit())) {
- return false;
- }
- }
-
- if (!sql::MetaTable::DoesTableExist(&db_)) {
- meta_table_.Init(&db_, kCurrentVersionNumber, kCompatibleVersionNumber);
- sql::Transaction transaction(&db_);
- if (!(transaction.Begin() &&
- // Migrate old SEARCH_OTHER_ENGINE values to the new type value.
- db_.Execute(base::StringPrintf("UPDATE omni_box_shortcuts "
- "SET type = 13 WHERE type = 9").c_str()) &&
- // Migrate old EXTENSION_APP values to the new type value.
- db_.Execute(base::StringPrintf("UPDATE omni_box_shortcuts "
- "SET type = 14 WHERE type = 10").c_str()) &&
- // Migrate old CONTACT values to the new type value.
- db_.Execute(base::StringPrintf("UPDATE omni_box_shortcuts "
- "SET type = 15 WHERE type = 11").c_str()) &&
- // Migrate old BOOKMARK_TITLE values to the new type value.
- db_.Execute(base::StringPrintf("UPDATE omni_box_shortcuts "
- "SET type = 16 WHERE type = 12").c_str()) &&
- transaction.Commit())) {
- return false;
- }
- }
- return true;
-}
-
-} // namespace history
« no previous file with comments | « chrome/browser/history/shortcuts_database.h ('k') | chrome/browser/history/shortcuts_database_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698