| // Copyright 2018 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef IOS_CHROME_BROWSER_WEBUI_UI_BUNDLED_USER_ACTIONS_HANDLER_H_ |
| #define IOS_CHROME_BROWSER_WEBUI_UI_BUNDLED_USER_ACTIONS_HANDLER_H_ |
| |
| #include <string> |
| |
| #include "base/metrics/user_metrics.h" |
| #include "ios/web/public/webui/web_ui_ios_message_handler.h" |
| |
| namespace base { |
| class TimeTicks; |
| } // namespace base |
| |
| // UI Handler for chrome://user-actions/ |
| // It listens to user action notifications and passes those notifications |
| // into the Javascript to update the page. |
| class UserActionsHandler : public web::WebUIIOSMessageHandler { |
| public: |
| UserActionsHandler(); |
| |
| UserActionsHandler(const UserActionsHandler&) = delete; |
| UserActionsHandler& operator=(const UserActionsHandler&) = delete; |
| |
| ~UserActionsHandler() override; |
| |
| // WebUIIOSMessageHandler. |
| void RegisterMessages() override; |
| |
| private: |
| // Called whenever a user action is registered. |
| void OnUserAction(const std::string& action, base::TimeTicks action_time); |
| |
| // The callback to invoke whenever a user action is registered. |
| base::ActionCallback action_callback_; |
| }; |
| |
| #endif // IOS_CHROME_BROWSER_WEBUI_UI_BUNDLED_USER_ACTIONS_HANDLER_H_ |