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

Unified Diff: chrome/browser/webdata/keyword_table.h

Issue 367023002: Componentize TemplateURLService (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 5 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/webdata/OWNERS ('k') | chrome/browser/webdata/keyword_table.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/webdata/keyword_table.h
diff --git a/chrome/browser/webdata/keyword_table.h b/chrome/browser/webdata/keyword_table.h
deleted file mode 100644
index 9dd67fa8a3b9ca7169d591b04946e0f8ee4169f2..0000000000000000000000000000000000000000
--- a/chrome/browser/webdata/keyword_table.h
+++ /dev/null
@@ -1,185 +0,0 @@
-// Copyright 2014 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.
-
-#ifndef CHROME_BROWSER_WEBDATA_KEYWORD_TABLE_H_
-#define CHROME_BROWSER_WEBDATA_KEYWORD_TABLE_H_
-
-#include <string>
-#include <vector>
-
-#include "base/compiler_specific.h"
-#include "base/gtest_prod_util.h"
-#include "base/strings/string16.h"
-#include "components/search_engines/template_url_id.h"
-#include "components/webdata/common/web_database_table.h"
-
-struct TemplateURLData;
-class WebDatabase;
-
-namespace sql {
-class Statement;
-} // namespace sql
-
-// This class manages the |keywords| MetaTable within the SQLite database
-// passed to the constructor. It expects the following schema:
-//
-// Note: The database stores time in seconds, UTC.
-//
-// keywords Most of the columns mirror that of a field in
-// TemplateURLData. See that struct for more details.
-// id
-// short_name
-// keyword
-// favicon_url
-// url
-// show_in_default_list
-// safe_for_autoreplace
-// originating_url
-// date_created This column was added after we allowed keywords.
-// Keywords created before we started tracking
-// creation date have a value of 0 for this.
-// usage_count
-// input_encodings Semicolon separated list of supported input
-// encodings, may be empty.
-// suggest_url
-// prepopulate_id See TemplateURLData::prepopulate_id.
-// created_by_policy See TemplateURLData::created_by_policy. This was
-// added in version 26.
-// instant_url See TemplateURLData::instant_url. This was added in
-// version 29.
-// last_modified See TemplateURLData::last_modified. This was added
-// in version 38.
-// sync_guid See TemplateURLData::sync_guid. This was added in
-// version 39.
-// alternate_urls See TemplateURLData::alternate_urls. This was added
-// in version 47.
-// search_terms_replacement_key
-// See TemplateURLData::search_terms_replacement_key.
-// This was added in version 49.
-// image_url See TemplateURLData::image_url. This was added in
-// version 52.
-// search_url_post_params See TemplateURLData::search_url_post_params. This
-// was added in version 52.
-// suggest_url_post_params See TemplateURLData::suggestions_url_post_params.
-// This was added in version 52.
-// instant_url_post_params See TemplateURLData::instant_url_post_params. This
-// was added in version 52.
-// image_url_post_params See TemplateURLData::image_url_post_params. This
-// was added in version 52.
-// new_tab_url See TemplateURLData::new_tab_url. This was added in
-// version 53.
-//
-// This class also manages some fields in the |meta| table:
-//
-// Default Search Provider ID The id of the default search provider.
-// Builtin Keyword Version The version of builtin keywords data.
-//
-class KeywordTable : public WebDatabaseTable {
- public:
- enum OperationType {
- ADD,
- REMOVE,
- UPDATE,
- };
-
- typedef std::pair<OperationType, TemplateURLData> Operation;
- typedef std::vector<Operation> Operations;
- typedef std::vector<TemplateURLData> Keywords;
-
- // Constants exposed for the benefit of test code:
-
- static const char kDefaultSearchProviderKey[];
-
- KeywordTable();
- virtual ~KeywordTable();
-
- // Retrieves the KeywordTable* owned by |database|.
- static KeywordTable* FromWebDatabase(WebDatabase* db);
-
- virtual WebDatabaseTable::TypeKey GetTypeKey() const OVERRIDE;
- virtual bool CreateTablesIfNecessary() OVERRIDE;
- virtual bool IsSyncable() OVERRIDE;
- virtual bool MigrateToVersion(int version,
- bool* update_compatible_version) OVERRIDE;
-
- // Performs an arbitrary number of Add/Remove/Update operations as a single
- // transaction. This is provided for efficiency reasons: if the caller needs
- // to perform a large number of operations, doing them in a single transaction
- // instead of one-per-transaction can be dramatically more efficient.
- bool PerformOperations(const Operations& operations);
-
- // Loads the keywords into the specified vector. It's up to the caller to
- // delete the returned objects.
- // Returns true on success.
- bool GetKeywords(Keywords* keywords);
-
- // ID (TemplateURLData->id) of the default search provider.
- bool SetDefaultSearchProviderID(int64 id);
- int64 GetDefaultSearchProviderID();
-
- // Version of the built-in keywords.
- bool SetBuiltinKeywordVersion(int version);
- int GetBuiltinKeywordVersion();
-
- // Returns a comma-separated list of the keyword columns for the current
- // version of the table.
- static std::string GetKeywordColumns();
-
- // Table migration functions.
- bool MigrateToVersion21AutoGenerateKeywordColumn();
- bool MigrateToVersion25AddLogoIDColumn();
- bool MigrateToVersion26AddCreatedByPolicyColumn();
- bool MigrateToVersion28SupportsInstantColumn();
- bool MigrateToVersion29InstantURLToSupportsInstant();
- bool MigrateToVersion38AddLastModifiedColumn();
- bool MigrateToVersion39AddSyncGUIDColumn();
- bool MigrateToVersion44AddDefaultSearchProviderBackup();
- bool MigrateToVersion45RemoveLogoIDAndAutogenerateColumns();
- bool MigrateToVersion47AddAlternateURLsColumn();
- bool MigrateToVersion48RemoveKeywordsBackup();
- bool MigrateToVersion49AddSearchTermsReplacementKeyColumn();
- bool MigrateToVersion52AddImageSearchAndPOSTSupport();
- bool MigrateToVersion53AddNewTabURLColumn();
-
- private:
- friend class KeywordTableTest;
- FRIEND_TEST_ALL_PREFIXES(WebDatabaseMigrationTest, MigrateVersion44ToCurrent);
-
- // NOTE: Since the table columns have changed in different versions, many
- // functions below take a |table_version| argument which dictates which
- // version number's column set to use.
-
- // Fills |data| with the data in |s|. Returns false if we couldn't fill
- // |data| for some reason, e.g. |s| tried to set one of the fields to an
- // illegal value.
- static bool GetKeywordDataFromStatement(const sql::Statement& s,
- TemplateURLData* data);
-
- // Adds a new keyword, updating the id field on success.
- // Returns true if successful.
- bool AddKeyword(const TemplateURLData& data);
-
- // Removes the specified keyword.
- // Returns true if successful.
- bool RemoveKeyword(TemplateURLID id);
-
- // Updates the database values for the specified url.
- // Returns true on success.
- bool UpdateKeyword(const TemplateURLData& data);
-
- // Gets a string representation for keyword with id specified.
- // Used to store its result in |meta| table or to compare with another
- // keyword. Returns true on success, false otherwise.
- bool GetKeywordAsString(TemplateURLID id,
- const std::string& table_name,
- std::string* result);
-
- // Migrates table |name| (which should be either "keywords" or
- // "keywords_backup") from version 44 to version 45.
- bool MigrateKeywordsTableForVersion45(const std::string& name);
-
- DISALLOW_COPY_AND_ASSIGN(KeywordTable);
-};
-
-#endif // CHROME_BROWSER_WEBDATA_KEYWORD_TABLE_H_
« no previous file with comments | « chrome/browser/webdata/OWNERS ('k') | chrome/browser/webdata/keyword_table.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698