summaryrefslogtreecommitdiffstats
path: root/chrome/common/metrics/proto/omnibox_event.proto
blob: f37780014dedc64efadb8b4aa8191d7a918cb66d (plain)
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
// 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: 13
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;

  // 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.
  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 type of page currently displayed when the user used the omnibox.
  enum PageClassification {
    INVALID_SPEC = 0;   // invalid URI; shouldn't happen
    NEW_TAB_PAGE = 1;   // chrome://newtab/
    // Note that chrome://newtab/ doesn't have to be the built-in
    // version; it could be replaced by an extension.
    BLANK = 2;          // about:blank
    HOMEPAGE = 3;       // user switched settings to "open this page" mode.
    // Note that if the homepage is set to the new tab page or about blank,
    // then we'll classify the web page into those categories, not HOMEPAGE.
    OTHER = 4;          // everything else
  }
  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;  // 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
  }

  // 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
    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)
      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.
    };
    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.
  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;
  }
  // A list of diagnostic information about each provider.  Providers
  // will appear at most once in this list.
  repeated ProviderInfo provider_info = 12;
}