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

Side by Side Diff: chrome/browser/ui/passwords/manage_passwords_ui_controller.h

Issue 928753003: Clean password_manager::ui::State (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Merge with master Created 5 years, 10 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 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_UI_PASSWORDS_MANAGE_PASSWORDS_UI_CONTROLLER_H_ 5 #ifndef CHROME_BROWSER_UI_PASSWORDS_MANAGE_PASSWORDS_UI_CONTROLLER_H_
6 #define CHROME_BROWSER_UI_PASSWORDS_MANAGE_PASSWORDS_UI_CONTROLLER_H_ 6 #define CHROME_BROWSER_UI_PASSWORDS_MANAGE_PASSWORDS_UI_CONTROLLER_H_
7 7
8 #include "base/memory/scoped_vector.h" 8 #include "base/memory/scoped_vector.h"
9 #include "base/timer/elapsed_timer.h" 9 #include "base/timer/elapsed_timer.h"
10 #include "components/autofill/core/common/password_form.h" 10 #include "components/autofill/core/common/password_form.h"
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 101
102 virtual const autofill::PasswordForm& PendingPassword() const; 102 virtual const autofill::PasswordForm& PendingPassword() const;
103 103
104 // Set the state of the Omnibox icon, and possibly show the associated bubble 104 // Set the state of the Omnibox icon, and possibly show the associated bubble
105 // without user interaction. 105 // without user interaction.
106 virtual void UpdateIconAndBubbleState(ManagePasswordsIcon* icon); 106 virtual void UpdateIconAndBubbleState(ManagePasswordsIcon* icon);
107 107
108 // Called from the model when the bubble is displayed. 108 // Called from the model when the bubble is displayed.
109 void OnBubbleShown(); 109 void OnBubbleShown();
110 110
111 // Called from the model when the bubble is hidden.
112 void OnBubbleHidden();
113
111 password_manager::ui::State state() const { return state_; } 114 password_manager::ui::State state() const { return state_; }
112 115
113 ScopedVector<autofill::PasswordForm>& federated_credentials_forms() { 116 ScopedVector<autofill::PasswordForm>& federated_credentials_forms() {
114 return federated_credentials_forms_; 117 return federated_credentials_forms_;
115 } 118 }
116 119
117 ScopedVector<autofill::PasswordForm>& local_credentials_forms() { 120 ScopedVector<autofill::PasswordForm>& local_credentials_forms() {
118 return local_credentials_forms_; 121 return local_credentials_forms_;
119 } 122 }
120 123
121 // True if a password is sitting around, waiting for a user to decide whether 124 // True if a password is sitting around, waiting for a user to decide whether
122 // or not to save it. 125 // or not to save it.
123 bool PasswordPendingUserDecision() const; 126 bool PasswordPendingUserDecision() const;
124 127
125 const autofill::ConstPasswordFormMap& best_matches() const { 128 const autofill::ConstPasswordFormMap& best_matches() const {
126 return password_form_map_; 129 return password_form_map_;
127 } 130 }
128 131
129 const GURL& origin() const { return origin_; } 132 const GURL& origin() const { return origin_; }
130 133
134 bool IsAutomaticallyOpeningBubble() const { return should_pop_up_bubble_; }
135
131 protected: 136 protected:
132 explicit ManagePasswordsUIController( 137 explicit ManagePasswordsUIController(
133 content::WebContents* web_contents); 138 content::WebContents* web_contents);
134 139
135 // The pieces of saving and blacklisting passwords that interact with 140 // The pieces of saving and blacklisting passwords that interact with
136 // FormManager, split off into internal functions for testing/mocking. 141 // FormManager, split off into internal functions for testing/mocking.
137 virtual void SavePasswordInternal(); 142 virtual void SavePasswordInternal();
138 virtual void NeverSavePasswordInternal(); 143 virtual void NeverSavePasswordInternal();
139 144
140 // Called when a passwordform is autofilled, when a new passwordform is 145 // Called when a passwordform is autofilled, when a new passwordform is
(...skipping 29 matching lines...) Expand all
170 ScopedVector<autofill::PasswordForm> local_credentials_forms_; 175 ScopedVector<autofill::PasswordForm> local_credentials_forms_;
171 176
172 // All previously stored credentials for a specific site. 177 // All previously stored credentials for a specific site.
173 // Protected, not private, so we can mess with the value in 178 // Protected, not private, so we can mess with the value in
174 // ManagePasswordsUIControllerMock. 179 // ManagePasswordsUIControllerMock.
175 autofill::ConstPasswordFormMap password_form_map_; 180 autofill::ConstPasswordFormMap password_form_map_;
176 181
177 private: 182 private:
178 friend class content::WebContentsUserData<ManagePasswordsUIController>; 183 friend class content::WebContentsUserData<ManagePasswordsUIController>;
179 184
180 // Shows the password bubble without user interaction. The controller MUST 185 // Shows the password bubble without user interaction.
181 // be in PENDING_PASSWORD_AND_BUBBLE_STATE.
182 void ShowBubbleWithoutUserInteraction(); 186 void ShowBubbleWithoutUserInteraction();
183 187
184 // content::WebContentsObserver: 188 // content::WebContentsObserver:
185 void WebContentsDestroyed() override; 189 void WebContentsDestroyed() override;
186 190
187 // The current state of the password manager UI. 191 // The current state of the password manager UI.
188 password_manager::ui::State state_; 192 password_manager::ui::State state_;
189 193
190 // Used to measure the amount of time on a page; if it's less than some 194 // Used to measure the amount of time on a page; if it's less than some
191 // reasonable limit, then don't close the bubble upon navigation. We create 195 // reasonable limit, then don't close the bubble upon navigation. We create
192 // (and destroy) the timer in DidNavigateMainFrame. 196 // (and destroy) the timer in DidNavigateMainFrame.
193 scoped_ptr<base::ElapsedTimer> timer_; 197 scoped_ptr<base::ElapsedTimer> timer_;
194 198
195 // Set by OnPasswordSubmitted() when the user submits a form containing login 199 // Set by OnPasswordSubmitted() when the user submits a form containing login
196 // information. If the user responds to a subsequent "Do you want to save 200 // information. If the user responds to a subsequent "Do you want to save
197 // this password?" prompt, we ask this object to save or blacklist the 201 // this password?" prompt, we ask this object to save or blacklist the
198 // associated login information in Chrome's password store. 202 // associated login information in Chrome's password store.
199 scoped_ptr<password_manager::PasswordFormManager> form_manager_; 203 scoped_ptr<password_manager::PasswordFormManager> form_manager_;
200 204
201 // A callback to be invoked when user selects a credential. 205 // A callback to be invoked when user selects a credential.
202 base::Callback<void(const password_manager::CredentialInfo&)> 206 base::Callback<void(const password_manager::CredentialInfo&)>
203 credentials_callback_; 207 credentials_callback_;
204 208
205 // Contains true is the bubble's appeared during the last call to 209 // Contains true if the bubble is to be popped up in the next call to
206 // UpdateBubbleAndIconVisibility(). 210 // UpdateBubbleAndIconVisibility().
207 bool bubble_shown_; 211 bool should_pop_up_bubble_;
208 212
209 // The origin of the form we're currently dealing with; we'll use this to 213 // The origin of the form we're currently dealing with; we'll use this to
210 // determine which PasswordStore changes we should care about when updating 214 // determine which PasswordStore changes we should care about when updating
211 // |password_form_map_|. 215 // |password_form_map_|.
212 GURL origin_; 216 GURL origin_;
213 217
214 DISALLOW_COPY_AND_ASSIGN(ManagePasswordsUIController); 218 DISALLOW_COPY_AND_ASSIGN(ManagePasswordsUIController);
215 }; 219 };
216 220
217 #endif // CHROME_BROWSER_UI_PASSWORDS_MANAGE_PASSWORDS_UI_CONTROLLER_H_ 221 #endif // CHROME_BROWSER_UI_PASSWORDS_MANAGE_PASSWORDS_UI_CONTROLLER_H_
OLDNEW
« no previous file with comments | « chrome/browser/ui/passwords/manage_passwords_test.cc ('k') | chrome/browser/ui/passwords/manage_passwords_ui_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698