| // Copyright 2021 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| module chromecast.mojom; |
| |
| import "ui/gfx/geometry/mojom/geometry.mojom"; |
| |
| // Event phase for a single swipe gesture. |
| enum SideSwipeEvent { |
| BEGIN = 0, // Swipe has started |
| CONTINUE = 1, // Swipe is in progress |
| END = 2 // Swipe is finished |
| }; |
| |
| // Screen location for a side swipe gesture. |
| enum SideSwipeOrigin { |
| TOP = 0, |
| BOTTOM = 1, |
| LEFT = 2, |
| RIGHT = 3 |
| }; |
| |
| // Renderer-side client for receiving settings events. This is currently used to |
| // send side-swipe events. |
| // |
| // Security: This is hosted by the render process. This is only enabled for the |
| // built-in settings UI for smart display devices. |
| interface SettingsClient { |
| // Propagates an in-progress gesture event to the renderer. |
| HandleSideSwipe(SideSwipeEvent event, |
| SideSwipeOrigin origin, |
| gfx.mojom.Point touch_location); |
| |
| // Sends a platform info JSON string to the renderer. This information is |
| // intended to be rendered by the settings UI widget (e.g. device volume bar, |
| // device name, platform version info). |
| SendPlatformInfo(string platform_info_json); |
| }; |
| |
| // Interface implemented on platform to host the settings view. This is |
| // currently used by render process to request settings visibility. |
| // |
| // Security: This interface is hosted by the Cast Service process. This is only |
| // used by the built-in settings UI to receive platform information so it can be |
| // displayed to a user. |
| interface SettingsPlatform { |
| // Register a SettingsClient so that it can receive platform information. |
| Connect(pending_remote<SettingsClient> client); |
| |
| // Make the settings UI visible. |
| RequestVisible(bool visible); |
| }; |