Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(975)

Side by Side Diff: components/autofill/core/browser/autofill_metrics.h

Issue 23033016: Remove autocheckout code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Even more deletes, and Ilya review. Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_METRICS_H_ 5 #ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_METRICS_H_
6 #define COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_METRICS_H_ 6 #define COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_METRICS_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <string> 9 #include <string>
10 10
11 #include "base/basictypes.h" 11 #include "base/basictypes.h"
12 #include "components/autofill/core/browser/autofill_manager_delegate.h" 12 #include "components/autofill/core/browser/autofill_manager_delegate.h"
13 #include "components/autofill/core/browser/field_types.h" 13 #include "components/autofill/core/browser/field_types.h"
14 14
15 namespace base { 15 namespace base {
16 class TimeDelta; 16 class TimeDelta;
17 } 17 }
18 18
19 namespace autofill { 19 namespace autofill {
20 20
21 class AutofillMetrics { 21 class AutofillMetrics {
22 public: 22 public:
23 // The possible results of an Autocheckout flow.
24 enum AutocheckoutBuyFlowMetric {
25 // The user has initated Autocheckout. The baseline metric.
26 AUTOCHECKOUT_BUY_FLOW_STARTED,
27 // Autocheckout completed successfully.
28 AUTOCHECKOUT_BUY_FLOW_SUCCESS,
29 // Autocheckout failed due to missing server side data.
30 AUTOCHECKOUT_BUY_FLOW_MISSING_FIELDMAPPING,
31 // Autocheckout failed due to a missing proceed element.
32 AUTOCHECKOUT_BUY_FLOW_MISSING_ADVANCE_ELEMENT,
33 // Autocheckout failed for any number of other reasons, e.g, the proceed
34 // element click failed, the page numbers were not increasing, etc.
35 AUTOCHECKOUT_BUY_FLOW_CANNOT_PROCEED,
36 // Autocheckout failed due to a missing click element before form filling.
37 AUTOCHECKOUT_BUY_FLOW_MISSING_CLICK_ELEMENT_BEFORE_FORM_FILLING,
38 // Autocheckout failed due to a missing click element after form filling.
39 AUTOCHECKOUT_BUY_FLOW_MISSING_CLICK_ELEMENT_AFTER_FORM_FILLING,
40 NUM_AUTOCHECKOUT_BUY_FLOW_METRICS
41 };
42
43 // The success or failure of Autocheckout.
44 enum AutocheckoutCompletionStatus {
45 AUTOCHECKOUT_CANCELLED, // The user canceled Autocheckout while it was in
46 // progress.
47 AUTOCHECKOUT_FAILED, // The user canceled out of the dialog after
48 // an Autocheckout failure.
49 AUTOCHECKOUT_SUCCEEDED, // The dialog was closed after Autocheckout
50 // succeeded.
51 };
52
53 // The action a user took to dismiss a bubble.
54 enum BubbleMetric {
55 BUBBLE_CREATED = 0, // The bubble was created.
56 BUBBLE_ACCEPTED, // The user accepted, i.e. confirmed, the
57 // bubble.
58 BUBBLE_DISMISSED, // The user dismissed the bubble.
59 BUBBLE_IGNORED, // The user did not interact with the bubble.
60 BUBBLE_COULD_BE_DISPLAYED, // The bubble could be displayed.
61 NUM_BUBBLE_METRICS,
62 };
63
64 enum DeveloperEngagementMetric { 23 enum DeveloperEngagementMetric {
65 // Parsed a form that is potentially autofillable. 24 // Parsed a form that is potentially autofillable.
66 FILLABLE_FORM_PARSED = 0, 25 FILLABLE_FORM_PARSED = 0,
67 // Parsed a form that is potentially autofillable and contains at least one 26 // Parsed a form that is potentially autofillable and contains at least one
68 // web developer-specified field type hint, a la 27 // web developer-specified field type hint, a la
69 // http://is.gd/whatwg_autocomplete 28 // http://is.gd/whatwg_autocomplete
70 FILLABLE_FORM_CONTAINS_TYPE_HINTS, 29 FILLABLE_FORM_CONTAINS_TYPE_HINTS,
71 NUM_DEVELOPER_ENGAGEMENT_METRICS, 30 NUM_DEVELOPER_ENGAGEMENT_METRICS,
72 }; 31 };
73 32
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 DIALOG_USER_SIGNED_IN_NO_WALLET_NO_AUTOFILL, 71 DIALOG_USER_SIGNED_IN_NO_WALLET_NO_AUTOFILL,
113 // Signed in, no Wallet items, has verified Autofill profiles. 72 // Signed in, no Wallet items, has verified Autofill profiles.
114 DIALOG_USER_SIGNED_IN_NO_WALLET_HAS_AUTOFILL, 73 DIALOG_USER_SIGNED_IN_NO_WALLET_HAS_AUTOFILL,
115 // Signed in, has Wallet items, no verified Autofill profiles. 74 // Signed in, has Wallet items, no verified Autofill profiles.
116 DIALOG_USER_SIGNED_IN_HAS_WALLET_NO_AUTOFILL, 75 DIALOG_USER_SIGNED_IN_HAS_WALLET_NO_AUTOFILL,
117 // Signed in, has Wallet items, has verified Autofill profiles. 76 // Signed in, has Wallet items, has verified Autofill profiles.
118 DIALOG_USER_SIGNED_IN_HAS_WALLET_HAS_AUTOFILL, 77 DIALOG_USER_SIGNED_IN_HAS_WALLET_HAS_AUTOFILL,
119 NUM_DIALOG_INITIAL_USER_STATE_METRICS 78 NUM_DIALOG_INITIAL_USER_STATE_METRICS
120 }; 79 };
121 80
122 // Events related to the Autofill popup shown in a requestAutocomplete or 81 // Events related to the Autofill popup shown in a requestAutocomplete
123 // Autocheckout dialog. 82 // dialog.
124 enum DialogPopupEvent { 83 enum DialogPopupEvent {
125 // An Autofill popup was shown. 84 // An Autofill popup was shown.
126 DIALOG_POPUP_SHOWN = 0, 85 DIALOG_POPUP_SHOWN = 0,
127 // The user chose to fill the form with a suggestion from the popup. 86 // The user chose to fill the form with a suggestion from the popup.
128 DIALOG_POPUP_FORM_FILLED, 87 DIALOG_POPUP_FORM_FILLED,
129 NUM_DIALOG_POPUP_EVENTS 88 NUM_DIALOG_POPUP_EVENTS
130 }; 89 };
131 90
132 // For measuring the frequency of security warnings or errors that can come 91 // For measuring the frequency of security warnings or errors that can come
133 // up as part of the requestAutocomplete flow. 92 // up as part of the requestAutocomplete flow.
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 }; 248 };
290 249
291 // For measuring the network request time of various Wallet API calls. See 250 // For measuring the network request time of various Wallet API calls. See
292 // WalletClient::RequestType. 251 // WalletClient::RequestType.
293 enum WalletApiCallMetric { 252 enum WalletApiCallMetric {
294 UNKNOWN_API_CALL, // Catch all. Should never be used. 253 UNKNOWN_API_CALL, // Catch all. Should never be used.
295 ACCEPT_LEGAL_DOCUMENTS, 254 ACCEPT_LEGAL_DOCUMENTS,
296 AUTHENTICATE_INSTRUMENT, 255 AUTHENTICATE_INSTRUMENT,
297 GET_FULL_WALLET, 256 GET_FULL_WALLET,
298 GET_WALLET_ITEMS, 257 GET_WALLET_ITEMS,
299 SEND_STATUS,
300 SAVE_TO_WALLET, 258 SAVE_TO_WALLET,
301 }; 259 };
302 260
303 // For measuring the frequency of errors while communicating with the Wallet 261 // For measuring the frequency of errors while communicating with the Wallet
304 // server. 262 // server.
305 enum WalletErrorMetric { 263 enum WalletErrorMetric {
306 // Baseline metric: Issued a request to the Wallet server. 264 // Baseline metric: Issued a request to the Wallet server.
307 WALLET_ERROR_BASELINE_ISSUED_REQUEST = 0, 265 WALLET_ERROR_BASELINE_ISSUED_REQUEST = 0,
308 // A fatal error occured while communicating with the Wallet server. This 266 // A fatal error occured while communicating with the Wallet server. This
309 // value has been deprecated. 267 // value has been deprecated.
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
355 ACCEPT_TOS, 313 ACCEPT_TOS,
356 UPDATE_EXPIRATION_DATE, 314 UPDATE_EXPIRATION_DATE,
357 UPGRADE_MIN_ADDRESS, 315 UPGRADE_MIN_ADDRESS,
358 CHOOSE_ANOTHER_INSTRUMENT_OR_ADDRESS, 316 CHOOSE_ANOTHER_INSTRUMENT_OR_ADDRESS,
359 VERIFY_CVV, 317 VERIFY_CVV,
360 INVALID_FORM_FIELD, 318 INVALID_FORM_FIELD,
361 REQUIRE_PHONE_NUMBER, 319 REQUIRE_PHONE_NUMBER,
362 NUM_WALLET_REQUIRED_ACTIONS 320 NUM_WALLET_REQUIRED_ACTIONS
363 }; 321 };
364 322
365 // The success or failure of downloading Autocheckout whitelist file.
366 enum AutocheckoutWhitelistDownloadStatus {
367 AUTOCHECKOUT_WHITELIST_DOWNLOAD_FAILED,
368 AUTOCHECKOUT_WHITELIST_DOWNLOAD_SUCCEEDED,
369 };
370
371 AutofillMetrics(); 323 AutofillMetrics();
372 virtual ~AutofillMetrics(); 324 virtual ~AutofillMetrics();
373 325
374 // Logs how the user interacted with the Autocheckout bubble.
375 virtual void LogAutocheckoutBubbleMetric(BubbleMetric metric) const;
376
377 // Logs the result of an Autocheckout buy flow.
378 virtual void LogAutocheckoutBuyFlowMetric(
379 AutocheckoutBuyFlowMetric metric) const;
380
381 virtual void LogCreditCardInfoBarMetric(InfoBarMetric metric) const; 326 virtual void LogCreditCardInfoBarMetric(InfoBarMetric metric) const;
382 327
383 virtual void LogDeveloperEngagementMetric( 328 virtual void LogDeveloperEngagementMetric(
384 DeveloperEngagementMetric metric) const; 329 DeveloperEngagementMetric metric) const;
385 330
386 virtual void LogHeuristicTypePrediction( 331 virtual void LogHeuristicTypePrediction(
387 FieldTypeQualityMetric metric, 332 FieldTypeQualityMetric metric,
388 ServerFieldType field_type, 333 ServerFieldType field_type,
389 const std::string& experiment_id) const; 334 const std::string& experiment_id) const;
390 virtual void LogOverallTypePrediction( 335 virtual void LogOverallTypePrediction(
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
447 // Logs the network request time of Wallet API calls. 392 // Logs the network request time of Wallet API calls.
448 virtual void LogWalletApiCallDuration( 393 virtual void LogWalletApiCallDuration(
449 WalletApiCallMetric metric, 394 WalletApiCallMetric metric,
450 const base::TimeDelta& duration) const; 395 const base::TimeDelta& duration) const;
451 396
452 // Logs |required_action| to the required actions histogram for |dialog_type|. 397 // Logs |required_action| to the required actions histogram for |dialog_type|.
453 virtual void LogWalletRequiredActionMetric( 398 virtual void LogWalletRequiredActionMetric(
454 autofill::DialogType dialog_type, 399 autofill::DialogType dialog_type,
455 WalletRequiredActionMetric required_action) const; 400 WalletRequiredActionMetric required_action) const;
456 401
457 virtual void LogAutocheckoutDuration(
458 const base::TimeDelta& duration,
459 AutocheckoutCompletionStatus status) const;
460
461 // Logs the time taken to download Autocheckout whitelist file.
462 virtual void LogAutocheckoutWhitelistDownloadDuration(
463 const base::TimeDelta& duration,
464 AutocheckoutWhitelistDownloadStatus status) const;
465
466 // This should be called when a form that has been Autofilled is submitted. 402 // This should be called when a form that has been Autofilled is submitted.
467 // |duration| should be the time elapsed between form load and submission. 403 // |duration| should be the time elapsed between form load and submission.
468 virtual void LogFormFillDurationFromLoadWithAutofill( 404 virtual void LogFormFillDurationFromLoadWithAutofill(
469 const base::TimeDelta& duration) const; 405 const base::TimeDelta& duration) const;
470 406
471 // This should be called when a fillable form that has not been Autofilled is 407 // This should be called when a fillable form that has not been Autofilled is
472 // submitted. |duration| should be the time elapsed between form load and 408 // submitted. |duration| should be the time elapsed between form load and
473 // submission. 409 // submission.
474 virtual void LogFormFillDurationFromLoadWithoutAutofill( 410 virtual void LogFormFillDurationFromLoadWithoutAutofill(
475 const base::TimeDelta& duration) const; 411 const base::TimeDelta& duration) const;
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
507 virtual void LogServerExperimentIdForUpload( 443 virtual void LogServerExperimentIdForUpload(
508 const std::string& experiment_id) const; 444 const std::string& experiment_id) const;
509 445
510 private: 446 private:
511 DISALLOW_COPY_AND_ASSIGN(AutofillMetrics); 447 DISALLOW_COPY_AND_ASSIGN(AutofillMetrics);
512 }; 448 };
513 449
514 } // namespace autofill 450 } // namespace autofill
515 451
516 #endif // COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_METRICS_H_ 452 #endif // COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_METRICS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698