123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273 |
- // Copyright 2021 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.
- //
- // Sync protocol datatype extension for desks on Chrome OS.
- // If you change or add any fields in this file, update proto_visitors.h and
- // potentially proto_enum_conversions.{h, cc}.
- syntax = "proto2";
- option java_multiple_files = true;
- option java_package = "org.chromium.components.sync.protocol";
- option optimize_for = LITE_RUNTIME;
- package sync_pb;
- // A workspace desk entry. This proto contains the fields synced to represent
- // a saved desk in user's workspace.
- message WorkspaceDeskSpecifics {
- reserved "created_time_usec";
- // A random unique identifier for each desk.
- // Required.
- optional string uuid = 1;
- // The name of the desk being saved.
- optional string name = 2;
- // The time this snapshot of desk was created.
- optional int64 created_time_windows_epoch_micros = 3;
- // The time this snapshot of desk was updated.
- optional int64 updated_time_windows_epoch_micros = 5;
- optional Desk desk = 4;
- // The type of a desk.
- optional DeskType desk_type = 6;
- // Represent a snapshot of the information on a desk.
- message Desk {
- // The apps in this template.
- repeated App apps = 1;
- }
- // A Launchable app in template.
- message App {
- // The on-display location of this window.
- optional WindowBound window_bound = 1;
- optional WindowState window_state = 2;
- // The z-index of this app relative to other apps in this template.
- // App with larger z-index appears in front of app with smaller z-index.
- optional int32 z_index = 3;
- optional AppOneOf app = 4;
- // window_id used to instantiate proto as a restore_data object. The
- // restore_data object in question can be found at:
- // //components/app_restore/restore_data.h
- optional int32 window_id = 5;
- // Display ID this app is on.
- optional int64 display_id = 6;
- // State of a window before it was minimized. Empty/unset for non-minimized
- // windows.
- optional WindowState pre_minimized_window_state = 7;
- // Container this app was launched from. Empty/unset for Arc apps.
- optional LaunchContainer container = 8;
- // Window open disposition, defines how a window opens. Empty/unset for Arc
- // apps.
- optional WindowOpenDisposition disposition = 9;
- // Name of the app which is used by the browser to determine whether to
- // launch an app as an app or a tab. Does not contain a human readable name
- // but contains the app ID and a prefix.
- optional string app_name = 10;
- // Human readable title of the app.
- optional string title = 11;
- // This is used to determine the size of a snapped window is in clamshell
- // mode. Empty/unset for non-snapped windows. This should be a value between
- // 0 and 100.
- optional int32 snap_percentage = 12;
- }
- message AppOneOf {
- oneof app {
- BrowserAppWindow browser_app_window = 1;
- ChromeApp chrome_app = 2;
- ProgressiveWebApp progress_web_app = 3;
- ArcApp arc_app = 4;
- }
- }
- // A Chrome or Lacros Browser app window.
- message BrowserAppWindow {
- message BrowserAppTab {
- // The last committed URL of the main frame of the tab.
- optional string url = 1;
- // The title of the tab.
- optional string title = 2;
- }
- // Structure representing a tab group associated with this window.
- message TabGroup {
- // Zero-based index within the browser app tabs of the first tab in the
- // group.
- optional int32 first_index = 1;
- // Zero-based Index wotjom the browser app tabs of the last tab in the
- // group.
- optional int32 last_index = 2;
- // User readable title of the tab group.
- optional string title = 3;
- // Color associated with this tab group.
- optional TabGroupColor color = 4;
- // Indicates whether the tab group is collapsed.
- optional bool is_collapsed = 5;
- }
- // The tabs in this browser window.
- repeated BrowserAppTab tabs = 1;
- // The index of the currently active tab.
- optional int32 active_tab_index = 2;
- // Indicates whether to show as a dedicated app window.
- optional bool show_as_app = 3;
- // Tab groups associated with this window.
- repeated TabGroup tab_groups = 4;
- // The index of the first non-pinned tab.
- optional int32 first_non_pinned_tab_index = 5;
- }
- // A Chrome App window.
- message ChromeApp {
- // The Chrome App's App ID.
- optional string app_id = 1;
- reserved 2;
- }
- // A PWA window.
- message ProgressiveWebApp {
- // The PWA's App ID.
- optional string app_id = 1;
- reserved 2;
- }
- // An Arc App window.
- message ArcApp {
- // The Arc App's ID.
- optional string app_id = 1;
- // Arc window information. This maps
- // to ArcExtraInfo in a WindowInfo struct.
- optional WindowSize minimum_size = 2;
- optional WindowSize maximum_size = 3;
- reserved 4;
- optional WindowBound bounds_in_root = 5;
- // maps to gfx::Size. Width of the window, including the frame,
- // in pixels.
- message WindowSize {
- optional int32 width = 1;
- optional int32 height = 2;
- }
- }
- message WindowBound {
- // The offset of the window from the top edge of the screen in pixels.
- optional int32 top = 1;
- // The offset of the window from the left edge of the screen in pixels.
- optional int32 left = 2;
- // The width of the window, including the frame, in pixels.
- optional int32 width = 3;
- // The height of the window, including the frame, in pixels.
- optional int32 height = 4;
- }
- // Enumeration for the container an app was launched from as used by
- // (components/services/app_services/public/mojom/types.mojom:490).
- enum LaunchContainer {
- LAUNCH_CONTAINER_UNSPECIFIED = 0;
- LAUNCH_CONTAINER_WINDOW = 1;
- LAUNCH_CONTAINER_PANEL_DEPRECATED = 2;
- LAUNCH_CONTAINER_TAB = 3;
- LAUNCH_CONTAINER_NONE = 4;
- }
- // The state of a generic window.
- enum WindowState {
- UNKNOWN_WINDOW_STATE = 0;
- // Normal window state (not minimized, maximized, or fullscreen).
- NORMAL = 1;
- // Minimized window state.
- MINIMIZED = 2;
- // Maximized window state.
- MAXIMIZED = 3;
- // Fullscreen window state.
- FULLSCREEN = 4;
- // Snapped to primary half of the screen. Primary half is on the left in
- // landscape screen orientation and top in portrait screen orientation.
- PRIMARY_SNAPPED = 5;
- // Snapped to secondary half of the screen. Secondary half is on the right
- // in landscape screen orientation and bottom in portrait screen
- // orientation.
- SECONDARY_SNAPPED = 6;
- }
- // Enumeration for how a window opens. Maps to base::WindowOpenDisposition.
- // (found in ui/base/window_open_disposition.h:10). Does not include
- // MAX_VALUE as MAX_VALUE is equivalent to NEW_PICTURE_IN_PICTURE. All
- // comments are copied verbatim from aforementioned header.
- enum WindowOpenDisposition {
- UNKNOWN = 0;
- CURRENT_TAB = 1;
- // Indicates that only one tab with the URL shoul exist in the same window.
- SINGLETON_TAB = 2;
- NEW_FOREGROUND_TAB = 3;
- NEW_BACKGROUND_TAB = 4;
- NEW_POPUP = 5;
- NEW_WINDOW = 6;
- SAVE_TO_DISK = 7;
- OFF_THE_RECORD = 8;
- IGNORE_ACTION = 9;
- // Activates an existing tab containing the URL, rather than navigating.
- // This is similar to SINGLETON_TAB, but searches across all windows
- // from the current profile and anymity (instead of tjust the current one);
- // closes the current tab on switching if the current ta was the NTP with
- // no session history; and behaves like CURRENT_TAB instead of
- // NEW_FOREGROUND_TAB when no existing tab is found.
- SWITCH_TO_TAB = 10;
- // creates a new document picture-in-picture window showing a child WebView.
- NEW_PICTURE_IN_PICTURE = 11;
- }
- // Enumerates the type of desk, namely to differentiate desks between desks
- // saved for desk templates and desks saved for save and recall.
- enum DeskType {
- UNKNOWN_TYPE = 0;
- TEMPLATE = 1;
- SAVE_AND_RECALL = 2;
- }
- // Enumerates the possible colors that a tab group can have. This mirrors
- // the enumeration that can be found in
- // components/tab_groups/tab_group_color.h
- enum TabGroupColor {
- UNKNOWN_COLOR = 0;
- GREY = 1;
- BLUE = 2;
- RED = 3;
- YELLOW = 4;
- GREEN = 5;
- PINK = 6;
- PURPLE = 7;
- CYAN = 8;
- ORANGE = 9;
- }
- }
|