chromium/chrome/browser/ui/webui/commerce/product_specifications_ui.h

// Copyright 2024 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_WEBUI_COMMERCE_PRODUCT_SPECIFICATIONS_UI_H_
#define CHROME_BROWSER_UI_WEBUI_COMMERCE_PRODUCT_SPECIFICATIONS_UI_H_

#include "content/public/browser/webui_config.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "ui/base/resource/resource_scale_factor.h"
#include "ui/web_dialogs/web_dialog_ui.h"
#include "ui/webui/mojo_web_ui_controller.h"
#include "ui/webui/resources/cr_components/color_change_listener/color_change_listener.mojom.h"
#include "ui/webui/resources/cr_components/commerce/shopping_service.mojom.h"
#include "url/gurl.h"

namespace base {
class RefCountedMemory;
}

namespace content {
class BrowserContext;
}

namespace ui {
class ColorChangeHandler;
}

namespace commerce {

class ShoppingServiceHandler;

// This UI is used for both product specifications page and disclosure dialog.
// ui::MojoWebUIController works for the former, but we need to make it
// ui::MojoWebDialogUI to achieve both former and latter.
class ProductSpecificationsUI
    : public ui::MojoWebDialogUI,
      public shopping_service::mojom::ShoppingServiceHandlerFactory {};

class ProductSpecificationsUIConfig
    : public content::DefaultWebUIConfig<ProductSpecificationsUI> {};

}  // namespace commerce

#endif  // CHROME_BROWSER_UI_WEBUI_COMMERCE_PRODUCT_SPECIFICATIONS_UI_H_