| Index: chrome/browser/search_engines/template_url_service.cc
|
| diff --git a/chrome/browser/search_engines/template_url_service.cc b/chrome/browser/search_engines/template_url_service.cc
|
| index 6c09f91bd65c9ffd82466907c0002fc127964b42..2a421d65a8c6ea509e0dbc62168a9842214919fe 100644
|
| --- a/chrome/browser/search_engines/template_url_service.cc
|
| +++ b/chrome/browser/search_engines/template_url_service.cc
|
| @@ -427,14 +427,7 @@ base::string16 TemplateURLService::CleanUserInputKeyword(
|
| }
|
|
|
| // static
|
| -GURL TemplateURLService::GenerateSearchURL(TemplateURL* t_url) {
|
| - DCHECK(t_url);
|
| - UIThreadSearchTermsData search_terms_data(t_url->profile());
|
| - return GenerateSearchURLUsingTermsData(t_url, search_terms_data);
|
| -}
|
| -
|
| -// static
|
| -GURL TemplateURLService::GenerateSearchURLUsingTermsData(
|
| +GURL TemplateURLService::GenerateSearchURL(
|
| const TemplateURL* t_url,
|
| const SearchTermsData& search_terms_data) {
|
| DCHECK(t_url);
|
| @@ -613,15 +606,13 @@ TemplateURL* TemplateURLService::GetTemplateURLForGUID(
|
|
|
| TemplateURL* TemplateURLService::GetTemplateURLForHost(
|
| const std::string& host) {
|
| - if (loaded_) {
|
| - TemplateURL* t_url = provider_map_->GetTemplateURLForHost(host);
|
| - if (t_url)
|
| - return t_url;
|
| - }
|
| - return (!loaded_ &&
|
| - initial_default_search_provider_.get() &&
|
| - (GenerateSearchURL(initial_default_search_provider_.get()).host() ==
|
| - host)) ? initial_default_search_provider_.get() : NULL;
|
| + if (loaded_)
|
| + return provider_map_->GetTemplateURLForHost(host);
|
| + TemplateURL* initial_dsp = initial_default_search_provider_.get();
|
| + if (!initial_dsp)
|
| + return NULL;
|
| + return (GenerateSearchURL(initial_dsp, search_terms_data()).host() == host) ?
|
| + initial_dsp : NULL;
|
| }
|
|
|
| bool TemplateURLService::Add(TemplateURL* template_url) {
|
| @@ -632,12 +623,6 @@ bool TemplateURLService::Add(TemplateURL* template_url) {
|
| return true;
|
| }
|
|
|
| -void TemplateURLService::AddAndSetProfile(TemplateURL* template_url,
|
| - Profile* profile) {
|
| - template_url->profile_ = profile;
|
| - Add(template_url);
|
| -}
|
| -
|
| void TemplateURLService::AddWithOverrides(TemplateURL* template_url,
|
| const base::string16& short_name,
|
| const base::string16& keyword,
|
| @@ -716,7 +701,8 @@ void TemplateURLService::RemoveAutoGeneratedForOriginBetween(
|
| template_urls_[i]->date_created() < created_before) &&
|
| CanReplace(template_urls_[i]) &&
|
| (o.is_empty() ||
|
| - GenerateSearchURL(template_urls_[i]).GetOrigin() == o)) {
|
| + GenerateSearchURL(template_urls_[i],
|
| + search_terms_data()).GetOrigin() == o)) {
|
| RemoveNoNotify(template_urls_[i]);
|
| should_notify = true;
|
| } else {
|
| @@ -858,7 +844,7 @@ void TemplateURLService::RepairPrepopulatedSearchEngines() {
|
| for (EditedEngines::iterator i(actions.edited_engines.begin());
|
| i < actions.edited_engines.end(); ++i) {
|
| UIThreadSearchTermsData search_terms_data(profile());
|
| - TemplateURL new_values(profile(), i->second);
|
| + TemplateURL new_values(i->second);
|
| UpdateNoNotify(i->first, new_values, search_terms_data);
|
| }
|
|
|
| @@ -867,7 +853,7 @@ void TemplateURLService::RepairPrepopulatedSearchEngines() {
|
| actions.added_engines.begin();
|
| i < actions.added_engines.end();
|
| ++i) {
|
| - AddNoNotify(new TemplateURL(profile_, *i), true);
|
| + AddNoNotify(new TemplateURL(*i), true);
|
| }
|
|
|
| base::AutoReset<DefaultSearchChangeOrigin> change_origin(
|
| @@ -1104,9 +1090,8 @@ syncer::SyncError TemplateURLService::ProcessSyncChanges(
|
| base::string16 updated_keyword = UniquifyKeyword(*existing_turl, true);
|
| TemplateURLData data(existing_turl->data());
|
| data.SetKeyword(updated_keyword);
|
| - TemplateURL new_turl(existing_turl->profile(), data);
|
| - UIThreadSearchTermsData search_terms_data(existing_turl->profile());
|
| - if (UpdateNoNotify(existing_turl, new_turl, search_terms_data))
|
| + TemplateURL new_turl(data);
|
| + if (UpdateNoNotify(existing_turl, new_turl, search_terms_data()))
|
| NotifyObservers();
|
|
|
| syncer::SyncData sync_data = CreateSyncDataFromTemplateURL(new_turl);
|
| @@ -1137,7 +1122,7 @@ syncer::SyncError TemplateURLService::ProcessSyncChanges(
|
| // Force the local ID to kInvalidTemplateURLID so we can add it.
|
| TemplateURLData data(turl->data());
|
| data.id = kInvalidTemplateURLID;
|
| - TemplateURL* added = new TemplateURL(profile_, data);
|
| + TemplateURL* added = new TemplateURL(data);
|
| if (Add(added))
|
| MaybeUpdateDSEAfterSync(added);
|
| } else if (iter->change_type() == syncer::SyncChange::ACTION_UPDATE) {
|
| @@ -1153,8 +1138,7 @@ syncer::SyncError TemplateURLService::ProcessSyncChanges(
|
| ResolveSyncKeywordConflict(turl.get(), existing_keyword_turl,
|
| &new_changes);
|
| }
|
| - UIThreadSearchTermsData search_terms_data(existing_turl->profile());
|
| - if (UpdateNoNotify(existing_turl, *turl, search_terms_data)) {
|
| + if (UpdateNoNotify(existing_turl, *turl, search_terms_data())) {
|
| NotifyObservers();
|
| MaybeUpdateDSEAfterSync(existing_turl);
|
| }
|
| @@ -1253,8 +1237,7 @@ syncer::SyncMergeResult TemplateURLService::MergeDataAndStartSyncing(
|
| // TemplateURLID and the TemplateURL may have to be reparsed. This
|
| // also makes the local data's last_modified timestamp equal to Sync's,
|
| // avoiding an Update on the next MergeData call.
|
| - UIThreadSearchTermsData search_terms_data(local_turl->profile());
|
| - if (UpdateNoNotify(local_turl, *sync_turl, search_terms_data))
|
| + if (UpdateNoNotify(local_turl, *sync_turl, search_terms_data()))
|
| NotifyObservers();
|
| merge_result.set_num_items_modified(
|
| merge_result.num_items_modified() + 1);
|
| @@ -1453,7 +1436,7 @@ TemplateURL* TemplateURLService::CreateTemplateURLFromTemplateURLAndSyncData(
|
| data.alternate_urls.push_back(specifics.alternate_urls(i));
|
| data.search_terms_replacement_key = specifics.search_terms_replacement_key();
|
|
|
| - TemplateURL* turl = new TemplateURL(profile, data);
|
| + TemplateURL* turl = new TemplateURL(data);
|
| UIThreadSearchTermsData search_terms_data(profile);
|
| // If this TemplateURL matches a built-in prepopulated template URL, it's
|
| // possible that sync is trying to modify fields that should not be touched.
|
| @@ -1561,7 +1544,7 @@ void TemplateURLService::Init(const Initializer* initializers,
|
| data.short_name = base::UTF8ToUTF16(initializers[i].content);
|
| data.SetKeyword(base::UTF8ToUTF16(initializers[i].keyword));
|
| data.SetURL(initializers[i].url);
|
| - TemplateURL* template_url = new TemplateURL(profile_, data);
|
| + TemplateURL* template_url = new TemplateURL(data);
|
| AddNoNotify(template_url, true);
|
|
|
| // Set the first provided identifier to be the default.
|
| @@ -1618,8 +1601,7 @@ void TemplateURLService::RemoveFromMaps(TemplateURL* template_url) {
|
| guid_to_template_map_.erase(template_url->sync_guid());
|
| // |provider_map_| is only initialized after loading has completed.
|
| if (loaded_) {
|
| - UIThreadSearchTermsData search_terms_data(template_url->profile());
|
| - provider_map_->Remove(template_url, search_terms_data);
|
| + provider_map_->Remove(template_url, search_terms_data());
|
| }
|
| }
|
|
|
| @@ -1829,7 +1811,7 @@ void TemplateURLService::UpdateTemplateURLIfPrepopulated(
|
| for (size_t i = 0; i < prepopulated_urls.size(); ++i) {
|
| if (prepopulated_urls[i]->prepopulate_id == prepopulate_id) {
|
| MergeIntoPrepopulatedEngineData(template_url, prepopulated_urls[i]);
|
| - template_url->CopyFrom(TemplateURL(profile, *prepopulated_urls[i]));
|
| + template_url->CopyFrom(TemplateURL(*prepopulated_urls[i]));
|
| }
|
| }
|
| }
|
| @@ -1912,7 +1894,7 @@ void TemplateURLService::GoogleBaseURLChanged(const GURL& old_base_url) {
|
| i != template_urls_.end(); ++i) {
|
| TemplateURL* t_url = *i;
|
| if (t_url->HasGoogleBaseURLs(search_terms_data())) {
|
| - TemplateURL updated_turl(t_url->profile(), t_url->data());
|
| + TemplateURL updated_turl(t_url->data());
|
| updated_turl.ResetKeywordIfNecessary(search_terms_data(), false);
|
| KeywordToTemplateMap::const_iterator existing_entry =
|
| keyword_to_template_map_.find(updated_turl.keyword());
|
| @@ -1934,7 +1916,7 @@ void TemplateURLService::GoogleBaseURLChanged(const GURL& old_base_url) {
|
| // need to reset the keyword to an appropriate local value when this
|
| // change arrives; see CreateTemplateURLFromTemplateURLAndSyncData().
|
| UpdateNoNotify(t_url, updated_turl,
|
| - OldBaseURLSearchTermsData(t_url->profile(), old_base_url.spec()));
|
| + OldBaseURLSearchTermsData(profile(), old_base_url.spec()));
|
| }
|
| }
|
| if (something_changed)
|
| @@ -1987,7 +1969,7 @@ bool TemplateURLService::ApplyDefaultSearchChangeNoMetrics(
|
| bool changed = TemplateURL::MatchesData(
|
| initial_default_search_provider_.get(), data, search_terms_data());
|
| initial_default_search_provider_.reset(
|
| - data ? new TemplateURL(profile_, *data) : NULL);
|
| + data ? new TemplateURL(*data) : NULL);
|
| default_search_provider_source_ = source;
|
| return changed;
|
| }
|
| @@ -2031,18 +2013,16 @@ bool TemplateURLService::ApplyDefaultSearchChangeNoMetrics(
|
| update_data.SetKeyword(default_search_provider_->keyword());
|
| update_data.short_name = default_search_provider_->short_name();
|
| }
|
| - UIThreadSearchTermsData search_terms_data(
|
| - default_search_provider_->profile());
|
| UpdateNoNotify(default_search_provider_,
|
| - TemplateURL(profile_, update_data),
|
| - search_terms_data);
|
| + TemplateURL(update_data),
|
| + search_terms_data());
|
| } else {
|
| // Normally the prepopulated fallback should be present in
|
| // |template_urls_|, but in a few cases it might not be:
|
| // (1) Tests that initialize the TemplateURLService in peculiar ways.
|
| // (2) If the user deleted the pre-populated default and we subsequently
|
| // lost their user-selected value.
|
| - TemplateURL* new_dse = new TemplateURL(profile_, *data);
|
| + TemplateURL* new_dse = new TemplateURL(*data);
|
| if (AddNoNotify(new_dse, true))
|
| default_search_provider_ = new_dse;
|
| }
|
| @@ -2055,14 +2035,12 @@ bool TemplateURLService::ApplyDefaultSearchChangeNoMetrics(
|
| TemplateURLData new_data(*data);
|
| new_data.show_in_default_list = true;
|
| if (default_search_provider_) {
|
| - UIThreadSearchTermsData search_terms_data(
|
| - default_search_provider_->profile());
|
| UpdateNoNotify(default_search_provider_,
|
| - TemplateURL(profile_, new_data),
|
| - search_terms_data);
|
| + TemplateURL(new_data),
|
| + search_terms_data());
|
| } else {
|
| new_data.id = kInvalidTemplateURLID;
|
| - TemplateURL* new_dse = new TemplateURL(profile_, new_data);
|
| + TemplateURL* new_dse = new TemplateURL(new_data);
|
| if (AddNoNotify(new_dse, true))
|
| default_search_provider_ = new_dse;
|
| }
|
| @@ -2213,8 +2191,7 @@ bool TemplateURLService::ResetTemplateURLNoNotify(
|
| }
|
| data.safe_for_autoreplace = false;
|
| data.last_modified = time_provider_();
|
| - UIThreadSearchTermsData search_terms_data(url->profile());
|
| - return UpdateNoNotify(url, TemplateURL(profile_, data), search_terms_data);
|
| + return UpdateNoNotify(url, TemplateURL(data), search_terms_data());
|
| }
|
|
|
| void TemplateURLService::NotifyObservers() {
|
| @@ -2272,7 +2249,7 @@ void TemplateURLService::UpdateProvidersCreatedByPolicy(
|
| if (new_data.sync_guid.empty())
|
| new_data.sync_guid = base::GenerateGUID();
|
| new_data.created_by_policy = true;
|
| - TemplateURL* new_dse = new TemplateURL(profile_, new_data);
|
| + TemplateURL* new_dse = new TemplateURL(new_data);
|
| if (AddNoNotify(new_dse, true))
|
| default_search_provider_ = new_dse;
|
| }
|
| @@ -2285,8 +2262,7 @@ void TemplateURLService::ResetTemplateURLGUID(TemplateURL* url,
|
|
|
| TemplateURLData data(url->data());
|
| data.sync_guid = guid;
|
| - UIThreadSearchTermsData search_terms_data(url->profile());
|
| - UpdateNoNotify(url, TemplateURL(profile_, data), search_terms_data);
|
| + UpdateNoNotify(url, TemplateURL(data), search_terms_data());
|
| }
|
|
|
| base::string16 TemplateURLService::UniquifyKeyword(const TemplateURL& turl,
|
| @@ -2357,9 +2333,8 @@ void TemplateURLService::ResolveSyncKeywordConflict(
|
| // Update |applied_sync_turl| in the local model with the new keyword.
|
| TemplateURLData data(applied_sync_turl->data());
|
| data.SetKeyword(new_keyword);
|
| - UIThreadSearchTermsData search_terms_data(applied_sync_turl->profile());
|
| if (UpdateNoNotify(
|
| - applied_sync_turl, TemplateURL(profile_, data), search_terms_data))
|
| + applied_sync_turl, TemplateURL(data), search_terms_data()))
|
| NotifyObservers();
|
| }
|
| // The losing TemplateURL should have their keyword updated. Send a change to
|
| @@ -2432,7 +2407,7 @@ void TemplateURLService::MergeInSyncTemplateURL(
|
| // Force the local ID to kInvalidTemplateURLID so we can add it.
|
| TemplateURLData data(sync_turl->data());
|
| data.id = kInvalidTemplateURLID;
|
| - TemplateURL* added = new TemplateURL(profile_, data);
|
| + TemplateURL* added = new TemplateURL(data);
|
| base::AutoReset<DefaultSearchChangeOrigin> change_origin(
|
| &dsp_change_origin_, DSP_CHANGE_SYNC_ADD);
|
| if (Add(added))
|
| @@ -2494,7 +2469,7 @@ TemplateURL* TemplateURLService::CreateTemplateURLForExtension(
|
| // ID, as well as forcing the TemplateURL to be treated as a search keyword.
|
| data.SetURL(std::string(extensions::kExtensionScheme) + "://" +
|
| extension_keyword.extension_id + "/?q={searchTerms}");
|
| - return new TemplateURL(profile_, data);
|
| + return new TemplateURL(data);
|
| }
|
|
|
| TemplateURL* TemplateURLService::FindTemplateURLForExtension(
|
|
|