chromium/chrome/browser/ui/views/side_search/default_search_icon_source.h

// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROME_BROWSER_UI_VIEWS_SIDE_SEARCH_DEFAULT_SEARCH_ICON_SOURCE_H_
#define CHROME_BROWSER_UI_VIEWS_SIDE_SEARCH_DEFAULT_SEARCH_ICON_SOURCE_H_

#include "base/callback_list.h"
#include "base/functional/callback_forward.h"
#include "base/memory/raw_ptr.h"
#include "base/scoped_observation.h"
#include "chrome/browser/ui/browser_user_data.h"
#include "components/search_engines/template_url_service.h"
#include "components/search_engines/template_url_service_observer.h"
#include "url/gurl.h"

class Browser;

namespace gfx {
class Image;
}  // namespace gfx

namespace ui {
class ImageModel;
}  // namespace ui

// A source for the current default search provider's icon image.
// TODO(tluk): This should be updated to be a per-profile rather than
// per-browser. Currently this is per-browser only due to the fact we are
// leveraging the OmniboxClient interface, which is instantiated on a
// per-browser-window basis.
class DefaultSearchIconSource : public BrowserUserData<DefaultSearchIconSource>,
                                public TemplateURLServiceObserver {};

#endif  // CHROME_BROWSER_UI_VIEWS_SIDE_SEARCH_DEFAULT_SEARCH_ICON_SOURCE_H_