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

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

Issue 7558014: Add a URL param to indicate group selection in Instant field trial. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Thread safe handling of Profiles Created 9 years, 4 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 #include "chrome/browser/search_engines/template_url_service.h" 5 #include "chrome/browser/search_engines/template_url_service.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/environment.h" 8 #include "base/environment.h"
9 #include "base/i18n/case_conversion.h" 9 #include "base/i18n/case_conversion.h"
10 #include "base/stl_util.h" 10 #include "base/stl_util.h"
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 182
183 // Remove leading "www.". 183 // Remove leading "www.".
184 result = net::StripWWW(result); 184 result = net::StripWWW(result);
185 185
186 // Remove trailing "/". 186 // Remove trailing "/".
187 return (result.length() > 0 && result[result.length() - 1] == '/') ? 187 return (result.length() > 0 && result[result.length() - 1] == '/') ?
188 result.substr(0, result.length() - 1) : result; 188 result.substr(0, result.length() - 1) : result;
189 } 189 }
190 190
191 // static 191 // static
192 GURL TemplateURLService::GenerateSearchURL(const TemplateURL* t_url) { 192 GURL TemplateURLService::GenerateSearchURL(const TemplateURL* t_url,
193 Profile* profile) {
Peter Kasting 2011/08/10 20:54:06 You don't actually need this, because none of the
193 DCHECK(t_url); 194 DCHECK(t_url);
194 UIThreadSearchTermsData search_terms_data; 195 UIThreadSearchTermsData search_terms_data(profile);
195 return GenerateSearchURLUsingTermsData(t_url, search_terms_data); 196 return GenerateSearchURLUsingTermsData(t_url, search_terms_data);
196 } 197 }
197 198
198 // static 199 // static
199 GURL TemplateURLService::GenerateSearchURLUsingTermsData( 200 GURL TemplateURLService::GenerateSearchURLUsingTermsData(
200 const TemplateURL* t_url, 201 const TemplateURL* t_url,
201 const SearchTermsData& search_terms_data) { 202 const SearchTermsData& search_terms_data) {
202 DCHECK(t_url); 203 DCHECK(t_url);
203 const TemplateURLRef* search_ref = t_url->url(); 204 const TemplateURLRef* search_ref = t_url->url();
204 // Extension keywords don't have host-based search URLs. 205 // Extension keywords don't have host-based search URLs.
(...skipping 502 matching lines...) Expand 10 before | Expand all | Expand 10 after
707 !CommandLine::ForCurrentProcess()->HasSwitch(switches::kChromeFrame)) 708 !CommandLine::ForCurrentProcess()->HasSwitch(switches::kChromeFrame))
708 GoogleURLTracker::RequestServerCheck(); 709 GoogleURLTracker::RequestServerCheck();
709 } 710 }
710 } 711 }
711 } 712 }
712 713
713 void TemplateURLService::RemoveFromMaps(const TemplateURL* template_url) { 714 void TemplateURLService::RemoveFromMaps(const TemplateURL* template_url) {
714 if (!template_url->keyword().empty()) 715 if (!template_url->keyword().empty())
715 keyword_to_template_map_.erase(template_url->keyword()); 716 keyword_to_template_map_.erase(template_url->keyword());
716 if (loaded_) 717 if (loaded_)
717 provider_map_.Remove(template_url); 718 provider_map_.Remove(template_url, profile_);
718 } 719 }
719 720
720 void TemplateURLService::RemoveFromKeywordMapByPointer( 721 void TemplateURLService::RemoveFromKeywordMapByPointer(
721 const TemplateURL* template_url) { 722 const TemplateURL* template_url) {
722 DCHECK(template_url); 723 DCHECK(template_url);
723 for (KeywordToTemplateMap::iterator i = keyword_to_template_map_.begin(); 724 for (KeywordToTemplateMap::iterator i = keyword_to_template_map_.begin();
724 i != keyword_to_template_map_.end(); ++i) { 725 i != keyword_to_template_map_.end(); ++i) {
725 if (i->second == template_url) { 726 if (i->second == template_url) {
726 keyword_to_template_map_.erase(i); 727 keyword_to_template_map_.erase(i);
727 // A given TemplateURL only occurs once in the map. As soon as we find the 728 // A given TemplateURL only occurs once in the map. As soon as we find the
728 // entry, stop. 729 // entry, stop.
729 break; 730 break;
730 } 731 }
731 } 732 }
732 } 733 }
733 734
734 void TemplateURLService::AddToMaps(const TemplateURL* template_url) { 735 void TemplateURLService::AddToMaps(const TemplateURL* template_url) {
735 if (!template_url->keyword().empty()) 736 if (!template_url->keyword().empty())
736 keyword_to_template_map_[template_url->keyword()] = template_url; 737 keyword_to_template_map_[template_url->keyword()] = template_url;
737 if (loaded_) { 738 if (loaded_) {
738 UIThreadSearchTermsData search_terms_data; 739 UIThreadSearchTermsData search_terms_data(profile_);
739 provider_map_.Add(template_url, search_terms_data); 740 provider_map_.Add(template_url, search_terms_data);
740 } 741 }
741 } 742 }
742 743
743 void TemplateURLService::SetTemplateURLs( 744 void TemplateURLService::SetTemplateURLs(
744 const std::vector<TemplateURL*>& urls) { 745 const std::vector<TemplateURL*>& urls) {
745 // Add mappings for the new items. 746 // Add mappings for the new items.
746 747
747 // First, add the items that already have id's, so that the next_id_ 748 // First, add the items that already have id's, so that the next_id_
748 // gets properly set. 749 // gets properly set.
(...skipping 13 matching lines...) Expand all
762 ++i) { 763 ++i) {
763 if ((*i)->id() != 0) 764 if ((*i)->id() != 0)
764 continue; 765 continue;
765 AddNoNotify(*i); 766 AddNoNotify(*i);
766 } 767 }
767 } 768 }
768 769
769 void TemplateURLService::ChangeToLoadedState() { 770 void TemplateURLService::ChangeToLoadedState() {
770 DCHECK(!loaded_); 771 DCHECK(!loaded_);
771 772
772 UIThreadSearchTermsData search_terms_data; 773 UIThreadSearchTermsData search_terms_data(profile_);
773 provider_map_.Init(template_urls_, search_terms_data); 774 provider_map_.Init(template_urls_, search_terms_data);
774 loaded_ = true; 775 loaded_ = true;
775 } 776 }
776 777
777 void TemplateURLService::NotifyLoaded() { 778 void TemplateURLService::NotifyLoaded() {
778 NotificationService::current()->Notify( 779 NotificationService::current()->Notify(
779 chrome::NOTIFICATION_TEMPLATE_URL_SERVICE_LOADED, 780 chrome::NOTIFICATION_TEMPLATE_URL_SERVICE_LOADED,
780 Source<TemplateURLService>(this), 781 Source<TemplateURLService>(this),
781 NotificationService::NoDetails()); 782 NotificationService::NoDetails());
782 783
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
928 const TemplateURL& new_values) { 929 const TemplateURL& new_values) {
929 DCHECK(loaded_); 930 DCHECK(loaded_);
930 DCHECK(existing_turl); 931 DCHECK(existing_turl);
931 DCHECK(find(template_urls_.begin(), template_urls_.end(), existing_turl) != 932 DCHECK(find(template_urls_.begin(), template_urls_.end(), existing_turl) !=
932 template_urls_.end()); 933 template_urls_.end());
933 934
934 if (!existing_turl->keyword().empty()) 935 if (!existing_turl->keyword().empty())
935 keyword_to_template_map_.erase(existing_turl->keyword()); 936 keyword_to_template_map_.erase(existing_turl->keyword());
936 937
937 // This call handles copying over the values (while retaining the id). 938 // This call handles copying over the values (while retaining the id).
938 UIThreadSearchTermsData search_terms_data; 939 UIThreadSearchTermsData search_terms_data(profile_);
939 provider_map_.Update(existing_turl, new_values, search_terms_data); 940 provider_map_.Update(existing_turl, new_values, search_terms_data, profile_);
940 941
941 if (!existing_turl->keyword().empty()) 942 if (!existing_turl->keyword().empty())
942 keyword_to_template_map_[existing_turl->keyword()] = existing_turl; 943 keyword_to_template_map_[existing_turl->keyword()] = existing_turl;
943 944
944 if (service_.get()) 945 if (service_.get())
945 service_->UpdateKeyword(*existing_turl); 946 service_->UpdateKeyword(*existing_turl);
946 947
947 if (default_search_provider_ == existing_turl) 948 if (default_search_provider_ == existing_turl)
948 SetDefaultSearchProviderNoNotify(existing_turl); 949 SetDefaultSearchProviderNoNotify(existing_turl);
949 } 950 }
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
1081 t_url->suggestions_url()->HasGoogleBaseURLs())) { 1082 t_url->suggestions_url()->HasGoogleBaseURLs())) {
1082 RemoveFromKeywordMapByPointer(t_url); 1083 RemoveFromKeywordMapByPointer(t_url);
1083 t_url->InvalidateCachedValues(); 1084 t_url->InvalidateCachedValues();
1084 if (!t_url->keyword().empty()) 1085 if (!t_url->keyword().empty())
1085 keyword_to_template_map_[t_url->keyword()] = t_url; 1086 keyword_to_template_map_[t_url->keyword()] = t_url;
1086 something_changed = true; 1087 something_changed = true;
1087 } 1088 }
1088 } 1089 }
1089 1090
1090 if (something_changed && loaded_) { 1091 if (something_changed && loaded_) {
1091 UIThreadSearchTermsData search_terms_data; 1092 UIThreadSearchTermsData search_terms_data(profile_);
1092 provider_map_.UpdateGoogleBaseURLs(search_terms_data); 1093 provider_map_.UpdateGoogleBaseURLs(search_terms_data);
1093 NotifyObservers(); 1094 NotifyObservers();
1094 } 1095 }
1095 } 1096 }
1096 1097
1097 void TemplateURLService::UpdateDefaultSearch() { 1098 void TemplateURLService::UpdateDefaultSearch() {
1098 if (!loaded_) { 1099 if (!loaded_) {
1099 // Set |initial_default_search_provider_| from the preferences. We use this 1100 // Set |initial_default_search_provider_| from the preferences. We use this
1100 // value for default search provider until the database has been loaded. 1101 // value for default search provider until the database has been loaded.
1101 if (!LoadDefaultSearchProviderFromPrefs(&initial_default_search_provider_, 1102 if (!LoadDefaultSearchProviderFromPrefs(&initial_default_search_provider_,
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
1323 1324
1324 i = template_urls->erase(i); 1325 i = template_urls->erase(i);
1325 if (service_.get()) 1326 if (service_.get())
1326 service_->RemoveKeyword(*template_url); 1327 service_->RemoveKeyword(*template_url);
1327 delete template_url; 1328 delete template_url;
1328 } else { 1329 } else {
1329 ++i; 1330 ++i;
1330 } 1331 }
1331 } 1332 }
1332 } 1333 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698