| // Copyright (c) 2012 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 sessions. |
| |
| // Update proto_value_conversions{.h,.cc,_unittest.cc} if you change |
| // any fields in this file. |
| |
| syntax = "proto2"; |
| |
| option optimize_for = LITE_RUNTIME; |
| option retain_unknown_fields = true; |
| |
| package sync_pb; |
| |
| import "sync_enums.proto"; |
| |
| message SessionSpecifics { |
| // Unique id for the client. |
| optional string session_tag = 1; |
| optional SessionHeader header = 2; |
| optional SessionTab tab = 3; |
| |
| // The local tab id used by sync. Unique across all nodes for that client. |
| optional int32 tab_node_id = 4 [default = -1]; |
| } |
| |
| // Properties of session sync objects. |
| message SessionHeader { |
| // Each session is composed of windows. |
| repeated SessionWindow window = 2; |
| // A non-unique but human-readable name to describe this client. |
| optional string client_name = 3; |
| // The type of device. |
| enum DeviceType { |
| TYPE_WIN = 1; |
| TYPE_MAC = 2; |
| TYPE_LINUX = 3; |
| TYPE_CROS = 4; |
| TYPE_OTHER = 5; |
| TYPE_PHONE = 6; |
| TYPE_TABLET = 7; |
| } |
| optional DeviceType device_type = 4; |
| } |
| |
| message SessionWindow { |
| // Unique (to the owner) id for this window. |
| optional int32 window_id = 1; |
| // Index of the selected tab in tabs; -1 if no tab is selected. |
| optional int32 selected_tab_index = 2 [default = -1]; |
| // Type of the browser. Currently we only store browsers of type |
| // TYPE_TABBED and TYPE_POPUP. |
| enum BrowserType { |
| TYPE_TABBED = 1; |
| TYPE_POPUP = 2; |
| } |
| optional BrowserType browser_type = 3 [default = TYPE_TABBED]; |
| // The tabs that compose a window (correspond to tab id's). |
| repeated int32 tab = 4; |
| } |
| |
| message SessionTab { |
| // Unique (to the owner) id for this tab. |
| optional int32 tab_id = 1; |
| // The unique id for the window this tab belongs to. |
| optional int32 window_id = 2; |
| // Visual index of the tab within its window. There may be gaps in these |
| // values. |
| optional int32 tab_visual_index = 3 [default = -1]; |
| // Identifies the index of the current navigation in navigations. For |
| // example, if this is 2 it means the current navigation is navigations[2]. |
| optional int32 current_navigation_index = 4 [default = -1]; |
| // True if the tab is pinned. |
| optional bool pinned = 5 [default = false]; |
| // If non-empty, this tab is an app tab and this is the id of the extension. |
| optional string extension_app_id = 6; |
| // Tabs are navigated, and the navigation data is here. |
| repeated TabNavigation navigation = 7; |
| // The favicon for the current url the tab is displaying. Either empty |
| // or a valid PNG encoded favicon. |
| optional bytes favicon = 8; |
| // The type of favicon. For now only normal web favicons are supported. |
| enum FaviconType { |
| TYPE_WEB_FAVICON = 1; |
| } |
| optional FaviconType favicon_type = 9; |
| // The url of the actual favicon (as opposed to the page using the favicon). |
| optional string favicon_source = 11; |
| } |
| |
| message TabNavigation { |
| // The index in the NavigationController. If this is -1, it means this |
| // TabNavigation is bogus. |
| // optional int32 index = 1 [default = -1]; // obsolete. |
| // The virtual URL, when nonempty, will override the actual URL of the page |
| // when we display it to the user. |
| optional string virtual_url = 2; |
| // The referring URL, which can be empty. |
| optional string referrer = 3; |
| // The title of the page. |
| optional string title = 4; |
| // Content state is an opaque blob created by WebKit that represents the |
| // state of the page. This includes form entries and scroll position for each |
| // frame. |
| optional string state = 5; |
| optional SyncEnums.PageTransition page_transition = 6 [default = TYPED]; |
| optional SyncEnums.PageTransitionQualifier navigation_qualifier = 7; |
| // The unique navigation id (within this client). |
| optional int32 unique_id = 8; |
| // Timestamp for when this navigation last occurred (in client time). |
| // If the user goes back/foward in history the timestamp may refresh. |
| optional int64 timestamp = 9; |
| } |
| |