#ifndef UI_WEBUI_UNTRUSTED_WEB_UI_CONTROLLER_FACTORY_H_
#define UI_WEBUI_UNTRUSTED_WEB_UI_CONTROLLER_FACTORY_H_
#include "content/public/browser/web_ui_controller_factory.h"
class GURL;
namespace content {
class BrowserContext;
class WebUIController;
class WebUIConfig;
}
namespace ui {
class UntrustedWebUIControllerFactory : public content::WebUIControllerFactory {
public:
UntrustedWebUIControllerFactory();
~UntrustedWebUIControllerFactory() override;
UntrustedWebUIControllerFactory(const UntrustedWebUIControllerFactory&) =
delete;
UntrustedWebUIControllerFactory& operator=(
const UntrustedWebUIControllerFactory&) = delete;
content::WebUI::TypeID GetWebUIType(content::BrowserContext* browser_context,
const GURL& url) final;
bool UseWebUIForURL(content::BrowserContext* browser_context,
const GURL& url) final;
std::unique_ptr<content::WebUIController> CreateWebUIControllerForURL(
content::WebUI* web_ui,
const GURL& url) final;
protected:
using WebUIConfigMap =
base::flat_map<std::string, std::unique_ptr<content::WebUIConfig>>;
virtual const WebUIConfigMap& GetWebUIConfigMap() = 0;
private:
content::WebUIConfig* GetConfigIfWebUIEnabled(
content::BrowserContext* browser_context,
const GURL& url);
};
}
#endif