1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
|
// 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.
//
// Stores information about an omnibox interaction.
syntax = "proto2";
option optimize_for = LITE_RUNTIME;
package metrics;
// Next tag: 15
message OmniboxEventProto {
// The timestamp for the event, in seconds since the epoch.
optional int64 time = 1;
// The id of the originating tab for this omnibox interaction.
// This is the current tab *unless* the user opened the target in a new tab.
// In those cases, this is unset. Tab ids are unique for a given session_id
// (in the containing protocol buffer ChromeUserMetricsExtensionsProto).
optional int32 tab_id = 2;
// The number of characters the user had typed before autocompleting.
optional int32 typed_length = 3;
// Whether the user deleted text immediately before selecting an omnibox
// suggestion. This is usually the result of pressing backspace or delete.
optional bool just_deleted_text = 11;
// The number of terms that the user typed in the omnibox.
optional int32 num_typed_terms = 4;
// The index of the item that the user selected in the omnibox popup list.
// This corresponds the index of the |suggestion| below.
optional int32 selected_index = 5;
// Whether or not the top match was hidden in the omnibox suggestions
// dropdown.
optional bool is_top_result_hidden_in_dropdown = 14;
// The length of the inline autocomplete text in the omnibox.
// The sum |typed_length| + |completed_length| gives the full length of the
// user-visible text in the omnibox.
// This field is only set for inlineable suggestions selected at position 0
// (|selected_index| = 0) and will be omitted otherwise.
optional int32 completed_length = 6;
// The amount of time, in milliseconds, since the user first began modifying
// the text in the omnibox. If at some point after modifying the text, the
// user reverts the modifications (thus seeing the current web page's URL
// again), then writes in the omnibox again, this elapsed time should start
// from the time of the second series of modification.
optional int64 typing_duration_ms = 7;
// The amount of time, in milliseconds, since the last time the default
// (inline) match changed. This may be longer than the time since the
// last keystroke. (The last keystroke may not have changed the default
// match.) It may also be shorter than the time since the last keystroke
// because the default match might have come from an asynchronous
// provider. Regardless, it should always be less than or equal to
// the field |typing_duration_ms|.
optional int64 duration_since_last_default_match_update_ms = 13;
// The type of page currently displayed when the user used the omnibox.
enum PageClassification {
// An invalid URL; shouldn't happen.
INVALID_SPEC = 0;
// chrome://newtab/. This can be either the built-in version or a
// replacement new tab page from an extension. Note that when Instant
// Extended is enabled, the new tab page will be reported as either
// INSTANT_NTP_WITH_OMNIBOX_AS_STARTING_FOCUS or
// INSTANT_NTP_WITH_FAKEBOX_AS_STARTING_FOCUS below,
// unless an extension is replacing the new tab page, in which case
// it will still be reported as NTP.
NTP = 1;
// about:blank.
BLANK = 2;
// The user's home page. Note that if the home page is set to any
// of the new tab page versions or to about:blank, then we'll
// classify the page into those categories, not HOME_PAGE.
HOME_PAGE = 3;
// The catch-all entry of everything not included somewhere else
// on this list.
OTHER = 4;
// The instant new tab page enum value was deprecated on August 2, 2013.
OBSOLETE_INSTANT_NTP = 5;
// The user is on a search result page that's doing search term
// replacement, meaning the search terms should've appeared in the omnibox
// before the user started editing it, not the URL of the page.
SEARCH_RESULT_PAGE_DOING_SEARCH_TERM_REPLACEMENT = 6;
// The new tab page in which this omnibox interaction first started
// with the user having focus in the omnibox.
INSTANT_NTP_WITH_OMNIBOX_AS_STARTING_FOCUS = 7;
// The new tab page in which this omnibox interaction first started
// with the user having focus in the fakebox.
INSTANT_NTP_WITH_FAKEBOX_AS_STARTING_FOCUS = 8;
// The user is on a search result page that's not doing search term
// replacement, meaning the URL of the page should've appeared in the
// omnibox before the user started editing it, not the search terms.
SEARCH_RESULT_PAGE_NO_SEARCH_TERM_REPLACEMENT = 9;
// When adding new classifications, please consider adding them in
// chrome/browser/resources/omnibox/omnibox.html
// so that these new options are displayed on about:omnibox.
}
optional PageClassification current_page_classification = 10;
// What kind of input the user provided.
enum InputType {
INVALID = 0; // Empty input (should not reach here)
UNKNOWN = 1; // Valid input whose type cannot be determined
REQUESTED_URL = 2; // DEPRECATED. Input autodetected as UNKNOWN, which the
// user wants to treat as an URL by specifying a
// desired_tld
URL = 3; // Input autodetected as a URL
QUERY = 4; // Input autodetected as a query
FORCED_QUERY = 5; // Input forced to be a query by an initial '?'
}
optional InputType input_type = 8;
// An enum used in multiple places below.
enum ProviderType {
UNKNOWN_PROVIDER = 0; // Unknown provider (should not reach here)
HISTORY_URL = 1; // URLs in history, or user-typed URLs
HISTORY_CONTENTS = 2; // Matches for page contents of pages in history
HISTORY_QUICK = 3; // Matches for recently or frequently visited pages
// in history
SEARCH = 4; // Search suggestions for the default search engine
KEYWORD = 5; // Keyword-triggered searches
BUILTIN = 6; // Built-in URLs, such as chrome://version
SHORTCUTS = 7; // Recently selected omnibox suggestions
EXTENSION_APPS = 8; // Custom suggestions from extensions and/or apps
CONTACT = 9; // The user's contacts
BOOKMARK = 10; // The user's bookmarks
ZERO_SUGGEST = 11; // Suggestions based on the current page
// This enum value is currently only used by Android GSA. It represents
// a suggestion from the phone.
ON_DEVICE = 12;
}
// The result set displayed on the completion popup
// Next tag: 6
message Suggestion {
// Where does this result come from?
optional ProviderType provider = 1;
// What kind of result this is.
// This corresponds to the AutocompleteMatch::Type enumeration in
// chrome/browser/autocomplete/autocomplete_match.h (except for Android
// GSA result types).
enum ResultType {
UNKNOWN_RESULT_TYPE = 0; // Unknown type (should not reach here)
URL_WHAT_YOU_TYPED = 1; // The input as a URL
HISTORY_URL = 2; // A past page whose URL contains the input
HISTORY_TITLE = 3; // A past page whose title contains the input
HISTORY_BODY = 4; // A past page whose body contains the input
HISTORY_KEYWORD = 5; // A past page whose keyword contains the
// input
NAVSUGGEST = 6; // A suggested URL
SEARCH_WHAT_YOU_TYPED = 7; // The input as a search query (with the
// default engine)
SEARCH_HISTORY = 8; // A past search (with the default engine)
// containing the input
SEARCH_SUGGEST = 9; // A suggested search (with the default
// engine) query that doesn't fall into one of
// the more specific suggestion categories
// below.
SEARCH_OTHER_ENGINE = 10; // A search with a non-default engine
EXTENSION_APP = 11; // An Extension App with a title/url that
// contains the input
CONTACT = 12; // One of the user's contacts
BOOKMARK_TITLE = 13; // A bookmark whose title contains the input.
SEARCH_SUGGEST_ENTITY = 14; // A suggested search for an entity.
SEARCH_SUGGEST_INFINITE = 15; // A suggested search to complete the tail
// of the query.
SEARCH_SUGGEST_PERSONALIZED = 16; // A personalized suggested search.
SEARCH_SUGGEST_PROFILE = 17; // A personalized suggested search for a
// Google+ profile.
APP_RESULT = 18; // Result from an installed app
// (eg: a gmail email).
// Used by Android GSA for on-device
// suggestion logging.
APP = 19; // An app result (eg: the gmail app).
// Used by Android GSA for on-device
// suggestion logging.
}
optional ResultType result_type = 2;
// The relevance score for this suggestion.
optional int32 relevance = 3;
// How many times this result was typed in / selected from the omnibox.
// Only set for some providers and result_types. At the time of
// writing this comment, it is only set for HistoryURL and
// HistoryQuickProvider matches.
optional int32 typed_count = 5;
// Whether this item is starred (bookmarked) or not.
optional bool is_starred = 4;
}
repeated Suggestion suggestion = 9;
// A data structure that holds per-provider information, general information
// not associated with a particular result.
// Next tag: 5
message ProviderInfo {
// Which provider generated this ProviderInfo entry.
optional ProviderType provider = 1;
// The provider's done() value, i.e., whether it's completed processing
// the query. Providers which don't do any asynchronous processing
// will always be done.
optional bool provider_done = 2;
// The set of field trials that have triggered in the most recent query,
// possibly affecting the shown suggestions. Each element is a hash
// of the corresponding field trial name.
// See chrome/browser/autocomplete/search_provider.cc for a specific usage
// example.
repeated fixed32 field_trial_triggered = 3;
// Same as above except that the set of field trials is a union of all field
// trials that have triggered within the current omnibox session including
// the most recent query.
// See AutocompleteController::ResetSession() for more details on the
// definition of a session.
// See chrome/browser/autocomplete/search_provider.cc for a specific usage
// example.
repeated fixed32 field_trial_triggered_in_session = 4;
}
// A list of diagnostic information about each provider. Providers
// will appear at most once in this list.
repeated ProviderInfo provider_info = 12;
}
|