// 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. #include "chrome/common/password_generation_util.h" #include "base/metrics/histogram.h" namespace { // Enumerates user actions after password generation bubble is shown. enum UserAction { // User closes the bubble without any meaningful actions (e.g. use backspace // key, close the bubble, click outside the bubble, etc). IGNORE_FEATURE, // User navigates to the learn more page. Note that in the current // implementation this will result in closing the bubble so this action // doesn't overlap with the following two actions. LEARN_MORE, // User accepts the generated password without manually editing it (but // including changing it through the regenerate button). ACCEPT_ORIGINAL_PASSWORD, // User accepts the gererated password after manually editing it. ACCEPT_AFTER_EDITING, // Number of enum entries, used for UMA histogram reporting macros. ACTION_ENUM_COUNT }; } // anonymous namespace namespace password_generation { PasswordGenerationActions::PasswordGenerationActions() : learn_more_visited(false), password_accepted(false), password_edited(false), password_regenerated(false) { } PasswordGenerationActions::~PasswordGenerationActions() { } void LogUserActions(PasswordGenerationActions actions) { UserAction action = IGNORE_FEATURE; if (actions.password_accepted) { if (actions.password_edited) action = ACCEPT_AFTER_EDITING; else action = ACCEPT_ORIGINAL_PASSWORD; } else if (actions.learn_more_visited) { action = LEARN_MORE; } UMA_HISTOGRAM_ENUMERATION("PasswordGeneration.UserActions", action, ACTION_ENUM_COUNT); } void LogPasswordGenerationEvent(PasswordGenerationEvent event) { UMA_HISTOGRAM_ENUMERATION("PasswordGeneration.Event", event, EVENT_ENUM_COUNT); } } // namespace password_generation