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

Unified Diff: chrome/browser/search_engines/util.cc

Issue 8342049: Added Protector, hooked up DSE verification with error bubble. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Moved histograms to protector folder Created 9 years, 2 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/search_engines/util.h ('k') | chrome/browser/webdata/keyword_table.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/search_engines/util.cc
diff --git a/chrome/browser/search_engines/util.cc b/chrome/browser/search_engines/util.cc
index 2cbbe088dfc299176f787f2c4e0b5c9168e2b656..f2b85128602ab51df9dd39f3953e668b43137a32 100644
--- a/chrome/browser/search_engines/util.cc
+++ b/chrome/browser/search_engines/util.cc
@@ -64,6 +64,20 @@ static void RemoveDuplicatePrepopulateIDs(
}
}
+// Returns the TemplateURL with id specified from the list of TemplateURLs.
+// If not found, returns NULL.
+TemplateURL* GetTemplateURLByID(
+ const std::vector<TemplateURL*>& template_urls,
+ int64 id) {
+ for (std::vector<TemplateURL*>::const_iterator i = template_urls.begin();
+ i != template_urls.end(); ++i) {
+ if ((*i)->id() == id) {
+ return *i;
+ }
+ }
+ return NULL;
+}
+
// Loads engines from prepopulate data and merges them in with the existing
// engines. This is invoked when the version of the prepopulate data changes.
void MergeEnginesFromPrepopulateData(
@@ -162,7 +176,7 @@ void GetSearchProvidersUsingKeywordResult(
DCHECK(template_urls->empty());
DCHECK(default_search_provider);
DCHECK(*default_search_provider == NULL);
- DCHECK(result.GetType() == KEYWORDS_RESULT);
+ DCHECK_EQ(result.GetType(), KEYWORDS_RESULT);
DCHECK(new_resource_keyword_version);
*new_resource_keyword_version = 0;
@@ -180,15 +194,10 @@ void GetSearchProvidersUsingKeywordResult(
RemoveDuplicatePrepopulateIDs(template_urls, service);
}
- if (keyword_result.default_search_provider_id) {
- // See if we can find the default search provider.
- for (std::vector<TemplateURL*>::iterator i = template_urls->begin();
- i != template_urls->end(); ++i) {
- if ((*i)->id() == keyword_result.default_search_provider_id) {
- *default_search_provider = *i;
- break;
- }
- }
+ int64 default_search_provider_id = keyword_result.default_search_provider_id;
+ if (default_search_provider_id) {
+ *default_search_provider =
+ GetTemplateURLByID(*template_urls, default_search_provider_id);
}
if (keyword_result.builtin_keyword_version != resource_keyword_version) {
@@ -198,3 +207,23 @@ void GetSearchProvidersUsingKeywordResult(
}
}
+bool DidDefaultSearchProviderChange(
+ const WDTypedResult& result,
+ const std::vector<TemplateURL*>& template_urls,
+ const TemplateURL** backup_default_search_provider) {
+ DCHECK(backup_default_search_provider);
+ DCHECK(*backup_default_search_provider == NULL);
+ DCHECK_EQ(result.GetType(), KEYWORDS_RESULT);
+
+ WDKeywordsResult keyword_result = reinterpret_cast<
+ const WDResult<WDKeywordsResult>*>(&result)->GetValue();
+
+ if (!keyword_result.did_default_search_provider_change)
+ return false;
+
+ *backup_default_search_provider = GetTemplateURLByID(
+ template_urls,
+ keyword_result.default_search_provider_id_backup);
+ return true;
+}
+
« no previous file with comments | « chrome/browser/search_engines/util.h ('k') | chrome/browser/webdata/keyword_table.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698