search_provider_observer.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. // Copyright 2019 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #ifndef COMPONENTS_SEARCH_SEARCH_PROVIDER_OBSERVER_H_
  5. #define COMPONENTS_SEARCH_SEARCH_PROVIDER_OBSERVER_H_
  6. #include "base/memory/raw_ptr.h"
  7. #include "base/scoped_observation.h"
  8. #include "components/search_engines/template_url_service.h"
  9. #include "components/search_engines/template_url_service_observer.h"
  10. // Keeps track of any changes in search engine provider and call
  11. // the provided callback if a third-party search provider (i.e. a third-party
  12. // NTP) is being used.
  13. class SearchProviderObserver : public TemplateURLServiceObserver {
  14. public:
  15. explicit SearchProviderObserver(TemplateURLService* service,
  16. base::RepeatingClosure callback);
  17. ~SearchProviderObserver() override;
  18. virtual bool is_google();
  19. private:
  20. // TemplateURLServiceObserver:
  21. void OnTemplateURLServiceChanged() override;
  22. void OnTemplateURLServiceShuttingDown() override;
  23. base::ScopedObservation<TemplateURLService, TemplateURLServiceObserver>
  24. service_observation_{this};
  25. // May be nullptr in tests.
  26. raw_ptr<TemplateURLService> service_;
  27. bool is_google_;
  28. base::RepeatingClosure callback_;
  29. };
  30. #endif // COMPONENTS_SEARCH_SEARCH_PROVIDER_OBSERVER_H_