Index: chrome/browser/sync/protocol/session_specifics.proto |
=================================================================== |
--- chrome/browser/sync/protocol/session_specifics.proto (revision 0) |
+++ chrome/browser/sync/protocol/session_specifics.proto (revision 0) |
@@ -0,0 +1,91 @@ |
+// Copyright (c) 2010 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. |
+ |
+syntax = "proto2"; |
+ |
+// option optimize_for = LITE_RUNTIME; |
+ |
+package sync_pb; |
+ |
+import "sync.proto"; |
+ |
+// Properties of session sync objects. |
+message SessionSpecifics { |
+ // Unique id for the session. |
+ optional string session_tag = 1; |
+ // Each session is composed of windows. |
+ repeated SessionWindow session_window = 2; |
+} |
+message SessionWindow { |
+ // 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_NORMAL and TYPE_POPUP. |
+ enum BrowserType { |
+ TYPE_NORMAL = 1; |
+ TYPE_POPUP = 2; |
+ } |
+ optional BrowserType browser_type = 3 [default = TYPE_NORMAL]; |
+ // The tabs that compose a window. |
+ repeated SessionTab session_tab= 4; |
+} |
+message SessionTab { |
+ // Visual index of the tab within its window. There may be gaps in these |
+ // values. |
+ optional int32 tab_visual_index = 2 [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 = 3 [default = -1]; |
+ // True if the tab is pinned. |
+ optional bool pinned = 4 [default = false]; |
+ // If non-empty, this tab is an app tab and this is the id of the extension. |
+ optional string extension_app_id = 5; |
+ // Tabs are navigated, and the navigation data is here. |
+ repeated TabNavigation navigation = 6; |
+} |
+message TabNavigation { |
+ // The index in the NavigationController. If this is -1, it means this |
+ // TabNavigation is bogus. |
+ optional int32 index = 1 [default = -1]; |
+ // 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; |
+ // Types of transitions between pages. |
+ enum PageTransition{ |
+ LINK = 0; |
+ TYPED = 1; |
+ AUTO_BOOKMARK = 2; |
+ AUTO_SUBFRAME = 3; |
+ MANUAL_SUBFRAME = 4; |
+ GENERATED = 5; |
+ START_PAGE = 6; |
+ FORM_SUBMIT = 7; |
+ RELOAD = 8; |
+ KEYWORD = 9; |
+ KEYWORD_GENERATED = 10; |
+ CHAIN_START = 12; |
+ CHAIN_END = 13; |
+ } |
+ // These qualifiers further define the transition. |
+ enum PageTransitionQualifier { |
+ CLIENT_REDIRECT = 1; |
+ SERVER_REDIRECT = 2; |
+ } |
+ optional PageTransition page_transition = 6 [default = TYPED]; |
+ optional PageTransitionQualifier navigation_qualifier = 7; |
+} |
+ |
+extend EntitySpecifics { |
+ optional SessionSpecifics session = 50119; |
+} |