OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_BROWSER_OMNIBOX_OMNIBOX_LOG_H_ | 5 #ifndef CHROME_BROWSER_OMNIBOX_OMNIBOX_LOG_H_ |
6 #define CHROME_BROWSER_OMNIBOX_OMNIBOX_LOG_H_ | 6 #define CHROME_BROWSER_OMNIBOX_OMNIBOX_LOG_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 | 9 |
10 #include "base/strings/string16.h" | 10 #include "base/strings/string16.h" |
11 #include "base/time/time.h" | 11 #include "base/time/time.h" |
12 #include "chrome/browser/autocomplete/autocomplete_input.h" | 12 #include "chrome/browser/autocomplete/autocomplete_input.h" |
13 #include "chrome/browser/autocomplete/autocomplete_provider.h" | 13 #include "chrome/browser/autocomplete/autocomplete_provider.h" |
14 #include "chrome/browser/sessions/session_id.h" | 14 #include "chrome/browser/sessions/session_id.h" |
15 | 15 |
16 class AutocompleteResult; | 16 class AutocompleteResult; |
17 | 17 |
18 // The data to log (via the metrics service) when the user selects an item from | 18 // The data to log (via the metrics service) when the user selects an item from |
19 // the omnibox popup. | 19 // the omnibox popup. |
20 struct OmniboxLog { | 20 struct OmniboxLog { |
21 OmniboxLog( | 21 OmniboxLog( |
22 const string16& text, | 22 const string16& text, |
23 bool just_deleted_text, | 23 bool just_deleted_text, |
24 AutocompleteInput::Type input_type, | 24 AutocompleteInput::Type input_type, |
25 size_t selected_index, | 25 size_t selected_index, |
26 SessionID::id_type tab_id, | 26 SessionID::id_type tab_id, |
27 AutocompleteInput::PageClassification current_page_classification, | 27 AutocompleteInput::OmniboxContext omnibox_context, |
28 base::TimeDelta elapsed_time_since_user_first_modified_omnibox, | 28 base::TimeDelta elapsed_time_since_user_first_modified_omnibox, |
29 size_t completed_length, | 29 size_t completed_length, |
30 base::TimeDelta elapsed_time_since_last_change_to_default_match, | 30 base::TimeDelta elapsed_time_since_last_change_to_default_match, |
31 const AutocompleteResult& result); | 31 const AutocompleteResult& result); |
32 ~OmniboxLog(); | 32 ~OmniboxLog(); |
33 | 33 |
34 // The user's input text in the omnibox. | 34 // The user's input text in the omnibox. |
35 string16 text; | 35 string16 text; |
36 | 36 |
37 // Whether the user deleted text immediately before selecting an omnibox | 37 // Whether the user deleted text immediately before selecting an omnibox |
38 // suggestion. This is usually the result of pressing backspace or delete. | 38 // suggestion. This is usually the result of pressing backspace or delete. |
39 bool just_deleted_text; | 39 bool just_deleted_text; |
40 | 40 |
41 // The detected type of the user's input. | 41 // The detected type of the user's input. |
42 AutocompleteInput::Type input_type; | 42 AutocompleteInput::Type input_type; |
43 | 43 |
44 // Selected index (if selected) or -1 (OmniboxPopupModel::kNoMatch). | 44 // Selected index (if selected) or -1 (OmniboxPopupModel::kNoMatch). |
45 size_t selected_index; | 45 size_t selected_index; |
46 | 46 |
47 // ID of the tab the selected autocomplete suggestion was opened in. | 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. | 48 // Set to -1 if we haven't yet determined the destination tab. |
49 SessionID::id_type tab_id; | 49 SessionID::id_type tab_id; |
50 | 50 |
51 // The type of page (e.g., new tab page, regular web page) that the | 51 // The user's context (e.g., new tab page, regular web page) when the omnibox |
52 // user was viewing before going somewhere with the omnibox. | 52 // input was initiated. |
53 AutocompleteInput::PageClassification current_page_classification; | 53 AutocompleteInput::OmniboxContext omnibox_context; |
54 | 54 |
55 // The amount of time since the user first began modifying the text | 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 | 56 // in the omnibox. If at some point after modifying the text, the |
57 // user reverts the modifications (thus seeing the current web | 57 // user reverts the modifications (thus seeing the current web |
58 // page's URL again), then writes in the omnibox again, this time | 58 // page's URL again), then writes in the omnibox again, this time |
59 // delta should be computed starting from the second series of | 59 // delta should be computed starting from the second series of |
60 // modifications. If we somehow skipped the logic to record | 60 // modifications. If we somehow skipped the logic to record |
61 // the time the user began typing (this should only happen in | 61 // the time the user began typing (this should only happen in |
62 // unit tests), this elapsed time is set to -1 milliseconds. | 62 // unit tests), this elapsed time is set to -1 milliseconds. |
63 base::TimeDelta elapsed_time_since_user_first_modified_omnibox; | 63 base::TimeDelta elapsed_time_since_user_first_modified_omnibox; |
(...skipping 11 matching lines...) Expand all Loading... |
75 // Result set. | 75 // Result set. |
76 const AutocompleteResult& result; | 76 const AutocompleteResult& result; |
77 | 77 |
78 // Diagnostic information from providers. See | 78 // Diagnostic information from providers. See |
79 // AutocompleteController::AddProvidersInfo() and | 79 // AutocompleteController::AddProvidersInfo() and |
80 // AutocompleteProvider::AddProviderInfo() above. | 80 // AutocompleteProvider::AddProviderInfo() above. |
81 ProvidersInfo providers_info; | 81 ProvidersInfo providers_info; |
82 }; | 82 }; |
83 | 83 |
84 #endif // CHROME_BROWSER_OMNIBOX_OMNIBOX_LOG_H_ | 84 #endif // CHROME_BROWSER_OMNIBOX_OMNIBOX_LOG_H_ |
OLD | NEW |