1// Copyright 2014 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.
4
5#ifndef COMPONENTS_PASSWORD_MANAGER_CORE_COMMON_PASSWORD_MANAGER_UI_H_
6#define COMPONENTS_PASSWORD_MANAGER_CORE_COMMON_PASSWORD_MANAGER_UI_H_
7
8#include "base/basictypes.h"
9
10namespace password_manager {
11
12namespace ui {
13
14// The current state of the password manager's UI.
15enum State {
16  // The password manager has nothing to do with the current site.
17  INACTIVE_STATE,
18
19  // A password has been typed in and submitted successfully. Now we need to
20  // display an Omnibox icon, and pop up a bubble asking the user whether
21  // they'd like to save the password.
22  PENDING_PASSWORD_AND_BUBBLE_STATE,
23
24  // A password is pending, but we don't need to pop up a bubble.
25  PENDING_PASSWORD_STATE,
26
27  // A password has been saved and we wish to display UI confirming the save
28  // to the user.
29  CONFIRMATION_STATE,
30
31  // A password has been autofilled, or has just been saved. The icon needs
32  // to be visible, in the management state.
33  MANAGE_STATE,
34
35  // The user has blacklisted the site rendered in the current WebContents.
36  // The icon needs to be visible, in the blacklisted state.
37  BLACKLIST_STATE,
38};
39
40// The position of a password item in a list of credentials.
41enum PasswordItemPosition {
42  // The password item is the first in the list.
43  FIRST_ITEM,
44
45  // The password item is not the first item in the list.
46  SUBSEQUENT_ITEM,
47};
48
49// Returns true if |state| represents a pending password.
50bool IsPendingState(State state);
51
52// Returns true if this state show cause the bubble to be shown without user
53// interaction.
54bool IsAutomaticDisplayState(State state);
55
56// Returns the state that the bubble should be in after the automatic display
57// occurs.
58State GetEndStateForAutomaticState(State state);
59
60}  // namespace ui
61
62}  // namespace password_manager
63
64#endif  // COMPONENTS_PASSWORD_MANAGER_CORE_COMMON_PASSWORD_MANAGER_UI_H_
65