#include "components/search_engines/default_search_manager.h"
#include <stddef.h>
#include <stdint.h>
#include <memory>
#include <string_view>
#include <utility>
#include "base/check.h"
#include "base/compiler_specific.h"
#include "base/feature_list.h"
#include "base/functional/bind.h"
#include "base/functional/callback_helpers.h"
#include "base/i18n/case_conversion.h"
#include "base/metrics/histogram_functions.h"
#include "base/ranges/algorithm.h"
#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "base/time/time.h"
#include "build/chromeos_buildflags.h"
#include "components/pref_registry/pref_registry_syncable.h"
#include "components/prefs/pref_service.h"
#include "components/prefs/pref_value_map.h"
#include "components/search_engines/search_engine_type.h"
#include "components/search_engines/search_engines_pref_names.h"
#include "components/search_engines/search_engines_switches.h"
#include "components/search_engines/template_url_data.h"
#include "components/search_engines/template_url_data_util.h"
#include "components/search_engines/template_url_id.h"
#include "components/search_engines/template_url_prepopulate_data.h"
#if BUILDFLAG(IS_CHROMEOS_LACROS)
#include "chromeos/crosapi/mojom/prefs.mojom.h"
#include "chromeos/lacros/lacros_service.h"
#endif
namespace {
bool g_fallback_search_engines_disabled = …;
}
const char DefaultSearchManager::kID[] = …;
const char DefaultSearchManager::kShortName[] = …;
const char DefaultSearchManager::kKeyword[] = …;
const char DefaultSearchManager::kPrepopulateID[] = …;
const char DefaultSearchManager::kSyncGUID[] = …;
const char DefaultSearchManager::kURL[] = …;
const char DefaultSearchManager::kSuggestionsURL[] = …;
const char DefaultSearchManager::kImageURL[] = …;
const char DefaultSearchManager::kImageTranslateURL[] = …;
const char DefaultSearchManager::kNewTabURL[] = …;
const char DefaultSearchManager::kContextualSearchURL[] = …;
const char DefaultSearchManager::kFaviconURL[] = …;
const char DefaultSearchManager::kLogoURL[] = …;
const char DefaultSearchManager::kDoodleURL[] = …;
const char DefaultSearchManager::kOriginatingURL[] = …;
const char DefaultSearchManager::kSearchURLPostParams[] = …;
const char DefaultSearchManager::kSuggestionsURLPostParams[] = …;
const char DefaultSearchManager::kImageURLPostParams[] = …;
const char DefaultSearchManager::kSideSearchParam[] = …;
const char DefaultSearchManager::kSideImageSearchParam[] = …;
const char DefaultSearchManager::kImageSearchBrandingLabel[] = …;
const char DefaultSearchManager::kSearchIntentParams[] = …;
const char DefaultSearchManager::kImageTranslateSourceLanguageParamKey[] = …;
const char DefaultSearchManager::kImageTranslateTargetLanguageParamKey[] = …;
const char DefaultSearchManager::kSafeForAutoReplace[] = …;
const char DefaultSearchManager::kInputEncodings[] = …;
const char DefaultSearchManager::kDateCreated[] = …;
const char DefaultSearchManager::kLastModified[] = …;
const char DefaultSearchManager::kLastVisited[] = …;
const char DefaultSearchManager::kUsageCount[] = …;
const char DefaultSearchManager::kAlternateURLs[] = …;
const char DefaultSearchManager::kCreatedByPolicy[] = …;
const char DefaultSearchManager::kDisabledByPolicy[] = …;
const char DefaultSearchManager::kCreatedFromPlayAPI[] = …;
const char DefaultSearchManager::kFeaturedByPolicy[] = …;
const char DefaultSearchManager::kPreconnectToSearchUrl[] = …;
const char DefaultSearchManager::kPrefetchLikelyNavigations[] = …;
const char DefaultSearchManager::kIsActive[] = …;
const char DefaultSearchManager::kStarterPackId[] = …;
const char DefaultSearchManager::kEnforcedByPolicy[] = …;
DefaultSearchManager::DefaultSearchManager(
PrefService* pref_service,
search_engines::SearchEngineChoiceService* search_engine_choice_service,
const ObserverCallback& change_observer
#if BUILDFLAG(IS_CHROMEOS_LACROS)
,
bool for_lacros_main_profile
#endif
)
: … { … }
DefaultSearchManager::~DefaultSearchManager() { … }
void DefaultSearchManager::RegisterProfilePrefs(
user_prefs::PrefRegistrySyncable* registry) { … }
void DefaultSearchManager::AddPrefValueToMap(base::Value::Dict value,
PrefValueMap* pref_value_map) { … }
void DefaultSearchManager::SetFallbackSearchEnginesDisabledForTesting(
bool disabled) { … }
const TemplateURLData* DefaultSearchManager::GetDefaultSearchEngine(
Source* source) const { … }
std::unique_ptr<TemplateURLData>
DefaultSearchManager::GetDefaultSearchEngineIgnoringExtensions() const { … }
DefaultSearchManager::Source
DefaultSearchManager::GetDefaultSearchEngineSource() const { … }
const TemplateURLData* DefaultSearchManager::GetFallbackSearchEngine() const { … }
void DefaultSearchManager::SetUserSelectedDefaultSearchEngine(
const TemplateURLData& data) { … }
void DefaultSearchManager::ClearUserSelectedDefaultSearchEngine() { … }
void DefaultSearchManager::OnDefaultSearchPrefChanged() { … }
void DefaultSearchManager::OnOverridesPrefChanged() { … }
void DefaultSearchManager::MergePrefsDataWithPrepopulated() { … }
void DefaultSearchManager::LoadDefaultSearchEngineFromPrefs() { … }
void DefaultSearchManager::LoadPrepopulatedFallbackSearch() { … }
void DefaultSearchManager::NotifyObserver() { … }