// Copyright 2014 The Chromium Authors. All rights reserved. // 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_COPRESENCE_UI_HANDLER_H_ #define CHROME_BROWSER_UI_WEBUI_COPRESENCE_UI_HANDLER_H_ #include "base/macros.h" #include "components/copresence/public/copresence_observer.h" #include "content/public/browser/web_ui_message_handler.h" namespace base { class ListValue; } namespace content { class WebUI; } namespace copresence { class CopresenceState; } // UI Handler for the copresence page. // TODO(crbug.com/444263): Write tests. class CopresenceUIHandler final : public content::WebUIMessageHandler, public copresence::CopresenceObserver { public: explicit CopresenceUIHandler(content::WebUI* web_ui); ~CopresenceUIHandler() override; private: // WebUIMessageHandler override. void RegisterMessages() override; // CopresenceObserver overrides. void DirectivesUpdated() override; void TokenTransmitted(const copresence::TransmittedToken& token) override; void TokenReceived(const copresence::ReceivedToken& token) override; // Handler to populate the page with its initial state. void HandlePopulateState(const base::ListValue* args); // Handler for the clear state button. void HandleClearState(const base::ListValue* args); copresence::CopresenceState* state_; DISALLOW_COPY_AND_ASSIGN(CopresenceUIHandler); }; #endif // CHROME_BROWSER_UI_WEBUI_COPRESENCE_UI_HANDLER_H_