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

Side by Side Diff: chrome/browser/search_engines/template_url_service.cc

Issue 11552020: Add search_terms_replacement_key field to TemplateURL. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merged with protector removal Created 8 years 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 #include "chrome/browser/search_engines/template_url_service.h" 5 #include "chrome/browser/search_engines/template_url_service.h"
6 6
7 #include "base/auto_reset.h" 7 #include "base/auto_reset.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/environment.h" 10 #include "base/environment.h"
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 return (url1 != NULL) && (url2 != NULL) && 73 return (url1 != NULL) && (url2 != NULL) &&
74 (url1->short_name() == url2->short_name()) && 74 (url1->short_name() == url2->short_name()) &&
75 url1->HasSameKeywordAs(*url2) && 75 url1->HasSameKeywordAs(*url2) &&
76 (url1->url() == url2->url()) && 76 (url1->url() == url2->url()) &&
77 (url1->suggestions_url() == url2->suggestions_url()) && 77 (url1->suggestions_url() == url2->suggestions_url()) &&
78 (url1->instant_url() == url2->instant_url()) && 78 (url1->instant_url() == url2->instant_url()) &&
79 (url1->favicon_url() == url2->favicon_url()) && 79 (url1->favicon_url() == url2->favicon_url()) &&
80 (url1->safe_for_autoreplace() == url2->safe_for_autoreplace()) && 80 (url1->safe_for_autoreplace() == url2->safe_for_autoreplace()) &&
81 (url1->show_in_default_list() == url2->show_in_default_list()) && 81 (url1->show_in_default_list() == url2->show_in_default_list()) &&
82 (url1->input_encodings() == url2->input_encodings()) && 82 (url1->input_encodings() == url2->input_encodings()) &&
83 (url1->alternate_urls() == url2->alternate_urls()); 83 (url1->alternate_urls() == url2->alternate_urls()) &&
84 (url1->search_terms_replacement_key() ==
85 url2->search_terms_replacement_key());
84 } 86 }
85 87
86 const char kFirstPotentialEngineHistogramName[] = 88 const char kFirstPotentialEngineHistogramName[] =
87 "Search.FirstPotentialEngineCalled"; 89 "Search.FirstPotentialEngineCalled";
88 90
89 // Values for an enumerated histogram used to track whenever 91 // Values for an enumerated histogram used to track whenever
90 // FirstPotentialDefaultEngine is called, and from where. 92 // FirstPotentialDefaultEngine is called, and from where.
91 enum FirstPotentialEngineCaller { 93 enum FirstPotentialEngineCaller {
92 FIRST_POTENTIAL_CALLSITE_FIND_NEW_DSP, 94 FIRST_POTENTIAL_CALLSITE_FIND_NEW_DSP,
93 FIRST_POTENTIAL_CALLSITE_FIND_NEW_DSP_PROCESSING_SYNC_CHANGES, 95 FIRST_POTENTIAL_CALLSITE_FIND_NEW_DSP_PROCESSING_SYNC_CHANGES,
(...skipping 1145 matching lines...) Expand 10 before | Expand all | Expand 10 after
1239 se_specifics->set_date_created(turl.date_created().ToInternalValue()); 1241 se_specifics->set_date_created(turl.date_created().ToInternalValue());
1240 se_specifics->set_input_encodings(JoinString(turl.input_encodings(), ';')); 1242 se_specifics->set_input_encodings(JoinString(turl.input_encodings(), ';'));
1241 se_specifics->set_show_in_default_list(turl.show_in_default_list()); 1243 se_specifics->set_show_in_default_list(turl.show_in_default_list());
1242 se_specifics->set_suggestions_url(turl.suggestions_url()); 1244 se_specifics->set_suggestions_url(turl.suggestions_url());
1243 se_specifics->set_prepopulate_id(turl.prepopulate_id()); 1245 se_specifics->set_prepopulate_id(turl.prepopulate_id());
1244 se_specifics->set_instant_url(turl.instant_url()); 1246 se_specifics->set_instant_url(turl.instant_url());
1245 se_specifics->set_last_modified(turl.last_modified().ToInternalValue()); 1247 se_specifics->set_last_modified(turl.last_modified().ToInternalValue());
1246 se_specifics->set_sync_guid(turl.sync_guid()); 1248 se_specifics->set_sync_guid(turl.sync_guid());
1247 for (size_t i = 0; i < turl.alternate_urls().size(); ++i) 1249 for (size_t i = 0; i < turl.alternate_urls().size(); ++i)
1248 se_specifics->add_alternate_urls(turl.alternate_urls()[i]); 1250 se_specifics->add_alternate_urls(turl.alternate_urls()[i]);
1251 se_specifics->set_search_terms_replacement_key(
1252 turl.search_terms_replacement_key());
1249 1253
1250 return syncer::SyncData::CreateLocalData(se_specifics->sync_guid(), 1254 return syncer::SyncData::CreateLocalData(se_specifics->sync_guid(),
1251 se_specifics->keyword(), 1255 se_specifics->keyword(),
1252 specifics); 1256 specifics);
1253 } 1257 }
1254 1258
1255 // static 1259 // static
1256 TemplateURL* TemplateURLService::CreateTemplateURLFromTemplateURLAndSyncData( 1260 TemplateURL* TemplateURLService::CreateTemplateURLFromTemplateURLAndSyncData(
1257 Profile* profile, 1261 Profile* profile,
1258 TemplateURL* existing_turl, 1262 TemplateURL* existing_turl,
1259 const syncer::SyncData& sync_data, 1263 const syncer::SyncData& sync_data,
1260 syncer::SyncChangeList* change_list) { 1264 syncer::SyncChangeList* change_list) {
1261 DCHECK(change_list); 1265 DCHECK(change_list);
1262 1266
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1302 // GetSearchProvidersUsingKeywordResult(), since otherwise we'd never correct 1306 // GetSearchProvidersUsingKeywordResult(), since otherwise we'd never correct
1303 // local problems for clients which have disabled search engine sync. 1307 // local problems for clients which have disabled search engine sync.
1304 bool deduped = DeDupeEncodings(&data.input_encodings); 1308 bool deduped = DeDupeEncodings(&data.input_encodings);
1305 data.date_created = base::Time::FromInternalValue(specifics.date_created()); 1309 data.date_created = base::Time::FromInternalValue(specifics.date_created());
1306 data.last_modified = base::Time::FromInternalValue(specifics.last_modified()); 1310 data.last_modified = base::Time::FromInternalValue(specifics.last_modified());
1307 data.prepopulate_id = specifics.prepopulate_id(); 1311 data.prepopulate_id = specifics.prepopulate_id();
1308 data.sync_guid = specifics.sync_guid(); 1312 data.sync_guid = specifics.sync_guid();
1309 data.alternate_urls.clear(); 1313 data.alternate_urls.clear();
1310 for (int i = 0; i < specifics.alternate_urls_size(); ++i) 1314 for (int i = 0; i < specifics.alternate_urls_size(); ++i)
1311 data.alternate_urls.push_back(specifics.alternate_urls(i)); 1315 data.alternate_urls.push_back(specifics.alternate_urls(i));
1316 data.search_terms_replacement_key = specifics.search_terms_replacement_key();
1312 1317
1313 TemplateURL* turl = new TemplateURL(profile, data); 1318 TemplateURL* turl = new TemplateURL(profile, data);
1314 DCHECK(!turl->IsExtensionKeyword()); 1319 DCHECK(!turl->IsExtensionKeyword());
1315 if (reset_keyword || deduped) { 1320 if (reset_keyword || deduped) {
1316 if (reset_keyword) 1321 if (reset_keyword)
1317 turl->ResetKeywordIfNecessary(true); 1322 turl->ResetKeywordIfNecessary(true);
1318 syncer::SyncData sync_data = CreateSyncDataFromTemplateURL(*turl); 1323 syncer::SyncData sync_data = CreateSyncDataFromTemplateURL(*turl);
1319 change_list->push_back( 1324 change_list->push_back(
1320 syncer::SyncChange(FROM_HERE, 1325 syncer::SyncChange(FROM_HERE,
1321 syncer::SyncChange::ACTION_UPDATE, 1326 syncer::SyncChange::ACTION_UPDATE,
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
1565 std::string search_url; 1570 std::string search_url;
1566 std::string suggest_url; 1571 std::string suggest_url;
1567 std::string instant_url; 1572 std::string instant_url;
1568 std::string icon_url; 1573 std::string icon_url;
1569 std::string encodings; 1574 std::string encodings;
1570 std::string short_name; 1575 std::string short_name;
1571 std::string keyword; 1576 std::string keyword;
1572 std::string id_string; 1577 std::string id_string;
1573 std::string prepopulate_id; 1578 std::string prepopulate_id;
1574 ListValue alternate_urls; 1579 ListValue alternate_urls;
1580 std::string search_terms_replacement_key;
1575 if (t_url) { 1581 if (t_url) {
1576 DCHECK(!t_url->IsExtensionKeyword()); 1582 DCHECK(!t_url->IsExtensionKeyword());
1577 enabled = true; 1583 enabled = true;
1578 search_url = t_url->url(); 1584 search_url = t_url->url();
1579 suggest_url = t_url->suggestions_url(); 1585 suggest_url = t_url->suggestions_url();
1580 instant_url = t_url->instant_url(); 1586 instant_url = t_url->instant_url();
1581 GURL icon_gurl = t_url->favicon_url(); 1587 GURL icon_gurl = t_url->favicon_url();
1582 if (!icon_gurl.is_empty()) 1588 if (!icon_gurl.is_empty())
1583 icon_url = icon_gurl.spec(); 1589 icon_url = icon_gurl.spec();
1584 encodings = JoinString(t_url->input_encodings(), ';'); 1590 encodings = JoinString(t_url->input_encodings(), ';');
1585 short_name = UTF16ToUTF8(t_url->short_name()); 1591 short_name = UTF16ToUTF8(t_url->short_name());
1586 keyword = UTF16ToUTF8(t_url->keyword()); 1592 keyword = UTF16ToUTF8(t_url->keyword());
1587 id_string = base::Int64ToString(t_url->id()); 1593 id_string = base::Int64ToString(t_url->id());
1588 prepopulate_id = base::Int64ToString(t_url->prepopulate_id()); 1594 prepopulate_id = base::Int64ToString(t_url->prepopulate_id());
1589 for (size_t i = 0; i < t_url->alternate_urls().size(); ++i) 1595 for (size_t i = 0; i < t_url->alternate_urls().size(); ++i)
1590 alternate_urls.AppendString(t_url->alternate_urls()[i]); 1596 alternate_urls.AppendString(t_url->alternate_urls()[i]);
1597 search_terms_replacement_key = t_url->search_terms_replacement_key();
1591 } 1598 }
1592 prefs->SetBoolean(prefs::kDefaultSearchProviderEnabled, enabled); 1599 prefs->SetBoolean(prefs::kDefaultSearchProviderEnabled, enabled);
1593 prefs->SetString(prefs::kDefaultSearchProviderSearchURL, search_url); 1600 prefs->SetString(prefs::kDefaultSearchProviderSearchURL, search_url);
1594 prefs->SetString(prefs::kDefaultSearchProviderSuggestURL, suggest_url); 1601 prefs->SetString(prefs::kDefaultSearchProviderSuggestURL, suggest_url);
1595 prefs->SetString(prefs::kDefaultSearchProviderInstantURL, instant_url); 1602 prefs->SetString(prefs::kDefaultSearchProviderInstantURL, instant_url);
1596 prefs->SetString(prefs::kDefaultSearchProviderIconURL, icon_url); 1603 prefs->SetString(prefs::kDefaultSearchProviderIconURL, icon_url);
1597 prefs->SetString(prefs::kDefaultSearchProviderEncodings, encodings); 1604 prefs->SetString(prefs::kDefaultSearchProviderEncodings, encodings);
1598 prefs->SetString(prefs::kDefaultSearchProviderName, short_name); 1605 prefs->SetString(prefs::kDefaultSearchProviderName, short_name);
1599 prefs->SetString(prefs::kDefaultSearchProviderKeyword, keyword); 1606 prefs->SetString(prefs::kDefaultSearchProviderKeyword, keyword);
1600 prefs->SetString(prefs::kDefaultSearchProviderID, id_string); 1607 prefs->SetString(prefs::kDefaultSearchProviderID, id_string);
1601 prefs->SetString(prefs::kDefaultSearchProviderPrepopulateID, prepopulate_id); 1608 prefs->SetString(prefs::kDefaultSearchProviderPrepopulateID, prepopulate_id);
1602 prefs->Set(prefs::kDefaultSearchProviderAlternateURLs, alternate_urls); 1609 prefs->Set(prefs::kDefaultSearchProviderAlternateURLs, alternate_urls);
1610 prefs->SetString(prefs::kDefaultSearchProviderSearchTermsReplacementKey,
1611 search_terms_replacement_key);
1603 } 1612 }
1604 1613
1605 bool TemplateURLService::LoadDefaultSearchProviderFromPrefs( 1614 bool TemplateURLService::LoadDefaultSearchProviderFromPrefs(
1606 scoped_ptr<TemplateURL>* default_provider, 1615 scoped_ptr<TemplateURL>* default_provider,
1607 bool* is_managed) { 1616 bool* is_managed) {
1608 PrefService* prefs = GetPrefs(); 1617 PrefService* prefs = GetPrefs();
1609 if (!prefs || !prefs->HasPrefPath(prefs::kDefaultSearchProviderSearchURL)) 1618 if (!prefs || !prefs->HasPrefPath(prefs::kDefaultSearchProviderSearchURL))
1610 return false; 1619 return false;
1611 1620
1612 const PrefService::Preference* pref = 1621 const PrefService::Preference* pref =
(...skipping 30 matching lines...) Expand all
1643 prefs->GetString(prefs::kDefaultSearchProviderInstantURL); 1652 prefs->GetString(prefs::kDefaultSearchProviderInstantURL);
1644 std::string icon_url = 1653 std::string icon_url =
1645 prefs->GetString(prefs::kDefaultSearchProviderIconURL); 1654 prefs->GetString(prefs::kDefaultSearchProviderIconURL);
1646 std::string encodings = 1655 std::string encodings =
1647 prefs->GetString(prefs::kDefaultSearchProviderEncodings); 1656 prefs->GetString(prefs::kDefaultSearchProviderEncodings);
1648 std::string id_string = prefs->GetString(prefs::kDefaultSearchProviderID); 1657 std::string id_string = prefs->GetString(prefs::kDefaultSearchProviderID);
1649 std::string prepopulate_id = 1658 std::string prepopulate_id =
1650 prefs->GetString(prefs::kDefaultSearchProviderPrepopulateID); 1659 prefs->GetString(prefs::kDefaultSearchProviderPrepopulateID);
1651 const ListValue* alternate_urls = 1660 const ListValue* alternate_urls =
1652 prefs->GetList(prefs::kDefaultSearchProviderAlternateURLs); 1661 prefs->GetList(prefs::kDefaultSearchProviderAlternateURLs);
1662 std::string search_terms_replacement_key = prefs->GetString(
1663 prefs::kDefaultSearchProviderSearchTermsReplacementKey);
1653 1664
1654 TemplateURLData data; 1665 TemplateURLData data;
1655 data.short_name = name; 1666 data.short_name = name;
1656 data.SetKeyword(keyword); 1667 data.SetKeyword(keyword);
1657 data.SetURL(search_url); 1668 data.SetURL(search_url);
1658 data.suggestions_url = suggest_url; 1669 data.suggestions_url = suggest_url;
1659 data.instant_url = instant_url; 1670 data.instant_url = instant_url;
1660 data.favicon_url = GURL(icon_url); 1671 data.favicon_url = GURL(icon_url);
1661 data.show_in_default_list = true; 1672 data.show_in_default_list = true;
1662 data.alternate_urls.clear(); 1673 data.alternate_urls.clear();
1663 for (size_t i = 0; i < alternate_urls->GetSize(); ++i) { 1674 for (size_t i = 0; i < alternate_urls->GetSize(); ++i) {
1664 std::string alternate_url; 1675 std::string alternate_url;
1665 if (alternate_urls->GetString(i, &alternate_url)) 1676 if (alternate_urls->GetString(i, &alternate_url))
1666 data.alternate_urls.push_back(alternate_url); 1677 data.alternate_urls.push_back(alternate_url);
1667 } 1678 }
1679 data.search_terms_replacement_key = search_terms_replacement_key;
1668 base::SplitString(encodings, ';', &data.input_encodings); 1680 base::SplitString(encodings, ';', &data.input_encodings);
1669 if (!id_string.empty() && !*is_managed) { 1681 if (!id_string.empty() && !*is_managed) {
1670 int64 value; 1682 int64 value;
1671 base::StringToInt64(id_string, &value); 1683 base::StringToInt64(id_string, &value);
1672 data.id = value; 1684 data.id = value;
1673 } 1685 }
1674 if (!prepopulate_id.empty() && !*is_managed) { 1686 if (!prepopulate_id.empty() && !*is_managed) {
1675 int value; 1687 int value;
1676 base::StringToInt(prepopulate_id, &value); 1688 base::StringToInt(prepopulate_id, &value);
1677 data.prepopulate_id = value; 1689 data.prepopulate_id = value;
(...skipping 809 matching lines...) Expand 10 before | Expand all | Expand 10 after
2487 // TODO(mpcomplete): If we allow editing extension keywords, then those 2499 // TODO(mpcomplete): If we allow editing extension keywords, then those
2488 // should be persisted to disk and synced. 2500 // should be persisted to disk and synced.
2489 if (template_url->sync_guid().empty() && 2501 if (template_url->sync_guid().empty() &&
2490 !template_url->IsExtensionKeyword()) { 2502 !template_url->IsExtensionKeyword()) {
2491 template_url->data_.sync_guid = base::GenerateGUID(); 2503 template_url->data_.sync_guid = base::GenerateGUID();
2492 if (service_.get()) 2504 if (service_.get())
2493 service_->UpdateKeyword(template_url->data()); 2505 service_->UpdateKeyword(template_url->data());
2494 } 2506 }
2495 } 2507 }
2496 } 2508 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698