• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4//
5// Sync protocol datatype extension for sessions.
6
7// Update proto_value_conversions{.h,.cc,_unittest.cc} if you change
8// any fields in this file.
9
10syntax = "proto2";
11
12option optimize_for = LITE_RUNTIME;
13option retain_unknown_fields = true;
14
15package sync_pb;
16
17import "sync_enums.proto";
18
19message SessionSpecifics {
20  // Unique id for the client.
21  optional string session_tag = 1;
22  optional SessionHeader header = 2;
23  optional SessionTab tab = 3;
24
25  // The local tab id used by sync. Unique across all nodes for that client.
26  optional int32 tab_node_id = 4 [default = -1];
27}
28
29// Properties of session sync objects.
30message SessionHeader {
31  // Each session is composed of windows.
32  repeated SessionWindow window = 2;
33  // A non-unique but human-readable name to describe this client.
34  optional string client_name = 3;
35  // The type of device.
36  optional SyncEnums.DeviceType device_type = 4;
37}
38
39message SessionWindow {
40  // Unique (to the owner) id for this window.
41  optional int32 window_id = 1;
42  // Index of the selected tab in tabs; -1 if no tab is selected.
43  optional int32 selected_tab_index = 2 [default = -1];
44  // Type of the browser. Currently we only store browsers of type
45  // TYPE_TABBED and TYPE_POPUP.
46  enum BrowserType {
47    TYPE_TABBED = 1;
48    TYPE_POPUP = 2;
49  }
50  optional BrowserType browser_type = 3 [default = TYPE_TABBED];
51  // The tabs that compose a window (correspond to tab id's).
52  repeated int32 tab = 4;
53}
54
55message SessionTab {
56  // Unique (to the owner) id for this tab.
57  optional int32 tab_id = 1;
58  // The unique id for the window this tab belongs to.
59  optional int32 window_id = 2;
60  // Visual index of the tab within its window. There may be gaps in these
61  // values.
62  optional int32 tab_visual_index = 3 [default = -1];
63  // Identifies the index of the current navigation in navigations. For
64  // example, if this is 2 it means the current navigation is navigations[2].
65  optional int32 current_navigation_index = 4 [default = -1];
66  // True if the tab is pinned.
67  optional bool pinned = 5 [default = false];
68  // If non-empty, this tab is an app tab and this is the id of the extension.
69  optional string extension_app_id = 6;
70  // Tabs are navigated, and the navigation data is here.
71  repeated TabNavigation navigation = 7;
72
73  // Fields 8 through 11 are deprecated.
74  // The favicon for the current url the tab is displaying. Either empty
75  // or a valid PNG encoded favicon.
76  optional bytes favicon = 8;
77  // The type of favicon. For now only normal web favicons are supported.
78  enum FaviconType {
79    TYPE_WEB_FAVICON = 1;
80  }
81  optional FaviconType favicon_type = 9;
82  // The url of the actual favicon (as opposed to the page using the favicon).
83  optional string favicon_source = 11;
84}
85
86message TabNavigation {
87  // The index in the NavigationController. If this is -1, it means this
88  // TabNavigation is bogus.
89  // optional int32 index = 1 [default = -1];  // obsolete.
90  // The virtual URL, when nonempty, will override the actual URL of the page
91  // when we display it to the user.
92  optional string virtual_url = 2;
93  // The referring URL, which can be empty.
94  optional string referrer = 3;
95  // The title of the page.
96  optional string title = 4;
97  // Content state is an opaque blob created by WebKit that represents the
98  // state of the page. This includes form entries and scroll position for each
99  // frame.
100  optional string state = 5;
101  // The core transition type.
102  optional SyncEnums.PageTransition page_transition = 6 [default = TYPED];
103  // If this transition was triggered by a redirect, the redirect type.
104  optional SyncEnums.PageTransitionRedirectType redirect_type = 7;
105  // The unique navigation id (within this client).
106  optional int32 unique_id = 8;
107  // Timestamp for when this navigation last occurred (in client time).
108  // If the user goes back/foward in history the timestamp may refresh.
109  optional int64 timestamp_msec = 9;
110  // User used the Forward or Back button to navigate among browsing history.
111  optional bool navigation_forward_back = 10;
112  // User used the address bar to trigger this navigation.
113  optional bool navigation_from_address_bar = 11;
114  // User is navigating to the home page.
115  optional bool navigation_home_page = 12;
116  // The beginning of a navigation chain.
117  optional bool navigation_chain_start = 13;
118  // The last transition in a redirect chain.
119  optional bool navigation_chain_end = 14;
120  // The id for this navigation, which is globally unique with high
121  // probability.
122  optional int64 global_id = 15;
123  // Search terms extracted from the URL.
124  optional string search_terms = 16;
125  // The favicon url associated with this page.
126  optional string favicon_url = 17;
127  enum BlockedState {
128    STATE_ALLOWED = 1;
129    STATE_BLOCKED = 2;
130  }
131  // Whether access to the URL was allowed or blocked.
132  optional BlockedState blocked_state = 18 [default=STATE_ALLOWED];
133  // A list of category identifiers for the URL.
134  repeated string content_pack_categories = 19;
135  // The status code from the last navigation.
136  optional int32 http_status_code = 20;
137
138  // Referrer policy. Valid enums are defined in
139  // third_party/WebKit/public/platform/WebReferrerPolicy.h.
140  optional int32 referrer_policy = 21 [default = 1];
141  // True if created from restored navigation entry that hasn't been loaded.
142  optional bool is_restored = 22;
143  // The chain of redirections for this navigation, from the original URL
144  // through the last URL that redirected.
145  repeated NavigationRedirect navigation_redirect = 23;
146  // Normally not present.
147  // The last URL traversed when different from the virtual_url.
148  optional string last_navigation_redirect_url = 24;
149}
150
151// Navigation information for a single redirection within a single navigation.
152message NavigationRedirect {
153  // A URL that redirected while navigating to the virtual_url.
154  optional string url = 1;
155}
156