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

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

Issue 2479113002: Make extensions DSE persistent in browser prefs (Closed)
Patch Set: Created 4 years, 1 month 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 2442 matching lines...) Expand 10 before | Expand all | Expand 10 after
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698