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

Side by Side Diff: chrome/browser/webdata/keyword_table.h

Issue 10021008: Reland r131019: Move most TemplateURL data members to a new struct, TemplateURLData. This allows us… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 8 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_WEBDATA_KEYWORD_TABLE_H_ 5 #ifndef CHROME_BROWSER_WEBDATA_KEYWORD_TABLE_H_
6 #define CHROME_BROWSER_WEBDATA_KEYWORD_TABLE_H_ 6 #define CHROME_BROWSER_WEBDATA_KEYWORD_TABLE_H_
7 #pragma once 7 #pragma once
8 8
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/compiler_specific.h" 12 #include "base/compiler_specific.h"
13 #include "base/gtest_prod_util.h" 13 #include "base/gtest_prod_util.h"
14 #include "base/string16.h" 14 #include "base/string16.h"
15 #include "chrome/browser/webdata/web_database_table.h" 15 #include "chrome/browser/webdata/web_database_table.h"
16 #include "chrome/browser/search_engines/template_url_id.h" 16 #include "chrome/browser/search_engines/template_url_id.h"
17 17
18 class TemplateURL; 18 class TemplateURL;
19 struct TemplateURLData;
19 20
20 namespace sql { 21 namespace sql {
21 class Statement; 22 class Statement;
22 } // namespace sql 23 } // namespace sql
23 24
24 // This class manages the |keywords| MetaTable within the SQLite database 25 // This class manages the |keywords| MetaTable within the SQLite database
25 // passed to the constructor. It expects the following schema: 26 // passed to the constructor. It expects the following schema:
26 // 27 //
27 // Note: The database stores time in seconds, UTC. 28 // Note: The database stores time in seconds, UTC.
28 // 29 //
29 // keywords Most of the columns mirror that of a field in 30 // keywords Most of the columns mirror that of a field in
30 // TemplateURL. See TemplateURL for more details. 31 // TemplateURLData. See that struct for more details.
31 // id 32 // id
32 // short_name 33 // short_name
33 // keyword 34 // keyword
34 // favicon_url 35 // favicon_url
35 // url 36 // url
36 // show_in_default_list 37 // show_in_default_list
37 // safe_for_autoreplace 38 // safe_for_autoreplace
38 // originating_url 39 // originating_url
39 // date_created This column was added after we allowed keywords. 40 // date_created This column was added after we allowed keywords.
40 // Keywords created before we started tracking 41 // Keywords created before we started tracking
41 // creation date have a value of 0 for this. 42 // creation date have a value of 0 for this.
42 // usage_count 43 // usage_count
43 // input_encodings Semicolon separated list of supported input 44 // input_encodings Semicolon separated list of supported input
44 // encodings, may be empty. 45 // encodings, may be empty.
45 // suggest_url 46 // suggest_url
46 // prepopulate_id See TemplateURL::prepopulate_id. 47 // prepopulate_id See TemplateURLData::prepopulate_id.
47 // autogenerate_keyword 48 // autogenerate_keyword
48 // logo_id Deprecated, to be removed; see crbug.com/113248. 49 // logo_id Deprecated, to be removed; see crbug.com/113248.
49 // created_by_policy See TemplateURL::created_by_policy. This was added 50 // created_by_policy See TemplateURLData::created_by_policy. This was
50 // in version 26. 51 // added in version 26.
51 // instant_url See TemplateURL::instant_url. This was added 52 // instant_url See TemplateURLData::instant_url. This was added in
52 // in version 29. 53 // version 29.
53 // last_modified See TemplateURL::last_modified. This was added in 54 // last_modified See TemplateURLData::last_modified. This was added
54 // version 38. 55 // in version 38.
55 // sync_guid See TemplateURL::sync_guid. This was added in 56 // sync_guid See TemplateURLData::sync_guid. This was added in
56 // version 39. 57 // version 39.
57 // 58 //
58 // keywords_backup The full copy of the |keywords| table. Added in 59 // keywords_backup The full copy of the |keywords| table. Added in
59 // version 43. Must be in sync with |keywords| 60 // version 43. Must be in sync with |keywords|
60 // table otherwise verification of default search 61 // table otherwise verification of default search
61 // provider settings will fail. 62 // provider settings will fail.
62 // 63 //
63 // This class also manages some fields in the |meta| table: 64 // This class also manages some fields in the |meta| table:
64 // 65 //
65 // Default Search Provider ID The id of the default search provider. 66 // Default Search Provider ID The id of the default search provider.
66 // Default Search Provider ID Backup 67 // Default Search Provider ID Backup
67 // Backup copy of the above for restoring it 68 // Backup copy of the above for restoring it
68 // in case the setting was hijacked or 69 // in case the setting was hijacked or
69 // corrupted. This was added in version 40. 70 // corrupted. This was added in version 40.
70 // Default Search Provider Backup Backup copy of the raw in |keywords| 71 // Default Search Provider Backup Backup copy of the raw in |keywords|
71 // with the default search provider ID to 72 // with the default search provider ID to
72 // restore all provider info. This was added 73 // restore all provider info. This was added
73 // in version 42. Not used in 43. 74 // in version 42. Not used in 43.
74 // Default Search Provider ID Backup Signature 75 // Default Search Provider ID Backup Signature
75 // The signature of backup data and 76 // The signature of backup data and
76 // |keywords| table contents to be able to 77 // |keywords| table contents to be able to
77 // verify the backup and understand when the 78 // verify the backup and understand when the
78 // settings were changed. This was added 79 // settings were changed. This was added
79 // in version 40. 80 // in version 40.
80 // Builtin Keyword Version The version of builtin keywords data. 81 // Builtin Keyword Version The version of builtin keywords data.
81 // 82 //
82 class KeywordTable : public WebDatabaseTable { 83 class KeywordTable : public WebDatabaseTable {
83 public: 84 public:
84 typedef std::vector<TemplateURL*> Keywords; 85 typedef std::vector<TemplateURLData> Keywords;
85 86
86 // Constants exposed for the benefit of test code: 87 // Constants exposed for the benefit of test code:
87 88
88 static const char kDefaultSearchProviderKey[]; 89 static const char kDefaultSearchProviderKey[];
89 // Meta table key to store backup value for the default search provider id. 90 // Meta table key to store backup value for the default search provider id.
90 static const char kDefaultSearchIDBackupKey[]; 91 static const char kDefaultSearchIDBackupKey[];
91 // Meta table key to store backup value signature for the default search 92 // Meta table key to store backup value signature for the default search
92 // provider. The default search provider ID and the |keywords_backup| table 93 // provider. The default search provider ID and the |keywords_backup| table
93 // are signed. 94 // are signed.
94 static const char kBackupSignatureKey[]; 95 static const char kBackupSignatureKey[];
(...skipping 16 matching lines...) Expand all
111 112
112 // Loads the keywords into the specified vector. It's up to the caller to 113 // Loads the keywords into the specified vector. It's up to the caller to
113 // delete the returned objects. 114 // delete the returned objects.
114 // Returns true on success. 115 // Returns true on success.
115 bool GetKeywords(Keywords* keywords); 116 bool GetKeywords(Keywords* keywords);
116 117
117 // Updates the database values for the specified url. 118 // Updates the database values for the specified url.
118 // Returns true on success. 119 // Returns true on success.
119 bool UpdateKeyword(const TemplateURL& url); 120 bool UpdateKeyword(const TemplateURL& url);
120 121
121 // ID (TemplateURL->id) of the default search provider. 122 // ID (TemplateURLData->id) of the default search provider.
122 bool SetDefaultSearchProviderID(int64 id); 123 bool SetDefaultSearchProviderID(int64 id);
123 int64 GetDefaultSearchProviderID(); 124 int64 GetDefaultSearchProviderID();
124 125
125 // Backup of the default search provider. NULL if the backup is invalid. The 126 // If the default search provider backup is valid, returns true and copies the
126 // returned TemplateURL is owned by the caller. 127 // backup into |backup|. Otherwise returns false.
127 TemplateURL* GetDefaultSearchProviderBackup(); 128 bool GetDefaultSearchProviderBackup(TemplateURLData* backup);
128 129
129 // Returns true if the default search provider has been changed out from under 130 // Returns true if the default search provider has been changed out from under
130 // us. This can happen if another process modifies our database or the file 131 // us. This can happen if another process modifies our database or the file
131 // was corrupted. 132 // was corrupted.
132 bool DidDefaultSearchProviderChange(); 133 bool DidDefaultSearchProviderChange();
133 134
134 // Version of the built-in keywords. 135 // Version of the built-in keywords.
135 bool SetBuiltinKeywordVersion(int version); 136 bool SetBuiltinKeywordVersion(int version);
136 int GetBuiltinKeywordVersion(); 137 int GetBuiltinKeywordVersion();
137 138
138 // Table migration functions. 139 // Table migration functions.
139 bool MigrateToVersion21AutoGenerateKeywordColumn(); 140 bool MigrateToVersion21AutoGenerateKeywordColumn();
140 bool MigrateToVersion25AddLogoIDColumn(); 141 bool MigrateToVersion25AddLogoIDColumn();
141 bool MigrateToVersion26AddCreatedByPolicyColumn(); 142 bool MigrateToVersion26AddCreatedByPolicyColumn();
142 bool MigrateToVersion28SupportsInstantColumn(); 143 bool MigrateToVersion28SupportsInstantColumn();
143 bool MigrateToVersion29InstantUrlToSupportsInstant(); 144 bool MigrateToVersion29InstantUrlToSupportsInstant();
144 bool MigrateToVersion38AddLastModifiedColumn(); 145 bool MigrateToVersion38AddLastModifiedColumn();
145 bool MigrateToVersion39AddSyncGUIDColumn(); 146 bool MigrateToVersion39AddSyncGUIDColumn();
146 bool MigrateToVersion44AddDefaultSearchProviderBackup(); 147 bool MigrateToVersion44AddDefaultSearchProviderBackup();
147 148
148 private: 149 private:
149 FRIEND_TEST_ALL_PREFIXES(KeywordTableTest, DefaultSearchProviderBackup); 150 FRIEND_TEST_ALL_PREFIXES(KeywordTableTest, DefaultSearchProviderBackup);
150 FRIEND_TEST_ALL_PREFIXES(KeywordTableTest, GetTableContents); 151 FRIEND_TEST_ALL_PREFIXES(KeywordTableTest, GetTableContents);
151 FRIEND_TEST_ALL_PREFIXES(KeywordTableTest, GetTableContentsOrdering); 152 FRIEND_TEST_ALL_PREFIXES(KeywordTableTest, GetTableContentsOrdering);
152 153
153 // Returns a new TemplateURL from the data in |s|. The caller owns the 154 // NOTE: Since the table columns have changed in different versions, many
154 // returned pointer. 155 // functions below take a |table_version| argument which dictates which
155 static TemplateURL* GetKeywordDataFromStatement(const sql::Statement& s); 156 // version number's column set to use.
157
158 // Fills |data| with the data in |s|.
159 static void GetKeywordDataFromStatement(const sql::Statement& s,
160 TemplateURLData* data);
156 161
157 // Returns contents of |keywords_backup| table and default search provider 162 // Returns contents of |keywords_backup| table and default search provider
158 // id backup as a string through |data|. Return value is true on success, 163 // id backup as a string through |data|. Return value is true on success,
159 // false otherwise. 164 // false otherwise.
160 bool GetSignatureData(std::string* data); 165 bool GetSignatureData(std::string* data);
161 166
162 // Returns contents of selected table as a string in |contents| parameter. 167 // Returns contents of selected table as a string in |contents| parameter.
163 // Returns true on success, false otherwise. 168 // Returns true on success, false otherwise.
164 bool GetTableContents(const char* table_name, std::string* contents); 169 bool GetTableContents(const char* table_name, std::string* contents);
165 170
(...skipping 13 matching lines...) Expand all
179 std::string* result); 184 std::string* result);
180 185
181 // Updates default search provider id backup in |meta| table. Returns 186 // Updates default search provider id backup in |meta| table. Returns
182 // true on success. The id is returned back via |id| parameter. 187 // true on success. The id is returned back via |id| parameter.
183 bool UpdateDefaultSearchProviderIDBackup(TemplateURLID* id); 188 bool UpdateDefaultSearchProviderIDBackup(TemplateURLID* id);
184 189
185 DISALLOW_COPY_AND_ASSIGN(KeywordTable); 190 DISALLOW_COPY_AND_ASSIGN(KeywordTable);
186 }; 191 };
187 192
188 #endif // CHROME_BROWSER_WEBDATA_KEYWORD_TABLE_H_ 193 #endif // CHROME_BROWSER_WEBDATA_KEYWORD_TABLE_H_
OLDNEW
« no previous file with comments | « chrome/browser/ui/search_engines/template_url_table_model.cc ('k') | chrome/browser/webdata/keyword_table.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698