blob: 39118bc61d8c658fdfe8296f0184cef5818ca5d8 [file] [log] [blame]
// 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;
}