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

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

Issue 2036323002: Implement the UI logic behind the Sign In promo in the password bubble (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comments Created 4 years, 6 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 #include "chrome/browser/ui/passwords/manage_passwords_ui_controller.h" 5 #include "chrome/browser/ui/passwords/manage_passwords_ui_controller.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/auto_reset.h" 9 #include "base/auto_reset.h"
10 #include "chrome/app/chrome_command_ids.h" 10 #include "chrome/app/chrome_command_ids.h"
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
237 return password_manager::FindStatsByUsername( 237 return password_manager::FindStatsByUsername(
238 form_manager->interactions_stats(), 238 form_manager->interactions_stats(),
239 form_manager->pending_credentials().username_value); 239 form_manager->pending_credentials().username_value);
240 } 240 }
241 241
242 void ManagePasswordsUIController::OnBubbleShown() { 242 void ManagePasswordsUIController::OnBubbleShown() {
243 bubble_status_ = SHOWN; 243 bubble_status_ = SHOWN;
244 } 244 }
245 245
246 void ManagePasswordsUIController::OnBubbleHidden() { 246 void ManagePasswordsUIController::OnBubbleHidden() {
247 bool update_icon = (bubble_status_ == SHOWN_PENDING_ICON_UPDATE);
247 bubble_status_ = NOT_SHOWN; 248 bubble_status_ = NOT_SHOWN;
248 if (GetState() == password_manager::ui::CONFIRMATION_STATE || 249 if (GetState() == password_manager::ui::CONFIRMATION_STATE ||
249 GetState() == password_manager::ui::AUTO_SIGNIN_STATE) { 250 GetState() == password_manager::ui::AUTO_SIGNIN_STATE) {
250 passwords_data_.TransitionToState(password_manager::ui::MANAGE_STATE); 251 passwords_data_.TransitionToState(password_manager::ui::MANAGE_STATE);
252 update_icon = true;
253 }
254 if (update_icon)
251 UpdateBubbleAndIconVisibility(); 255 UpdateBubbleAndIconVisibility();
252 }
253 } 256 }
254 257
255 void ManagePasswordsUIController::OnNoInteractionOnUpdate() { 258 void ManagePasswordsUIController::OnNoInteractionOnUpdate() {
256 if (GetState() != password_manager::ui::PENDING_PASSWORD_UPDATE_STATE) { 259 if (GetState() != password_manager::ui::PENDING_PASSWORD_UPDATE_STATE) {
257 // Do nothing if the state was changed. It can happen for example when the 260 // Do nothing if the state was changed. It can happen for example when the
258 // update bubble is active and a page navigation happens. 261 // update bubble is active and a page navigation happens.
259 return; 262 return;
260 } 263 }
261 password_manager::PasswordFormManager* form_manager = 264 password_manager::PasswordFormManager* form_manager =
262 passwords_data_.form_manager(); 265 passwords_data_.form_manager();
(...skipping 11 matching lines...) Expand all
274 void ManagePasswordsUIController::NeverSavePassword() { 277 void ManagePasswordsUIController::NeverSavePassword() {
275 DCHECK_EQ(password_manager::ui::PENDING_PASSWORD_STATE, GetState()); 278 DCHECK_EQ(password_manager::ui::PENDING_PASSWORD_STATE, GetState());
276 NeverSavePasswordInternal(); 279 NeverSavePasswordInternal();
277 // The state stays the same. 280 // The state stays the same.
278 } 281 }
279 282
280 void ManagePasswordsUIController::SavePassword() { 283 void ManagePasswordsUIController::SavePassword() {
281 DCHECK_EQ(password_manager::ui::PENDING_PASSWORD_STATE, GetState()); 284 DCHECK_EQ(password_manager::ui::PENDING_PASSWORD_STATE, GetState());
282 SavePasswordInternal(); 285 SavePasswordInternal();
283 passwords_data_.TransitionToState(password_manager::ui::MANAGE_STATE); 286 passwords_data_.TransitionToState(password_manager::ui::MANAGE_STATE);
284 UpdateBubbleAndIconVisibility(); 287 // The icon is to be updated after the bubble (either "Save password" or "Sign
288 // in to Chrome") is closed.
289 bubble_status_ = SHOWN_PENDING_ICON_UPDATE;
285 } 290 }
286 291
287 void ManagePasswordsUIController::UpdatePassword( 292 void ManagePasswordsUIController::UpdatePassword(
288 const autofill::PasswordForm& password_form) { 293 const autofill::PasswordForm& password_form) {
289 DCHECK_EQ(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE, GetState()); 294 DCHECK_EQ(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE, GetState());
290 UpdatePasswordInternal(password_form); 295 UpdatePasswordInternal(password_form);
291 passwords_data_.TransitionToState(password_manager::ui::MANAGE_STATE); 296 passwords_data_.TransitionToState(password_manager::ui::MANAGE_STATE);
292 UpdateBubbleAndIconVisibility(); 297 UpdateBubbleAndIconVisibility();
293 } 298 }
294 299
(...skipping 25 matching lines...) Expand all
320 params.disposition = NEW_FOREGROUND_TAB; 325 params.disposition = NEW_FOREGROUND_TAB;
321 chrome::Navigate(&params); 326 chrome::Navigate(&params);
322 } 327 }
323 328
324 void ManagePasswordsUIController::NavigateToPasswordManagerSettingsPage() { 329 void ManagePasswordsUIController::NavigateToPasswordManagerSettingsPage() {
325 chrome::ShowSettingsSubPage( 330 chrome::ShowSettingsSubPage(
326 chrome::FindBrowserWithWebContents(web_contents()), 331 chrome::FindBrowserWithWebContents(web_contents()),
327 chrome::kPasswordManagerSubPage); 332 chrome::kPasswordManagerSubPage);
328 } 333 }
329 334
335 void ManagePasswordsUIController::NavigateToChromeSignIn() {
336 // TODO(http://crbug.com/615825): do the job.
337 }
338
330 void ManagePasswordsUIController::OnDialogHidden() { 339 void ManagePasswordsUIController::OnDialogHidden() {
331 dialog_controller_.reset(); 340 dialog_controller_.reset();
332 if (GetState() == password_manager::ui::CREDENTIAL_REQUEST_STATE) { 341 if (GetState() == password_manager::ui::CREDENTIAL_REQUEST_STATE) {
333 passwords_data_.TransitionToState(password_manager::ui::MANAGE_STATE); 342 passwords_data_.TransitionToState(password_manager::ui::MANAGE_STATE);
334 UpdateBubbleAndIconVisibility(); 343 UpdateBubbleAndIconVisibility();
335 } 344 }
336 } 345 }
337 346
338 void ManagePasswordsUIController::SavePasswordInternal() { 347 void ManagePasswordsUIController::SavePasswordInternal() {
339 password_manager::PasswordStore* password_store = 348 password_manager::PasswordStore* password_store =
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
390 399
391 void ManagePasswordsUIController::DidNavigateMainFrame( 400 void ManagePasswordsUIController::DidNavigateMainFrame(
392 const content::LoadCommittedDetails& details, 401 const content::LoadCommittedDetails& details,
393 const content::FrameNavigateParams& params) { 402 const content::FrameNavigateParams& params) {
394 // Don't react to in-page (fragment) navigations. 403 // Don't react to in-page (fragment) navigations.
395 if (details.is_in_page) 404 if (details.is_in_page)
396 return; 405 return;
397 406
398 // It is possible that the user was not able to interact with the password 407 // It is possible that the user was not able to interact with the password
399 // bubble. 408 // bubble.
400 if (bubble_status_ == SHOWN) 409 if (bubble_status_ == SHOWN || bubble_status_ == SHOWN_PENDING_ICON_UPDATE)
401 return; 410 return;
402 411
403 // Otherwise, reset the password manager. 412 // Otherwise, reset the password manager.
404 DestroyAccountChooser(); 413 DestroyAccountChooser();
405 passwords_data_.OnInactive(); 414 passwords_data_.OnInactive();
406 UpdateBubbleAndIconVisibility(); 415 UpdateBubbleAndIconVisibility();
407 } 416 }
408 417
409 void ManagePasswordsUIController::WasHidden() { 418 void ManagePasswordsUIController::WasHidden() {
410 TabDialogs::FromWebContents(web_contents())->HideManagePasswordsBubble(); 419 TabDialogs::FromWebContents(web_contents())->HideManagePasswordsBubble();
(...skipping 15 matching lines...) Expand all
426 passwords_data_.TransitionToState(password_manager::ui::MANAGE_STATE); 435 passwords_data_.TransitionToState(password_manager::ui::MANAGE_STATE);
427 } 436 }
428 } 437 }
429 438
430 void ManagePasswordsUIController::WebContentsDestroyed() { 439 void ManagePasswordsUIController::WebContentsDestroyed() {
431 password_manager::PasswordStore* password_store = 440 password_manager::PasswordStore* password_store =
432 GetPasswordStore(web_contents()); 441 GetPasswordStore(web_contents());
433 if (password_store) 442 if (password_store)
434 password_store->RemoveObserver(this); 443 password_store->RemoveObserver(this);
435 } 444 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698