#ifndef CHROME_BROWSER_UI_WEBUI_SETTINGS_GLIC_HANDLER_H_
#define CHROME_BROWSER_UI_WEBUI_SETTINGS_GLIC_HANDLER_H_
#include "base/callback_list.h"
#include "chrome/browser/ui/webui/settings/settings_page_ui_handler.h"
#include "content/public/browser/web_ui.h"
namespace settings {
class GlicHandler : public SettingsPageUIHandler {
public:
GlicHandler();
GlicHandler(const GlicHandler&) = delete;
GlicHandler& operator=(const GlicHandler&) = delete;
~GlicHandler() override;
void RegisterMessages() override;
void OnJavascriptAllowed() override;
void OnJavascriptDisallowed() override;
void SetWebUIForTesting(content::WebUI* web_ui);
private:
FRIEND_TEST_ALL_PREFIXES(GlicHandlerBrowserTest, UpdateShortcutSuspension);
FRIEND_TEST_ALL_PREFIXES(GlicHandlerBrowserTest, UpdateGlicShortcut);
void HandleSetGlicOsLauncherEnabled(const base::Value::List& args);
void HandleGetGlicShortcut(const base::Value::List& args);
void HandleSetGlicShortcut(const base::Value::List& args);
void HandleSetShortcutSuspensionState(const base::Value::List& args);
void HandleGetGlicFocusToggleShortcut(const base::Value::List& args);
void HandleSetGlicFocusToggleShortcut(const base::Value::List& args);
void HandleGetGlicDisallowedByAdmin(const base::Value::List& args);
void FireOnGlicDisallowedByAdminChanged();
void OnWebActuationCapabilityChanged(bool can_act_on_web);
base::CallbackListSubscription web_actuation_subscription_;
std::unique_ptr<base::CallbackListSubscription> glic_enabling_subscription_;
};
}
#endif