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

Side by Side Diff: chrome/browser/search_engines/template_url_model.h

Issue 6340012: Fix a DCHECK failure in AutocompleteEditModel::OnPopupDataChanged() (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase and remove the url check. Created 9 years, 11 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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_SEARCH_ENGINES_TEMPLATE_URL_MODEL_H_ 5 #ifndef CHROME_BROWSER_SEARCH_ENGINES_TEMPLATE_URL_MODEL_H_
6 #define CHROME_BROWSER_SEARCH_ENGINES_TEMPLATE_URL_MODEL_H_ 6 #define CHROME_BROWSER_SEARCH_ENGINES_TEMPLATE_URL_MODEL_H_
7 #pragma once 7 #pragma once
8 8
9 #include <map> 9 #include <map>
10 #include <set> 10 #include <set>
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 // notification message. 52 // notification message.
53 // 53 //
54 // TemplateURLModel takes ownership of any TemplateURL passed to it. If there 54 // TemplateURLModel takes ownership of any TemplateURL passed to it. If there
55 // is a WebDataService, deletion is handled by WebDataService, otherwise 55 // is a WebDataService, deletion is handled by WebDataService, otherwise
56 // TemplateURLModel handles deletion. 56 // TemplateURLModel handles deletion.
57 57
58 class TemplateURLModel : public WebDataServiceConsumer, 58 class TemplateURLModel : public WebDataServiceConsumer,
59 public NotificationObserver { 59 public NotificationObserver {
60 public: 60 public:
61 typedef std::map<std::string, std::string> QueryTerms; 61 typedef std::map<std::string, std::string> QueryTerms;
62 typedef std::vector<const TemplateURL*> TemplateURLVector;
62 63
63 // Struct used for initializing the data store with fake data. 64 // Struct used for initializing the data store with fake data.
64 // Each initializer is mapped to a TemplateURL. 65 // Each initializer is mapped to a TemplateURL.
65 struct Initializer { 66 struct Initializer {
66 const char* const keyword; 67 const char* const keyword;
67 const char* const url; 68 const char* const url;
68 const char* const content; 69 const char* const content;
69 }; 70 };
70 71
71 explicit TemplateURLModel(Profile* profile); 72 explicit TemplateURLModel(Profile* profile);
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 void UnregisterExtensionKeyword(const Extension* extension); 151 void UnregisterExtensionKeyword(const Extension* extension);
151 152
152 // Returns the TemplateURL associated with the keyword for this extension. 153 // Returns the TemplateURL associated with the keyword for this extension.
153 // This works by checking the extension ID, not the keyword, so it will work 154 // This works by checking the extension ID, not the keyword, so it will work
154 // even if the user changed the keyword. 155 // even if the user changed the keyword.
155 const TemplateURL* GetTemplateURLForExtension( 156 const TemplateURL* GetTemplateURLForExtension(
156 const Extension* extension) const; 157 const Extension* extension) const;
157 158
158 // Returns the set of URLs describing the keywords. The elements are owned 159 // Returns the set of URLs describing the keywords. The elements are owned
159 // by TemplateURLModel and should not be deleted. 160 // by TemplateURLModel and should not be deleted.
160 std::vector<const TemplateURL*> GetTemplateURLs() const; 161 TemplateURLVector GetTemplateURLs() const;
161 162
162 // Increment the usage count of a keyword. 163 // Increment the usage count of a keyword.
163 // Called when a URL is loaded that was generated from a keyword. 164 // Called when a URL is loaded that was generated from a keyword.
164 void IncrementUsageCount(const TemplateURL* url); 165 void IncrementUsageCount(const TemplateURL* url);
165 166
166 // Resets the title, keyword and search url of the specified TemplateURL. 167 // Resets the title, keyword and search url of the specified TemplateURL.
167 // The TemplateURL is marked as not replaceable. 168 // The TemplateURL is marked as not replaceable.
168 void ResetTemplateURL(const TemplateURL* url, 169 void ResetTemplateURL(const TemplateURL* url,
169 const string16& title, 170 const string16& title,
170 const string16& keyword, 171 const string16& keyword,
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 FRIEND_TEST_ALL_PREFIXES(TemplateURLModelTest, TestManagedDefaultSearch); 252 FRIEND_TEST_ALL_PREFIXES(TemplateURLModelTest, TestManagedDefaultSearch);
252 FRIEND_TEST_ALL_PREFIXES(TemplateURLModelTest, 253 FRIEND_TEST_ALL_PREFIXES(TemplateURLModelTest,
253 UpdateKeywordSearchTermsForURL); 254 UpdateKeywordSearchTermsForURL);
254 FRIEND_TEST_ALL_PREFIXES(TemplateURLModelTest, 255 FRIEND_TEST_ALL_PREFIXES(TemplateURLModelTest,
255 DontUpdateKeywordSearchForNonReplaceable); 256 DontUpdateKeywordSearchForNonReplaceable);
256 FRIEND_TEST_ALL_PREFIXES(TemplateURLModelTest, ChangeGoogleBaseValue); 257 FRIEND_TEST_ALL_PREFIXES(TemplateURLModelTest, ChangeGoogleBaseValue);
257 FRIEND_TEST_ALL_PREFIXES(TemplateURLModelTest, MergeDeletesUnusedProviders); 258 FRIEND_TEST_ALL_PREFIXES(TemplateURLModelTest, MergeDeletesUnusedProviders);
258 friend class TemplateURLModelTestUtil; 259 friend class TemplateURLModelTestUtil;
259 260
260 typedef std::map<string16, const TemplateURL*> KeywordToTemplateMap; 261 typedef std::map<string16, const TemplateURL*> KeywordToTemplateMap;
261 typedef std::vector<const TemplateURL*> TemplateURLVector;
262 262
263 // Helper functor for FindMatchingKeywords(), for finding the range of 263 // Helper functor for FindMatchingKeywords(), for finding the range of
264 // keywords which begin with a prefix. 264 // keywords which begin with a prefix.
265 class LessWithPrefix; 265 class LessWithPrefix;
266 266
267 void Init(const Initializer* initializers, int num_initializers); 267 void Init(const Initializer* initializers, int num_initializers);
268 268
269 void RemoveFromMaps(const TemplateURL* template_url); 269 void RemoveFromMaps(const TemplateURL* template_url);
270 270
271 // Removes the supplied template_url from the keyword maps. This searches 271 // Removes the supplied template_url from the keyword maps. This searches
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
426 // increasing integer that is initialized from the database. 426 // increasing integer that is initialized from the database.
427 TemplateURLID next_id_; 427 TemplateURLID next_id_;
428 428
429 // List of extension IDs waiting for Load to have keywords registered. 429 // List of extension IDs waiting for Load to have keywords registered.
430 std::vector<std::string> pending_extension_ids_; 430 std::vector<std::string> pending_extension_ids_;
431 431
432 DISALLOW_COPY_AND_ASSIGN(TemplateURLModel); 432 DISALLOW_COPY_AND_ASSIGN(TemplateURLModel);
433 }; 433 };
434 434
435 #endif // CHROME_BROWSER_SEARCH_ENGINES_TEMPLATE_URL_MODEL_H_ 435 #endif // CHROME_BROWSER_SEARCH_ENGINES_TEMPLATE_URL_MODEL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698