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

Side by Side Diff: chrome/browser/search/search.cc

Issue 2816383002: Remove non-const version of GetDefaultSearchProvider() and make all callers call the const version (Closed)
Patch Set: Fix unit test (the model was already loaded) Created 3 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 unified diff | Download patch
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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/search.h" 5 #include "chrome/browser/search/search.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/feature_list.h" 10 #include "base/feature_list.h"
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 // URL should not be used because it is blocked for a supervised user. 78 // URL should not be used because it is blocked for a supervised user.
79 NEW_TAB_URL_BLOCKED = 6, 79 NEW_TAB_URL_BLOCKED = 6,
80 80
81 NEW_TAB_URL_MAX 81 NEW_TAB_URL_MAX
82 }; 82 };
83 83
84 base::Feature kUseGoogleLocalNtp { 84 base::Feature kUseGoogleLocalNtp {
85 "UseGoogleLocalNtp", base::FEATURE_DISABLED_BY_DEFAULT 85 "UseGoogleLocalNtp", base::FEATURE_DISABLED_BY_DEFAULT
86 }; 86 };
87 87
88 TemplateURL* GetDefaultSearchProviderTemplateURL(Profile* profile) { 88 const TemplateURL* GetDefaultSearchProviderTemplateURL(Profile* profile) {
89 if (profile) { 89 if (profile) {
90 TemplateURLService* template_url_service = 90 TemplateURLService* template_url_service =
91 TemplateURLServiceFactory::GetForProfile(profile); 91 TemplateURLServiceFactory::GetForProfile(profile);
92 if (template_url_service) 92 if (template_url_service)
93 return template_url_service->GetDefaultSearchProvider(); 93 return template_url_service->GetDefaultSearchProvider();
94 } 94 }
95 return NULL; 95 return NULL;
96 } 96 }
97 97
98 bool DefaultSearchProviderIsGoogle(Profile* profile) { 98 bool DefaultSearchProviderIsGoogle(Profile* profile) {
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 if (!IsInstantExtendedAPIEnabled()) 134 if (!IsInstantExtendedAPIEnabled())
135 return false; 135 return false;
136 136
137 if (!url.is_valid()) 137 if (!url.is_valid())
138 return false; 138 return false;
139 139
140 const GURL new_tab_url(GetNewTabPageURL(profile)); 140 const GURL new_tab_url(GetNewTabPageURL(profile));
141 if (new_tab_url.is_valid() && MatchesOriginAndPath(url, new_tab_url)) 141 if (new_tab_url.is_valid() && MatchesOriginAndPath(url, new_tab_url))
142 return true; 142 return true;
143 143
144 TemplateURL* template_url = GetDefaultSearchProviderTemplateURL(profile); 144 const TemplateURL* template_url =
145 GetDefaultSearchProviderTemplateURL(profile);
145 if (!template_url) 146 if (!template_url)
146 return false; 147 return false;
147 148
148 if (!IsSuitableURLForInstant(url, template_url)) 149 if (!IsSuitableURLForInstant(url, template_url))
149 return false; 150 return false;
150 151
151 const TemplateURLRef& instant_url_ref = template_url->instant_url_ref(); 152 const TemplateURLRef& instant_url_ref = template_url->instant_url_ref();
152 UIThreadSearchTermsData search_terms_data(profile); 153 UIThreadSearchTermsData search_terms_data(profile);
153 const GURL instant_url = TemplateURLRefToGURL( 154 const GURL instant_url = TemplateURLRefToGURL(
154 instant_url_ref, search_terms_data, false, false); 155 instant_url_ref, search_terms_data, false, false);
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 NewTabURLDetails(const GURL& url, NewTabURLState state) 212 NewTabURLDetails(const GURL& url, NewTabURLState state)
212 : url(url), state(state) {} 213 : url(url), state(state) {}
213 214
214 static NewTabURLDetails ForProfile(Profile* profile) { 215 static NewTabURLDetails ForProfile(Profile* profile) {
215 const GURL local_url(chrome::kChromeSearchLocalNtpUrl); 216 const GURL local_url(chrome::kChromeSearchLocalNtpUrl);
216 217
217 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); 218 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
218 if (command_line->HasSwitch(switches::kForceLocalNtp)) 219 if (command_line->HasSwitch(switches::kForceLocalNtp))
219 return NewTabURLDetails(local_url, NEW_TAB_URL_VALID); 220 return NewTabURLDetails(local_url, NEW_TAB_URL_VALID);
220 221
221 TemplateURL* template_url = GetDefaultSearchProviderTemplateURL(profile); 222 const TemplateURL* template_url =
223 GetDefaultSearchProviderTemplateURL(profile);
222 if (!profile || !template_url) 224 if (!profile || !template_url)
223 return NewTabURLDetails(local_url, NEW_TAB_URL_BAD); 225 return NewTabURLDetails(local_url, NEW_TAB_URL_BAD);
224 226
225 GURL search_provider_url = TemplateURLRefToGURL( 227 GURL search_provider_url = TemplateURLRefToGURL(
226 template_url->new_tab_url_ref(), UIThreadSearchTermsData(profile), 228 template_url->new_tab_url_ref(), UIThreadSearchTermsData(profile),
227 false, false); 229 false, false);
228 230
229 if (ShouldShowLocalNewTab(search_provider_url, profile)) 231 if (ShouldShowLocalNewTab(search_provider_url, profile))
230 return NewTabURLDetails(local_url, NEW_TAB_URL_VALID); 232 return NewTabURLDetails(local_url, NEW_TAB_URL_VALID);
231 233
(...skipping 22 matching lines...) Expand all
254 // InstantSearchPrerenderer has the search query for the Instant search base 256 // InstantSearchPrerenderer has the search query for the Instant search base
255 // page. 257 // page.
256 InstantSearchPrerenderer* prerenderer = 258 InstantSearchPrerenderer* prerenderer =
257 InstantSearchPrerenderer::GetForProfile(profile); 259 InstantSearchPrerenderer::GetForProfile(profile);
258 // TODO(kmadhusu): Remove this CHECK after the investigation of 260 // TODO(kmadhusu): Remove this CHECK after the investigation of
259 // crbug.com/367204. 261 // crbug.com/367204.
260 CHECK(prerenderer); 262 CHECK(prerenderer);
261 return prerenderer->get_last_query(); 263 return prerenderer->get_last_query();
262 } 264 }
263 265
264 TemplateURL* template_url = GetDefaultSearchProviderTemplateURL(profile); 266 const TemplateURL* template_url =
267 GetDefaultSearchProviderTemplateURL(profile);
265 base::string16 search_terms; 268 base::string16 search_terms;
266 if (template_url) 269 if (template_url)
267 template_url->ExtractSearchTermsFromURL( 270 template_url->ExtractSearchTermsFromURL(
268 url, UIThreadSearchTermsData(profile), &search_terms); 271 url, UIThreadSearchTermsData(profile), &search_terms);
269 return search_terms; 272 return search_terms;
270 } 273 }
271 274
272 bool ShouldAssignURLToInstantRenderer(const GURL& url, Profile* profile) { 275 bool ShouldAssignURLToInstantRenderer(const GURL& url, Profile* profile) {
273 return url.is_valid() && 276 return url.is_valid() &&
274 profile && 277 profile &&
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 346
344 bool IsSuggestPrefEnabled(Profile* profile) { 347 bool IsSuggestPrefEnabled(Profile* profile) {
345 return profile && !profile->IsOffTheRecord() && profile->GetPrefs() && 348 return profile && !profile->IsOffTheRecord() && profile->GetPrefs() &&
346 profile->GetPrefs()->GetBoolean(prefs::kSearchSuggestEnabled); 349 profile->GetPrefs()->GetBoolean(prefs::kSearchSuggestEnabled);
347 } 350 }
348 351
349 GURL GetInstantURL(Profile* profile, bool force_instant_results) { 352 GURL GetInstantURL(Profile* profile, bool force_instant_results) {
350 if (!IsInstantExtendedAPIEnabled() || !IsSuggestPrefEnabled(profile)) 353 if (!IsInstantExtendedAPIEnabled() || !IsSuggestPrefEnabled(profile))
351 return GURL(); 354 return GURL();
352 355
353 TemplateURL* template_url = GetDefaultSearchProviderTemplateURL(profile); 356 const TemplateURL* template_url =
357 GetDefaultSearchProviderTemplateURL(profile);
354 if (!template_url) 358 if (!template_url)
355 return GURL(); 359 return GURL();
356 360
357 GURL instant_url = TemplateURLRefToGURL( 361 GURL instant_url = TemplateURLRefToGURL(
358 template_url->instant_url_ref(), UIThreadSearchTermsData(profile), 362 template_url->instant_url_ref(), UIThreadSearchTermsData(profile),
359 true, force_instant_results); 363 true, force_instant_results);
360 if (!instant_url.is_valid() || 364 if (!instant_url.is_valid() ||
361 !template_url->HasSearchTermsReplacementKey(instant_url)) 365 !template_url->HasSearchTermsReplacementKey(instant_url))
362 return GURL(); 366 return GURL();
363 367
364 // Extended mode requires HTTPS. Force it unless the base URL was overridden 368 // Extended mode requires HTTPS. Force it unless the base URL was overridden
365 // on the command line, in which case we allow HTTP (see comments on 369 // on the command line, in which case we allow HTTP (see comments on
366 // IsSuitableURLForInstant()). 370 // IsSuitableURLForInstant()).
367 if (!instant_url.SchemeIsCryptographic() && 371 if (!instant_url.SchemeIsCryptographic() &&
368 !google_util::StartsWithCommandLineGoogleBaseURL(instant_url)) { 372 !google_util::StartsWithCommandLineGoogleBaseURL(instant_url)) {
369 GURL::Replacements replacements; 373 GURL::Replacements replacements;
370 replacements.SetSchemeStr(url::kHttpsScheme); 374 replacements.SetSchemeStr(url::kHttpsScheme);
371 instant_url = instant_url.ReplaceComponents(replacements); 375 instant_url = instant_url.ReplaceComponents(replacements);
372 } 376 }
373 377
374 if (!IsURLAllowedForSupervisedUser(instant_url, profile)) 378 if (!IsURLAllowedForSupervisedUser(instant_url, profile))
375 return GURL(); 379 return GURL();
376 380
377 return instant_url; 381 return instant_url;
378 } 382 }
379 383
380 // Returns URLs associated with the default search engine for |profile|. 384 // Returns URLs associated with the default search engine for |profile|.
381 std::vector<GURL> GetSearchURLs(Profile* profile) { 385 std::vector<GURL> GetSearchURLs(Profile* profile) {
382 std::vector<GURL> result; 386 std::vector<GURL> result;
383 TemplateURL* template_url = GetDefaultSearchProviderTemplateURL(profile); 387 const TemplateURL* template_url =
388 GetDefaultSearchProviderTemplateURL(profile);
384 if (!template_url) 389 if (!template_url)
385 return result; 390 return result;
386 for (const TemplateURLRef& ref : template_url->url_refs()) { 391 for (const TemplateURLRef& ref : template_url->url_refs()) {
387 result.push_back(TemplateURLRefToGURL(ref, UIThreadSearchTermsData(profile), 392 result.push_back(TemplateURLRefToGURL(ref, UIThreadSearchTermsData(profile),
388 false, false)); 393 false, false));
389 } 394 }
390 return result; 395 return result;
391 } 396 }
392 397
393 GURL GetNewTabPageURL(Profile* profile) { 398 GURL GetNewTabPageURL(Profile* profile) {
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
458 463
459 if (IsInstantNTPURL(*url, profile)) { 464 if (IsInstantNTPURL(*url, profile)) {
460 *url = GURL(chrome::kChromeUINewTabURL); 465 *url = GURL(chrome::kChromeUINewTabURL);
461 return true; 466 return true;
462 } 467 }
463 468
464 return false; 469 return false;
465 } 470 }
466 471
467 } // namespace search 472 } // namespace search
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698