chromium/chrome/browser/ui/webui/certificate_manager/certificate_manager_ui.h

// Copyright 2014 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_CERTIFICATE_MANAGER_CERTIFICATE_MANAGER_UI_H_
#define CHROME_BROWSER_UI_WEBUI_CERTIFICATE_MANAGER_CERTIFICATE_MANAGER_UI_H_

#include "chrome/browser/ui/webui/certificate_manager/certificate_manager_handler.h"
#include "chrome/common/buildflags.h"
#include "chrome/common/webui_url_constants.h"
#include "content/public/browser/webui_config.h"
#include "content/public/common/url_constants.h"
#include "ui/web_dialogs/web_dialog_ui.h"
#include "ui/webui/resources/cr_components/certificate_manager/certificate_manager_v2.mojom.h"

class CertificateManagerUI;

// WebUIConfig for chrome://certificate-manager
class CertificateManagerUIConfig
    : public content::DefaultWebUIConfig<CertificateManagerUI> {};

// A WebUI to host certificate manager UI. On ChromeOS, this must be a dialog
// because it can be opened in a dialog window by the login screen (see
// chrome/browser/ash/login/screens/error_screen.cc).
class CertificateManagerUI
#if BUILDFLAG(IS_CHROMEOS)
    : public ui::MojoWebDialogUI
#else
    : public ui::MojoWebUIController
#endif
#if BUILDFLAG(CHROME_ROOT_STORE_CERT_MANAGEMENT_UI)
    ,
      public certificate_manager_v2::mojom::CertificateManagerPageHandlerFactory
#endif  // BUILDFLAG(CHROME_ROOT_STORE_CERT_MANAGEMENT_UI)
{};

#endif  // CHROME_BROWSER_UI_WEBUI_CERTIFICATE_MANAGER_CERTIFICATE_MANAGER_UI_H_