| OLD | NEW |
| 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 2442 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2453 DCHECK_NE(TemplateURL::NORMAL, type); | 2453 DCHECK_NE(TemplateURL::NORMAL, type); |
| 2454 for (const auto& turl : template_urls_) { | 2454 for (const auto& turl : template_urls_) { |
| 2455 if (turl->type() == type && | 2455 if (turl->type() == type && |
| 2456 TemplateURL::MatchesData(turl.get(), &data, search_terms_data())) | 2456 TemplateURL::MatchesData(turl.get(), &data, search_terms_data())) |
| 2457 return turl.get(); | 2457 return turl.get(); |
| 2458 } | 2458 } |
| 2459 return nullptr; | 2459 return nullptr; |
| 2460 } | 2460 } |
| 2461 | 2461 |
| 2462 void TemplateURLService::UpdateExtensionDefaultSearchEngine() { | 2462 void TemplateURLService::UpdateExtensionDefaultSearchEngine() { |
| 2463 TemplateURL* most_recently_intalled_default = nullptr; | 2463 TemplateURL* most_recently_installed_default = nullptr; |
| 2464 for (const auto& turl : template_urls_) { | 2464 for (const auto& turl : template_urls_) { |
| 2465 if ((turl->type() == TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION) && | 2465 if ((turl->type() == TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION) && |
| 2466 turl->extension_info_->wants_to_be_default_engine && | 2466 turl->extension_info_->wants_to_be_default_engine && |
| 2467 turl->SupportsReplacement(search_terms_data()) && | 2467 turl->SupportsReplacement(search_terms_data()) && |
| 2468 (!most_recently_intalled_default || | 2468 (!most_recently_installed_default || |
| 2469 (most_recently_intalled_default->extension_info_->install_time < | 2469 (most_recently_installed_default->extension_info_->install_time < |
| 2470 turl->extension_info_->install_time))) | 2470 turl->extension_info_->install_time))) |
| 2471 most_recently_intalled_default = turl.get(); | 2471 most_recently_installed_default = turl.get(); |
| 2472 } | 2472 } |
| 2473 | 2473 |
| 2474 if (most_recently_intalled_default) { | 2474 if (most_recently_installed_default) { |
| 2475 base::AutoReset<DefaultSearchChangeOrigin> change_origin( | 2475 base::AutoReset<DefaultSearchChangeOrigin> change_origin( |
| 2476 &dsp_change_origin_, DSP_CHANGE_OVERRIDE_SETTINGS_EXTENSION); | 2476 &dsp_change_origin_, DSP_CHANGE_OVERRIDE_SETTINGS_EXTENSION); |
| 2477 default_search_manager_.SetExtensionControlledDefaultSearchEngine( | 2477 // Store extension TURL data to default search pref. Default search manager |
| 2478 most_recently_intalled_default->data()); | 2478 // listens to pref changes and will update current default search. |
| 2479 } else { | 2479 std::unique_ptr<base::Value> url_dict( |
| 2480 default_search_manager_.ClearExtensionControlledDefaultSearchEngine(); | 2480 TemplateUrlDataToDictionary(most_recently_installed_default->data())); |
| 2481 client_->SetExtensionControlledPref( |
| 2482 most_recently_installed_default->extension_info_->extension_id, |
| 2483 DefaultSearchManager::kDefaultSearchProviderDataPrefName, |
| 2484 std::move(url_dict)); |
| 2481 } | 2485 } |
| 2482 } | 2486 } |
| OLD | NEW |