// Copyright 2019 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "components/search/search_provider_observer.h" #include "components/search/search.h" SearchProviderObserver::SearchProviderObserver(TemplateURLService* service, base::RepeatingClosure callback) : service_(service), is_google_(search::DefaultSearchProviderIsGoogle(service_)), callback_(std::move(callback)) { if (service_) { service_observation_.Observe(service_.get()); } } SearchProviderObserver::~SearchProviderObserver() = default; bool SearchProviderObserver::is_google() { return is_google_; } void SearchProviderObserver::OnTemplateURLServiceChanged() { DCHECK(service_); is_google_ = search::DefaultSearchProviderIsGoogle(service_); callback_.Run(); } void SearchProviderObserver::OnTemplateURLServiceShuttingDown() { DCHECK(service_); DCHECK(service_observation_.IsObservingSource(service_.get())); service_observation_.Reset(); service_ = nullptr; }