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

Side by Side Diff: components/search_engines/template_url_service.cc

Issue 2659353002: Fix TemplateUrl::MatchesData comparison of search_terms_replacement_key (reland) (Closed)
Patch Set: Fixed after review, round 5 Created 3 years, 10 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "components/search_engines/template_url_service.h" 5 #include "components/search_engines/template_url_service.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/auto_reset.h" 10 #include "base/auto_reset.h"
(...skipping 674 matching lines...) Expand 10 before | Expand all | Expand 10 after
685 // notified of the new (fallback-provided) value in 685 // notified of the new (fallback-provided) value in
686 // ClearUserSelectedDefaultSearchEngine() above. Since we are here, the 686 // ClearUserSelectedDefaultSearchEngine() above. Since we are here, the
687 // value was presumably originally a fallback value (which may have been 687 // value was presumably originally a fallback value (which may have been
688 // repaired). 688 // repaired).
689 DefaultSearchManager::Source source; 689 DefaultSearchManager::Source source;
690 const TemplateURLData* new_dse = 690 const TemplateURLData* new_dse =
691 default_search_manager_.GetDefaultSearchEngine(&source); 691 default_search_manager_.GetDefaultSearchEngine(&source);
692 // ApplyDefaultSearchChange will notify observers once it is done. 692 // ApplyDefaultSearchChange will notify observers once it is done.
693 ApplyDefaultSearchChange(new_dse, source); 693 ApplyDefaultSearchChange(new_dse, source);
694 } else { 694 } else {
695 // Set fallback engine as user selected, because repair is considered a user
696 // action and we are expected to sync new fallback engine to other devices.
697 const TemplateURLData* fallback_engine_data =
698 default_search_manager_.GetFallbackSearchEngine();
699 if (fallback_engine_data) {
700 TemplateURL* fallback_engine =
701 FindPrepopulatedTemplateURL(fallback_engine_data->prepopulate_id);
702 // We expect that fallback engine always exists after repair.
Peter Kasting 2017/02/16 00:12:11 Nit: Maybe: "The fallback engine is created from b
Alexander Yashkin 2017/02/16 07:26:30 Thanks, done.
703 DCHECK(fallback_engine);
704 // Write fallback engine guid to sync pref. This will also set fallback
705 // engine as new user selected in
706 // OnSyncedDefaultSearchProviderGUIDChanged.
Peter Kasting 2017/02/16 00:12:11 Nit: Maybe: "Write the fallback engine's GUID to p
Alexander Yashkin 2017/02/16 07:26:30 Thanks done.
707 prefs_->SetString(prefs::kSyncedDefaultSearchProviderGUID,
708 fallback_engine->sync_guid());
709 }
695 NotifyObservers(); 710 NotifyObservers();
696 } 711 }
697 } 712 }
698 713
699 void TemplateURLService::AddObserver(TemplateURLServiceObserver* observer) { 714 void TemplateURLService::AddObserver(TemplateURLServiceObserver* observer) {
700 model_observers_.AddObserver(observer); 715 model_observers_.AddObserver(observer);
701 } 716 }
702 717
703 void TemplateURLService::RemoveObserver(TemplateURLServiceObserver* observer) { 718 void TemplateURLService::RemoveObserver(TemplateURLServiceObserver* observer) {
704 model_observers_.RemoveObserver(observer); 719 model_observers_.RemoveObserver(observer);
(...skipping 679 matching lines...) Expand 10 before | Expand all | Expand 10 after
1384 if (prefs_) { 1399 if (prefs_) {
1385 pref_change_registrar_.Init(prefs_); 1400 pref_change_registrar_.Init(prefs_);
1386 pref_change_registrar_.Add( 1401 pref_change_registrar_.Add(
1387 prefs::kSyncedDefaultSearchProviderGUID, 1402 prefs::kSyncedDefaultSearchProviderGUID,
1388 base::Bind( 1403 base::Bind(
1389 &TemplateURLService::OnSyncedDefaultSearchProviderGUIDChanged, 1404 &TemplateURLService::OnSyncedDefaultSearchProviderGUIDChanged,
1390 base::Unretained(this))); 1405 base::Unretained(this)));
1391 } 1406 }
1392 1407
1393 DefaultSearchManager::Source source = DefaultSearchManager::FROM_USER; 1408 DefaultSearchManager::Source source = DefaultSearchManager::FROM_USER;
1394 TemplateURLData* dse = 1409 const TemplateURLData* dse =
1395 default_search_manager_.GetDefaultSearchEngine(&source); 1410 default_search_manager_.GetDefaultSearchEngine(&source);
1396 ApplyDefaultSearchChange(dse, source); 1411 ApplyDefaultSearchChange(dse, source);
1397 1412
1398 if (num_initializers > 0) { 1413 if (num_initializers > 0) {
1399 // This path is only hit by test code and is used to simulate a loaded 1414 // This path is only hit by test code and is used to simulate a loaded
1400 // TemplateURLService. 1415 // TemplateURLService.
1401 ChangeToLoadedState(); 1416 ChangeToLoadedState();
1402 1417
1403 // Add specific initializers, if any. 1418 // Add specific initializers, if any.
1404 KeywordWebDataService::BatchModeScoper scoper(web_data_service_.get()); 1419 KeywordWebDataService::BatchModeScoper scoper(web_data_service_.get());
(...skipping 525 matching lines...) Expand 10 before | Expand all | Expand 10 after
1930 KeywordWebDataService::BatchModeScoper scoper(web_data_service_.get()); 1945 KeywordWebDataService::BatchModeScoper scoper(web_data_service_.get());
1931 if (default_search_provider_source_ == DefaultSearchManager::FROM_POLICY || 1946 if (default_search_provider_source_ == DefaultSearchManager::FROM_POLICY ||
1932 source == DefaultSearchManager::FROM_POLICY) { 1947 source == DefaultSearchManager::FROM_POLICY) {
1933 // We do this both to remove any no-longer-applicable policy-defined DSE as 1948 // We do this both to remove any no-longer-applicable policy-defined DSE as
1934 // well as to add the new one, if appropriate. 1949 // well as to add the new one, if appropriate.
1935 UpdateProvidersCreatedByPolicy( 1950 UpdateProvidersCreatedByPolicy(
1936 &template_urls_, 1951 &template_urls_,
1937 source == DefaultSearchManager::FROM_POLICY ? data : nullptr); 1952 source == DefaultSearchManager::FROM_POLICY ? data : nullptr);
1938 } 1953 }
1939 1954
1955 // |default_search_provider_source_| must be set before calling
1956 // UpdateNoNotify(), since that function needs to know the source of the
1957 // update in question.
1958 default_search_provider_source_ = source;
1959
1940 if (!data) { 1960 if (!data) {
1941 default_search_provider_ = nullptr; 1961 default_search_provider_ = nullptr;
1942 } else if (source == DefaultSearchManager::FROM_EXTENSION) { 1962 } else if (source == DefaultSearchManager::FROM_EXTENSION) {
1943 default_search_provider_ = FindMatchingExtensionTemplateURL( 1963 default_search_provider_ = FindMatchingExtensionTemplateURL(
1944 *data, TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); 1964 *data, TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION);
1945 } else if (source == DefaultSearchManager::FROM_FALLBACK) { 1965 } else if (source == DefaultSearchManager::FROM_FALLBACK) {
1946 default_search_provider_ = 1966 default_search_provider_ =
1947 FindPrepopulatedTemplateURL(data->prepopulate_id); 1967 FindPrepopulatedTemplateURL(data->prepopulate_id);
1948 if (default_search_provider_) { 1968 if (default_search_provider_) {
1949 TemplateURLData update_data(*data); 1969 TemplateURLData update_data(*data);
(...skipping 30 matching lines...) Expand all
1980 std::unique_ptr<TemplateURL> new_dse_ptr = 2000 std::unique_ptr<TemplateURL> new_dse_ptr =
1981 base::MakeUnique<TemplateURL>(new_data); 2001 base::MakeUnique<TemplateURL>(new_data);
1982 TemplateURL* new_dse = new_dse_ptr.get(); 2002 TemplateURL* new_dse = new_dse_ptr.get();
1983 if (AddNoNotify(std::move(new_dse_ptr), true)) 2003 if (AddNoNotify(std::move(new_dse_ptr), true))
1984 default_search_provider_ = new_dse; 2004 default_search_provider_ = new_dse;
1985 } 2005 }
1986 if (default_search_provider_ && prefs_) { 2006 if (default_search_provider_ && prefs_) {
1987 prefs_->SetString(prefs::kSyncedDefaultSearchProviderGUID, 2007 prefs_->SetString(prefs::kSyncedDefaultSearchProviderGUID,
1988 default_search_provider_->sync_guid()); 2008 default_search_provider_->sync_guid());
1989 } 2009 }
1990
1991 } 2010 }
1992 2011
1993 default_search_provider_source_ = source;
1994
1995 bool changed = default_search_provider_ != previous_default_search_engine; 2012 bool changed = default_search_provider_ != previous_default_search_engine;
1996 if (changed) 2013 if (changed)
1997 RequestGoogleURLTrackerServerCheckIfNecessary(); 2014 RequestGoogleURLTrackerServerCheckIfNecessary();
1998 2015
1999 NotifyObservers(); 2016 NotifyObservers();
2000 2017
2001 return changed; 2018 return changed;
2002 } 2019 }
2003 2020
2004 TemplateURL* TemplateURLService::AddNoNotify( 2021 TemplateURL* TemplateURLService::AddNoNotify(
(...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after
2477 2494
2478 if (most_recently_intalled_default) { 2495 if (most_recently_intalled_default) {
2479 base::AutoReset<DefaultSearchChangeOrigin> change_origin( 2496 base::AutoReset<DefaultSearchChangeOrigin> change_origin(
2480 &dsp_change_origin_, DSP_CHANGE_OVERRIDE_SETTINGS_EXTENSION); 2497 &dsp_change_origin_, DSP_CHANGE_OVERRIDE_SETTINGS_EXTENSION);
2481 default_search_manager_.SetExtensionControlledDefaultSearchEngine( 2498 default_search_manager_.SetExtensionControlledDefaultSearchEngine(
2482 most_recently_intalled_default->data()); 2499 most_recently_intalled_default->data());
2483 } else { 2500 } else {
2484 default_search_manager_.ClearExtensionControlledDefaultSearchEngine(); 2501 default_search_manager_.ClearExtensionControlledDefaultSearchEngine();
2485 } 2502 }
2486 } 2503 }
OLDNEW
« no previous file with comments | « components/search_engines/template_url.cc ('k') | components/search_engines/template_url_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698