| Index: chrome/browser/autofill/autofill_metrics.h
|
| diff --git a/chrome/browser/autofill/autofill_metrics.h b/chrome/browser/autofill/autofill_metrics.h
|
| deleted file mode 100644
|
| index ca60f8ec4a11338c8aabfdb2f2e8ab50ce0158d7..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/autofill/autofill_metrics.h
|
| +++ /dev/null
|
| @@ -1,248 +0,0 @@
|
| -// Copyright (c) 2011 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.
|
| -
|
| -#ifndef CHROME_BROWSER_AUTOFILL_AUTOFILL_METRICS_H_
|
| -#define CHROME_BROWSER_AUTOFILL_AUTOFILL_METRICS_H_
|
| -
|
| -#include <stddef.h>
|
| -#include <string>
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "chrome/browser/autofill/autofill_manager_delegate.h"
|
| -#include "chrome/browser/autofill/field_types.h"
|
| -
|
| -namespace base {
|
| -class TimeDelta;
|
| -}
|
| -
|
| -class AutofillMetrics {
|
| - public:
|
| - // The success or failure of Autocheckout.
|
| - enum AutocheckoutCompletionStatus {
|
| - AUTOCHECKOUT_FAILED, // The user canceled out of the dialog after
|
| - // an Autocheckout failure.
|
| - AUTOCHECKOUT_SUCCEEDED, // The dialog was closed after Autocheckout
|
| - // succeeded.
|
| - };
|
| -
|
| - // The action a user took to dismiss a bubble.
|
| - enum BubbleMetric {
|
| - BUBBLE_CREATED = 0, // The bubble was created.
|
| - BUBBLE_ACCEPTED, // The user accepted, i.e. confirmed, the bubble.
|
| - BUBBLE_DISMISSED, // The user dismissed the bubble.
|
| - BUBBLE_IGNORED, // The user did not interact with the bubble.
|
| - NUM_BUBBLE_METRICS,
|
| - };
|
| -
|
| - enum DeveloperEngagementMetric {
|
| - // Parsed a form that is potentially autofillable.
|
| - FILLABLE_FORM_PARSED = 0,
|
| - // Parsed a form that is potentially autofillable and contains at least one
|
| - // web developer-specified field type hint, a la
|
| - // http://is.gd/whatwg_autocomplete
|
| - FILLABLE_FORM_CONTAINS_TYPE_HINTS,
|
| - NUM_DEVELOPER_ENGAGEMENT_METRICS,
|
| - };
|
| -
|
| - // The action the user took to dismiss a dialog.
|
| - enum DialogDismissalAction {
|
| - DIALOG_ACCEPTED = 0, // The user accepted, i.e. confirmed, the dialog.
|
| - DIALOG_CANCELED, // The user canceled out of the dialog.
|
| - };
|
| -
|
| - enum InfoBarMetric {
|
| - INFOBAR_SHOWN = 0, // We showed an infobar, e.g. prompting to save credit
|
| - // card info.
|
| - INFOBAR_ACCEPTED, // The user explicitly accepted the infobar.
|
| - INFOBAR_DENIED, // The user explicitly denied the infobar.
|
| - INFOBAR_IGNORED, // The user completely ignored the infobar (logged on
|
| - // tab close).
|
| - NUM_INFO_BAR_METRICS,
|
| - };
|
| -
|
| - // Metrics measuring how well we predict field types. Exactly three such
|
| - // metrics are logged for each fillable field in a submitted form: for
|
| - // the heuristic prediction, for the crowd-sourced prediction, and for the
|
| - // overall prediction.
|
| - enum FieldTypeQualityMetric {
|
| - TYPE_UNKNOWN = 0, // Offered no prediction.
|
| - TYPE_MATCH, // Predicted correctly.
|
| - TYPE_MISMATCH, // Predicted incorrectly.
|
| - NUM_FIELD_TYPE_QUALITY_METRICS,
|
| - };
|
| -
|
| - enum QualityMetric {
|
| - // Logged for each potentially fillable field in a submitted form.
|
| - FIELD_SUBMITTED = 0,
|
| -
|
| - // A simple successs metric, logged for each field that returns true for
|
| - // |is_autofilled()|.
|
| - FIELD_AUTOFILLED,
|
| -
|
| - // A simple failure metric, logged for each field that returns false for
|
| - // |is_autofilled()| but has a value that is present in the personal data
|
| - // manager.
|
| - FIELD_NOT_AUTOFILLED,
|
| -
|
| - // The below are only logged when |FIELD_AUTOFILL_FAILED| is also logged.
|
| - NOT_AUTOFILLED_HEURISTIC_TYPE_UNKNOWN,
|
| - NOT_AUTOFILLED_HEURISTIC_TYPE_MATCH,
|
| - NOT_AUTOFILLED_HEURISTIC_TYPE_MISMATCH,
|
| - NOT_AUTOFILLED_SERVER_TYPE_UNKNOWN,
|
| - NOT_AUTOFILLED_SERVER_TYPE_MATCH,
|
| - NOT_AUTOFILLED_SERVER_TYPE_MISMATCH,
|
| - NUM_QUALITY_METRICS,
|
| - };
|
| -
|
| - // Each of these is logged at most once per query to the server, which in turn
|
| - // occurs at most once per page load.
|
| - enum ServerQueryMetric {
|
| - QUERY_SENT = 0, // Sent a query to the server.
|
| - QUERY_RESPONSE_RECEIVED, // Received a response.
|
| - QUERY_RESPONSE_PARSED, // Successfully parsed the server response.
|
| -
|
| - // The response was parseable, but provided no improvements relative to our
|
| - // heuristics.
|
| - QUERY_RESPONSE_MATCHED_LOCAL_HEURISTICS,
|
| -
|
| - // Our heuristics detected at least one auto-fillable field, and the server
|
| - // response overrode the type of at least one field.
|
| - QUERY_RESPONSE_OVERRODE_LOCAL_HEURISTICS,
|
| -
|
| - // Our heuristics did not detect any auto-fillable fields, but the server
|
| - // response did detect at least one.
|
| - QUERY_RESPONSE_WITH_NO_LOCAL_HEURISTICS,
|
| - NUM_SERVER_QUERY_METRICS,
|
| - };
|
| -
|
| - // Each of these metrics is logged only for potentially autofillable forms,
|
| - // i.e. forms with at least three fields, etc.
|
| - // These are used to derive certain "user happiness" metrics. For example, we
|
| - // can compute the ratio (USER_DID_EDIT_AUTOFILLED_FIELD / USER_DID_AUTOFILL)
|
| - // to see how often users have to correct autofilled data.
|
| - enum UserHappinessMetric {
|
| - // Loaded a page containing forms.
|
| - FORMS_LOADED,
|
| - // Submitted a fillable form -- i.e. one with at least three field values
|
| - // that match the user's stored Autofill data -- and all matching fields
|
| - // were autofilled.
|
| - SUBMITTED_FILLABLE_FORM_AUTOFILLED_ALL,
|
| - // Submitted a fillable form and some (but not all) matching fields were
|
| - // autofilled.
|
| - SUBMITTED_FILLABLE_FORM_AUTOFILLED_SOME,
|
| - // Submitted a fillable form and no fields were autofilled.
|
| - SUBMITTED_FILLABLE_FORM_AUTOFILLED_NONE,
|
| - // Submitted a non-fillable form.
|
| - SUBMITTED_NON_FILLABLE_FORM,
|
| -
|
| - // User manually filled one of the form fields.
|
| - USER_DID_TYPE,
|
| - // We showed a popup containing Autofill suggestions.
|
| - SUGGESTIONS_SHOWN,
|
| - // Same as above, but only logged once per page load.
|
| - SUGGESTIONS_SHOWN_ONCE,
|
| - // User autofilled at least part of the form.
|
| - USER_DID_AUTOFILL,
|
| - // Same as above, but only logged once per page load.
|
| - USER_DID_AUTOFILL_ONCE,
|
| - // User edited a previously autofilled field.
|
| - USER_DID_EDIT_AUTOFILLED_FIELD,
|
| - // Same as above, but only logged once per page load.
|
| - USER_DID_EDIT_AUTOFILLED_FIELD_ONCE,
|
| - NUM_USER_HAPPINESS_METRICS,
|
| - };
|
| -
|
| - AutofillMetrics();
|
| - virtual ~AutofillMetrics();
|
| -
|
| - // Logs how the user interacted with the Autocheckout bubble.
|
| - virtual void LogAutocheckoutBubbleMetric(BubbleMetric metric) const;
|
| -
|
| - virtual void LogCreditCardInfoBarMetric(InfoBarMetric metric) const;
|
| -
|
| - virtual void LogDeveloperEngagementMetric(
|
| - DeveloperEngagementMetric metric) const;
|
| -
|
| - virtual void LogHeuristicTypePrediction(
|
| - FieldTypeQualityMetric metric,
|
| - AutofillFieldType field_type,
|
| - const std::string& experiment_id) const;
|
| - virtual void LogOverallTypePrediction(
|
| - FieldTypeQualityMetric metric,
|
| - AutofillFieldType field_type,
|
| - const std::string& experiment_id) const;
|
| - virtual void LogServerTypePrediction(FieldTypeQualityMetric metric,
|
| - AutofillFieldType field_type,
|
| - const std::string& experiment_id) const;
|
| -
|
| - virtual void LogQualityMetric(QualityMetric metric,
|
| - const std::string& experiment_id) const;
|
| -
|
| - virtual void LogServerQueryMetric(ServerQueryMetric metric) const;
|
| -
|
| - virtual void LogUserHappinessMetric(UserHappinessMetric metric) const;
|
| -
|
| - // This should be called when the requestAutocomplete dialog, invoked by the
|
| - // |requester|, is closed. |duration| should be the time elapsed between the
|
| - // dialog being shown and it being closed. |dismissal_action| should indicate
|
| - // whether the user dismissed the dialog by submitting the form data or by
|
| - // cancelling.
|
| - virtual void LogRequestAutocompleteUiDuration(
|
| - const base::TimeDelta& duration,
|
| - autofill::DialogType dialog_type,
|
| - DialogDismissalAction dismissal_action) const;
|
| -
|
| - virtual void LogAutocheckoutDuration(
|
| - const base::TimeDelta& duration,
|
| - AutocheckoutCompletionStatus status) const;
|
| -
|
| - // This should be called when a form that has been Autofilled is submitted.
|
| - // |duration| should be the time elapsed between form load and submission.
|
| - virtual void LogFormFillDurationFromLoadWithAutofill(
|
| - const base::TimeDelta& duration) const;
|
| -
|
| - // This should be called when a fillable form that has not been Autofilled is
|
| - // submitted. |duration| should be the time elapsed between form load and
|
| - // submission.
|
| - virtual void LogFormFillDurationFromLoadWithoutAutofill(
|
| - const base::TimeDelta& duration) const;
|
| -
|
| - // This should be called when a form that has been Autofilled is submitted.
|
| - // |duration| should be the time elapsed between the initial form interaction
|
| - // and submission.
|
| - virtual void LogFormFillDurationFromInteractionWithAutofill(
|
| - const base::TimeDelta& duration) const;
|
| -
|
| - // This should be called when a fillable form that has not been Autofilled is
|
| - // submitted. |duration| should be the time elapsed between the initial form
|
| - // interaction and submission.
|
| - virtual void LogFormFillDurationFromInteractionWithoutAutofill(
|
| - const base::TimeDelta& duration) const;
|
| -
|
| - // This should be called each time a page containing forms is loaded.
|
| - virtual void LogIsAutofillEnabledAtPageLoad(bool enabled) const;
|
| -
|
| - // This should be called each time a new profile is launched.
|
| - virtual void LogIsAutofillEnabledAtStartup(bool enabled) const;
|
| -
|
| - // This should be called each time a new profile is launched.
|
| - virtual void LogStoredProfileCount(size_t num_profiles) const;
|
| -
|
| - // Log the number of Autofill suggestions presented to the user when filling a
|
| - // form.
|
| - virtual void LogAddressSuggestionsCount(size_t num_suggestions) const;
|
| -
|
| - // Logs the experiment id corresponding to a server query response.
|
| - virtual void LogServerExperimentIdForQuery(
|
| - const std::string& experiment_id) const;
|
| -
|
| - // Logs the experiment id corresponding to an upload to the server.
|
| - virtual void LogServerExperimentIdForUpload(
|
| - const std::string& experiment_id) const;
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(AutofillMetrics);
|
| -};
|
| -
|
| -#endif // CHROME_BROWSER_AUTOFILL_AUTOFILL_METRICS_H_
|
|
|