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

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

Issue 10173001: Add a Profile* member to TemplateURL. This makes some invocations of ReplaceSearchTerms() a bit le… (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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/search_engines/template_url_service.cc
===================================================================
--- chrome/browser/search_engines/template_url_service.cc (revision 132909)
+++ chrome/browser/search_engines/template_url_service.cc (working copy)
@@ -325,6 +325,12 @@
NotifyObservers();
}
+void TemplateURLService::AddAndSetProfile(TemplateURL* template_url,
+ Profile* profile) {
+ template_url->profile_ = profile;
+ Add(template_url);
+}
+
void TemplateURLService::AddWithOverrides(const TemplateURL* template_url,
const string16& short_name,
const string16& keyword,
@@ -394,7 +400,7 @@
// ID, as well as forcing the TemplateURL to be treated as a search keyword.
data.SetURL(std::string(chrome::kExtensionScheme) + "://" +
extension->id() + "/?q={searchTerms}");
- Add(new TemplateURL(data));
+ Add(new TemplateURL(profile_, data));
}
}
@@ -455,7 +461,7 @@
}
data.safe_for_autoreplace = false;
data.last_modified = time_provider_();
- TemplateURL new_url(data);
+ TemplateURL new_url(const_cast<TemplateURL*>(url)->profile(), data);
UpdateNoNotify(url, new_url);
NotifyObservers();
}
@@ -487,7 +493,7 @@
const TemplateURL* TemplateURLService::FindNewDefaultSearchProvider() {
// See if the prepopulated default still exists.
scoped_ptr<TemplateURL> prepopulated_default(
- TemplateURLPrepopulateData::GetPrepopulatedDefaultSearch(GetPrefs()));
+ TemplateURLPrepopulateData::GetPrepopulatedDefaultSearch(profile_));
for (TemplateURLVector::iterator i = template_urls_.begin();
i != template_urls_.end(); ++i) {
if ((*i)->prepopulate_id() == prepopulated_default->prepopulate_id())
@@ -549,7 +555,7 @@
std::vector<TemplateURL*> template_urls;
const TemplateURL* default_search_provider = NULL;
int new_resource_keyword_version = 0;
- GetSearchProvidersUsingKeywordResult(*result, service_.get(), GetPrefs(),
+ GetSearchProvidersUsingKeywordResult(*result, service_.get(), profile_,
&template_urls, &default_search_provider, &new_resource_keyword_version);
bool database_specified_a_default = (default_search_provider != NULL);
@@ -568,7 +574,7 @@
// No check is required if the default search is managed.
// |DidDefaultSearchProviderChange| must always be called because it will
// take care of the unowned backup default search provider instance.
- if (DidDefaultSearchProviderChange(*result,
+ if (DidDefaultSearchProviderChange(*result, profile_,
&backup_default_search_provider) &&
!is_default_search_managed_) {
hijacked_default_search_provider = default_search_provider;
@@ -597,7 +603,7 @@
TemplateURLData data(default_from_prefs->data());
data.created_by_policy = true;
data.id = kInvalidTemplateURLID;
- TemplateURL* managed_default = new TemplateURL(data);
+ TemplateURL* managed_default = new TemplateURL(profile_, data);
AddNoNotify(managed_default, true);
default_search_provider = managed_default;
}
@@ -617,7 +623,7 @@
default_search_provider == NULL) {
for (std::vector<TemplateURL*>::const_iterator i = template_urls.begin();
i != template_urls.end(); ++i) {
- if (!(*i)->IsExtensionKeyword()) {
+ if (!(*i)->IsExtensionKeyword() && (*i)->SupportsReplacement()) {
default_search_provider = *i;
break;
}
@@ -791,7 +797,7 @@
iter->sync_data().GetSpecifics().search_engine().sync_guid();
const TemplateURL* existing_turl = GetTemplateURLForGUID(guid);
scoped_ptr<TemplateURL> turl(CreateTemplateURLFromTemplateURLAndSyncData(
- existing_turl, iter->sync_data(), &new_changes));
+ profile_, existing_turl, iter->sync_data(), &new_changes));
if (!turl.get())
continue;
@@ -820,7 +826,7 @@
// Force the local ID to kInvalidTemplateURLID so we can add it.
TemplateURLData data(turl->data());
data.id = kInvalidTemplateURLID;
- Add(new TemplateURL(data));
+ Add(new TemplateURL(profile_, data));
// Possibly set the newly added |turl| as the default search provider.
SetDefaultSearchProviderIfNewlySynced(guid);
@@ -891,8 +897,8 @@
iter != sync_data_map.end(); ++iter) {
const TemplateURL* local_turl = GetTemplateURLForGUID(iter->first);
scoped_ptr<TemplateURL> sync_turl(
- CreateTemplateURLFromTemplateURLAndSyncData(local_turl, iter->second,
- &new_changes));
+ CreateTemplateURLFromTemplateURLAndSyncData(profile_, local_turl,
+ iter->second, &new_changes));
if (!sync_turl.get())
continue;
@@ -937,7 +943,7 @@
// Force the local ID to kInvalidTemplateURLID so we can add it.
TemplateURLData data(sync_turl->data());
data.id = kInvalidTemplateURLID;
- Add(new TemplateURL(data));
+ Add(new TemplateURL(profile_, data));
// Possibly set the newly added |turl| as the default search provider.
SetDefaultSearchProviderIfNewlySynced(guid);
@@ -1024,9 +1030,12 @@
// static
TemplateURL* TemplateURLService::CreateTemplateURLFromTemplateURLAndSyncData(
+ Profile* profile,
const TemplateURL* existing_turl,
const SyncData& sync_data,
SyncChangeList* change_list) {
+ DCHECK(change_list);
+
sync_pb::SearchEngineSpecifics specifics =
sync_data.GetSpecifics().search_engine();
@@ -1059,7 +1068,7 @@
data.usage_count = existing_turl->usage_count();
}
- TemplateURL* turl = new TemplateURL(data);
+ TemplateURL* turl = new TemplateURL(profile, data);
DCHECK(!turl->IsExtensionKeyword());
return turl;
}
@@ -1127,7 +1136,7 @@
data.short_name = UTF8ToUTF16(initializers[i].content);
data.SetKeyword(UTF8ToUTF16(initializers[i].keyword));
data.SetURL(osd_url);
- AddNoNotify(new TemplateURL(data), true);
+ AddNoNotify(new TemplateURL(profile_, data), true);
}
}
@@ -1344,7 +1353,7 @@
base::StringToInt(prepopulate_id, &value);
data.prepopulate_id = value;
}
- default_provider->reset(new TemplateURL(data));
+ default_provider->reset(new TemplateURL(profile_, data));
DCHECK(!(*default_provider)->IsExtensionKeyword());
return true;
}
@@ -1567,7 +1576,7 @@
// Prefs does not specify, so rely on the prepopulated engines. This
// should happen only the first time Chrome is started.
initial_default_search_provider_.reset(
- TemplateURLPrepopulateData::GetPrepopulatedDefaultSearch(GetPrefs()));
+ TemplateURLPrepopulateData::GetPrepopulatedDefaultSearch(profile_));
is_default_search_managed_ = false;
}
return;
@@ -1604,14 +1613,14 @@
} else if (default_search_provider_) {
TemplateURLData data(new_default_from_prefs->data());
data.created_by_policy = true;
- TemplateURL new_values(data);
+ TemplateURL new_values(profile_, data);
UpdateNoNotify(default_search_provider_, new_values);
} else {
TemplateURL* new_template = NULL;
if (new_default_from_prefs.get()) {
TemplateURLData data(new_default_from_prefs->data());
data.created_by_policy = true;
- new_template = new TemplateURL(data);
+ new_template = new TemplateURL(profile_, data);
AddNoNotify(new_template, true);
}
SetDefaultSearchProviderNoNotify(new_template);
@@ -1624,7 +1633,7 @@
if (new_default_from_prefs.get()) {
TemplateURLData data(new_default_from_prefs->data());
data.created_by_policy = true;
- new_template = new TemplateURL(data);
+ new_template = new TemplateURL(profile_, data);
AddNoNotify(new_template, true);
}
SetDefaultSearchProviderNoNotify(new_template);
@@ -1834,7 +1843,7 @@
TemplateURLData data(url->data());
data.sync_guid = guid;
- TemplateURL new_url(data);
+ TemplateURL new_url(const_cast<TemplateURL*>(url)->profile(), data);
UpdateNoNotify(url, new_url);
}
@@ -1888,7 +1897,8 @@
string16 new_keyword = UniquifyKeyword(*existing_turl);
TemplateURLData data(existing_turl->data());
data.SetKeyword(new_keyword);
- TemplateURL new_turl(data);
+ TemplateURL new_turl(const_cast<TemplateURL*>(existing_turl)->profile(),
+ data);
UpdateNoNotify(existing_turl, new_turl);
NotifyObservers();
}

Powered by Google App Engine
This is Rietveld 408576698