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 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289
|
// Copyright 2014 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;
option java_outer_classname = "OmniboxEventProtos";
option java_package = "org.chromium.components.metrics";
package metrics;
import "omnibox_input_type.proto";
// Next tag: 17
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 ChromeUserMetricsExtensionProto).
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;
// DEPRECATED. Whether or not the top match was hidden in the omnibox
// suggestions dropdown.
optional bool DEPRECATED_is_top_result_hidden_in_dropdown = 14
[deprecated = true];
// Whether the omnibox popup is open. It can be closed if, for instance,
// the user clicks in the omnibox and hits return to reload the same page.
// If the popup is closed, the suggestion list will contain only one item
// and selected_index will be 0 (pointing to that single item). Because
// paste-and-search/paste-and-go actions ignore the current content of the
// omnibox dropdown (if it is open) when they happen, we pretend the
// dropdown is closed when logging these.
optional bool is_popup_open = 15;
// True if this is a paste-and-search or paste-and-go action. (The codebase
// refers to both these types as paste-and-go.)
optional bool is_paste_and_go = 16;
// 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 suggestions that are allowed to be the default
// match and omitted otherwise. The first suggestion is always allowed to
// be the default match. (This is an enforced constraint.) Hence, if
// |selected_index| == 0, then this field will always be set.
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 search term replacement enum value was deprecated in August 2016.
OBSOLETE_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;
// The user is on the home screen.
APP_HOME = 10;
// The user is in the search app.
APP_SEARCH = 11;
// The user is in the maps app.
APP_MAPS = 12;
// 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;
optional OmniboxInputType.Type 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; // DEPRECATED. Suggestions from extensions or apps
CONTACT = 9; // DEPRECATED. 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;
// This enum value is currently only used by Android GSA. It represents
// a suggestion powered by a Chrome content provider.
ON_DEVICE_CHROME = 13;
CLIPBOARD_URL = 14; // Suggestion coming from clipboard (iOS only).
PHYSICAL_WEB = 15; // Suggestions triggered by URLs broadcast by nearby
// devices (iOS only).
}
// The result set displayed on the completion popup
// Next tag: 7
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
// components/omnibox/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; // DEPRECATED. 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) for a query.
SEARCH_OTHER_ENGINE = 10; // A search with a non-default engine
EXTENSION_APP = 11; // DEPRECATED. 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_TAIL = 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.
LEGACY_ON_DEVICE = 20; // An on-device result from a legacy
// provider. That is, this result is not
// from the on-device suggestion provider
// (go/icing). This field is
// used by Android GSA for on-device
// suggestion logging.
NAVSUGGEST_PERSONALIZED = 21; // A personalized url.
SEARCH_SUGGEST_ANSWER = 22; // DEPRECATED. Answers no longer have their
// own type but instead can be attached to
// suggestions of any type.
CALCULATOR = 23; // A calculator answer.
CLIPBOARD = 24; // An URL based on the clipboard.
PHYSICAL_WEB = 25; // A Physical Web nearby URL.
PHYSICAL_WEB_OVERFLOW = 26; // An item representing multiple Physical
// Web nearby URLs.
}
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 [deprecated=true];
// Whether this item is disabled in the UI (not clickable).
optional bool is_disabled = 6;
}
repeated Suggestion suggestion = 9;
// A data structure that holds per-provider information, general information
// not associated with a particular result.
// Next tag: 6
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;
// The number of times this provider returned a non-zero number of
// suggestions during this omnibox session.
// Note that each provider may define a session differently for its
// purposes.
optional int32 times_returned_results_in_session = 5;
}
// A list of diagnostic information about each provider. Providers
// will appear at most once in this list.
repeated ProviderInfo provider_info = 12;
}
|