blob: 130f6fd04c4754cb88e90c4d287f552ad042ce72 [file] [log] [blame]
// Copyright 2023 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_EXTENSIONS_EXTENSION_MENU_ICON_LOADER_H_
#define CHROME_BROWSER_EXTENSIONS_EXTENSION_MENU_ICON_LOADER_H_
#include "chrome/browser/extensions/extension_icon_manager.h"
#include "chrome/browser/extensions/menu_icon_loader.h"
#include "chrome/browser/extensions/menu_manager.h"
namespace content {
class BrowserContext;
} // namespace content
namespace gfx {
class Image;
} // namespace gfx
namespace extensions {
class Extension;
// This is a wrapper class around |ExtensionIconManager| to be used for the
// Context Menus API.
class ExtensionMenuIconLoader : public MenuIconLoader {
public:
ExtensionMenuIconLoader();
ExtensionMenuIconLoader(const ExtensionMenuIconLoader&) = delete;
ExtensionMenuIconLoader& operator=(const ExtensionMenuIconLoader&) = delete;
~ExtensionMenuIconLoader() override;
// MenuIconLoader implementation
void LoadIcon(content::BrowserContext* context,
const Extension* extension,
const MenuItem::ExtensionKey& extension_key) override;
gfx::Image GetIcon(const MenuItem::ExtensionKey& extensions_key) override;
void RemoveIcon(const MenuItem::ExtensionKey& extensions_key) override;
private:
ExtensionIconManager icon_manager_;
};
} // namespace extensions
#endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_MENU_ICON_LOADER_H_