Disable view source for Developer Tools.
[chromium-blink-merge.git] / chrome / browser / omnibox / omnibox_log.h
blobf3b480963a6e3bb2f893704f446c4e1d200120e9
1 // Copyright 2013 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.
5 #ifndef CHROME_BROWSER_OMNIBOX_OMNIBOX_LOG_H_
6 #define CHROME_BROWSER_OMNIBOX_OMNIBOX_LOG_H_
8 #include <stddef.h>
10 #include "base/strings/string16.h"
11 #include "base/time/time.h"
12 #include "chrome/browser/autocomplete/autocomplete_input.h"
13 #include "chrome/browser/autocomplete/autocomplete_provider.h"
14 #include "chrome/browser/sessions/session_id.h"
16 class AutocompleteResult;
18 // The data to log (via the metrics service) when the user selects an item from
19 // the omnibox popup.
20 struct OmniboxLog {
21 OmniboxLog(
22 const base::string16& text,
23 bool just_deleted_text,
24 AutocompleteInput::Type input_type,
25 size_t selected_index,
26 SessionID::id_type tab_id,
27 AutocompleteInput::PageClassification current_page_classification,
28 base::TimeDelta elapsed_time_since_user_first_modified_omnibox,
29 size_t completed_length,
30 base::TimeDelta elapsed_time_since_last_change_to_default_match,
31 const AutocompleteResult& result);
32 ~OmniboxLog();
34 // The user's input text in the omnibox.
35 base::string16 text;
37 // Whether the user deleted text immediately before selecting an omnibox
38 // suggestion. This is usually the result of pressing backspace or delete.
39 bool just_deleted_text;
41 // The detected type of the user's input.
42 AutocompleteInput::Type input_type;
44 // Selected index (if selected) or -1 (OmniboxPopupModel::kNoMatch).
45 size_t selected_index;
47 // ID of the tab the selected autocomplete suggestion was opened in.
48 // Set to -1 if we haven't yet determined the destination tab.
49 SessionID::id_type tab_id;
51 // The type of page (e.g., new tab page, regular web page) that the
52 // user was viewing before going somewhere with the omnibox.
53 AutocompleteInput::PageClassification current_page_classification;
55 // The amount of time since the user first began modifying the text
56 // in the omnibox. If at some point after modifying the text, the
57 // user reverts the modifications (thus seeing the current web
58 // page's URL again), then writes in the omnibox again, this time
59 // delta should be computed starting from the second series of
60 // modifications. If we somehow skipped the logic to record
61 // the time the user began typing (this should only happen in
62 // unit tests), this elapsed time is set to -1 milliseconds.
63 base::TimeDelta elapsed_time_since_user_first_modified_omnibox;
65 // The number of extra characters the user would have to manually type
66 // if she/he were not given the opportunity to select this match. Set to
67 // base::string16::npos if not available.
68 size_t completed_length;
70 // The amount of time since the last time the default (i.e., inline)
71 // match changed. This will certainly be less than
72 // elapsed_time_since_user_first_modified_omnibox.
73 base::TimeDelta elapsed_time_since_last_change_to_default_match;
75 // Result set.
76 const AutocompleteResult& result;
78 // Diagnostic information from providers. See
79 // AutocompleteController::AddProvidersInfo() and
80 // AutocompleteProvider::AddProviderInfo() above.
81 ProvidersInfo providers_info;
84 #endif // CHROME_BROWSER_OMNIBOX_OMNIBOX_LOG_H_