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

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

Issue 232753002: Password bubble: Deplatformify ManagePasswordsBubbleView. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Tests!!! Created 6 years, 8 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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_bubble_model.h" 5 #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h"
6 6
7 #include "chrome/browser/password_manager/password_store_factory.h" 7 #include "chrome/browser/password_manager/password_store_factory.h"
8 #include "chrome/browser/ui/browser.h" 8 #include "chrome/browser/ui/browser.h"
9 #include "chrome/browser/ui/browser_finder.h" 9 #include "chrome/browser/ui/browser_finder.h"
10 #include "chrome/browser/ui/chrome_pages.h"
11 #include "chrome/browser/ui/passwords/manage_passwords_bubble_ui_controller.h" 10 #include "chrome/browser/ui/passwords/manage_passwords_bubble_ui_controller.h"
12 #include "chrome/common/url_constants.h"
13 #include "components/password_manager/core/browser/password_store.h" 11 #include "components/password_manager/core/browser/password_store.h"
14 #include "grit/generated_resources.h" 12 #include "grit/generated_resources.h"
15 #include "ui/base/l10n/l10n_util.h" 13 #include "ui/base/l10n/l10n_util.h"
16 14
17 using content::WebContents; 15 using content::WebContents;
18 using autofill::PasswordFormMap; 16 using autofill::PasswordFormMap;
19 17
20 ManagePasswordsBubbleModel::ManagePasswordsBubbleModel( 18 ManagePasswordsBubbleModel::ManagePasswordsBubbleModel(
21 content::WebContents* web_contents) 19 content::WebContents* web_contents)
22 : content::WebContentsObserver(web_contents), 20 : content::WebContentsObserver(web_contents),
23 web_contents_(web_contents) { 21 web_contents_(web_contents),
22 display_disposition_(
23 password_manager::metrics_util::AUTOMATIC_WITH_PASSWORD_PENDING),
24 dismissal_reason_(password_manager::metrics_util::NOT_DISPLAYED) {
24 ManagePasswordsBubbleUIController* manage_passwords_bubble_ui_controller = 25 ManagePasswordsBubbleUIController* manage_passwords_bubble_ui_controller =
25 ManagePasswordsBubbleUIController::FromWebContents(web_contents_); 26 ManagePasswordsBubbleUIController::FromWebContents(web_contents_);
26 27
27 password_submitted_ = 28 password_submitted_ =
28 manage_passwords_bubble_ui_controller->password_submitted(); 29 manage_passwords_bubble_ui_controller->password_submitted();
29 if (password_submitted_) { 30 if (password_submitted_) {
30 if (manage_passwords_bubble_ui_controller->password_to_be_saved()) 31 if (manage_passwords_bubble_ui_controller->password_to_be_saved())
31 manage_passwords_bubble_state_ = PASSWORD_TO_BE_SAVED; 32 manage_passwords_bubble_state_ = PASSWORD_TO_BE_SAVED;
32 else 33 else
33 manage_passwords_bubble_state_ = MANAGE_PASSWORDS_AFTER_SAVING; 34 manage_passwords_bubble_state_ = MANAGE_PASSWORDS_AFTER_SAVING;
34 } else { 35 } else {
35 manage_passwords_bubble_state_ = MANAGE_PASSWORDS; 36 manage_passwords_bubble_state_ = MANAGE_PASSWORDS;
36 } 37 }
37 38
38 title_ = l10n_util::GetStringUTF16( 39 title_ = l10n_util::GetStringUTF16(
39 (manage_passwords_bubble_state_ == PASSWORD_TO_BE_SAVED) ? 40 (manage_passwords_bubble_state_ == PASSWORD_TO_BE_SAVED) ?
40 IDS_SAVE_PASSWORD : IDS_MANAGE_PASSWORDS); 41 IDS_SAVE_PASSWORD : IDS_MANAGE_PASSWORDS);
41 if (password_submitted_) { 42 if (password_submitted_) {
42 pending_credentials_ = 43 pending_credentials_ =
43 manage_passwords_bubble_ui_controller->pending_credentials(); 44 manage_passwords_bubble_ui_controller->pending_credentials();
44 } 45 }
45 best_matches_ = manage_passwords_bubble_ui_controller->best_matches(); 46 best_matches_ = manage_passwords_bubble_ui_controller->best_matches();
46 manage_link_ = 47 manage_link_ =
47 l10n_util::GetStringUTF16(IDS_OPTIONS_PASSWORDS_MANAGE_PASSWORDS_LINK); 48 l10n_util::GetStringUTF16(IDS_OPTIONS_PASSWORDS_MANAGE_PASSWORDS_LINK);
48 } 49 }
49 50
50 ManagePasswordsBubbleModel::~ManagePasswordsBubbleModel() {} 51 ManagePasswordsBubbleModel::~ManagePasswordsBubbleModel() {}
51 52
53 void ManagePasswordsBubbleModel::OnBubbleShown(
54 ManagePasswordsBubble::DisplayReason reason) {
55 DCHECK(WaitingToSavePassword() ||
56 reason == ManagePasswordsBubble::USER_ACTION);
57 if (reason == ManagePasswordsBubble::USER_ACTION) {
58 if (WaitingToSavePassword()) {
59 display_disposition_ =
60 password_manager::metrics_util::MANUAL_WITH_PASSWORD_PENDING;
61 } else {
62 // TODO(mkwst): Deal with "Never save passwords" once we've decided how
63 // that flow should work.
64 display_disposition_ =
65 password_manager::metrics_util::MANUAL_MANAGE_PASSWORDS;
66 }
67 } else {
68 display_disposition_ =
69 password_manager::metrics_util::AUTOMATIC_WITH_PASSWORD_PENDING;
70 }
71 password_manager::metrics_util::LogUIDisplayDisposition(display_disposition_);
72
73 // Default to a dismissal reason of "no interaction". If the user interacts
74 // with the button in such a way that it closes, we'll reset this value
75 // accordingly.
76 dismissal_reason_ = password_manager::metrics_util::NO_DIRECT_INTERACTION;
77 }
78
79 void ManagePasswordsBubbleModel::OnBubbleHidden() {
80 if (dismissal_reason_ == password_manager::metrics_util::NOT_DISPLAYED)
81 return;
82
83 password_manager::metrics_util::LogUIDismissalReason(dismissal_reason_);
84 }
85
86 void ManagePasswordsBubbleModel::OnCloseWithoutLogging() {
87 dismissal_reason_ = password_manager::metrics_util::NOT_DISPLAYED;
88 }
89
52 void ManagePasswordsBubbleModel::OnNopeClicked() { 90 void ManagePasswordsBubbleModel::OnNopeClicked() {
91 dismissal_reason_ = password_manager::metrics_util::CLICKED_NOPE;
53 manage_passwords_bubble_state_ = PASSWORD_TO_BE_SAVED; 92 manage_passwords_bubble_state_ = PASSWORD_TO_BE_SAVED;
54 } 93 }
55 94
56 void ManagePasswordsBubbleModel::OnNeverForThisSiteClicked() { 95 void ManagePasswordsBubbleModel::OnNeverForThisSiteClicked() {
96 dismissal_reason_ = password_manager::metrics_util::CLICKED_NEVER;
57 ManagePasswordsBubbleUIController* manage_passwords_bubble_ui_controller = 97 ManagePasswordsBubbleUIController* manage_passwords_bubble_ui_controller =
58 ManagePasswordsBubbleUIController::FromWebContents(web_contents_); 98 ManagePasswordsBubbleUIController::FromWebContents(web_contents_);
59 manage_passwords_bubble_ui_controller->NeverSavePassword(); 99 manage_passwords_bubble_ui_controller->NeverSavePassword();
60 manage_passwords_bubble_ui_controller->unset_password_to_be_saved(); 100 manage_passwords_bubble_ui_controller->unset_password_to_be_saved();
61 manage_passwords_bubble_state_ = NEVER_SAVE_PASSWORDS; 101 manage_passwords_bubble_state_ = NEVER_SAVE_PASSWORDS;
62 } 102 }
63 103
64 void ManagePasswordsBubbleModel::OnSaveClicked() { 104 void ManagePasswordsBubbleModel::OnSaveClicked() {
105 dismissal_reason_ = password_manager::metrics_util::CLICKED_SAVE;
65 ManagePasswordsBubbleUIController* manage_passwords_bubble_ui_controller = 106 ManagePasswordsBubbleUIController* manage_passwords_bubble_ui_controller =
66 ManagePasswordsBubbleUIController::FromWebContents(web_contents_); 107 ManagePasswordsBubbleUIController::FromWebContents(web_contents_);
67 manage_passwords_bubble_ui_controller->SavePassword(); 108 manage_passwords_bubble_ui_controller->SavePassword();
68 manage_passwords_bubble_ui_controller->unset_password_to_be_saved(); 109 manage_passwords_bubble_ui_controller->unset_password_to_be_saved();
69 manage_passwords_bubble_state_ = MANAGE_PASSWORDS_AFTER_SAVING; 110 manage_passwords_bubble_state_ = MANAGE_PASSWORDS_AFTER_SAVING;
70 } 111 }
71 112
113 void ManagePasswordsBubbleModel::OnDoneClicked() {
114 dismissal_reason_ = password_manager::metrics_util::CLICKED_DONE;
115 }
116
72 void ManagePasswordsBubbleModel::OnManageLinkClicked() { 117 void ManagePasswordsBubbleModel::OnManageLinkClicked() {
73 chrome::ShowSettingsSubPage(chrome::FindBrowserWithWebContents(web_contents_), 118 dismissal_reason_ = password_manager::metrics_util::CLICKED_MANAGE;
74 chrome::kPasswordManagerSubPage); 119 ManagePasswordsBubbleUIController::FromWebContents(web_contents_)
120 ->NavigateToPasswordManagerSettingsPage();
75 } 121 }
76 122
77 void ManagePasswordsBubbleModel::OnPasswordAction( 123 void ManagePasswordsBubbleModel::OnPasswordAction(
78 const autofill::PasswordForm& password_form, 124 const autofill::PasswordForm& password_form,
79 PasswordAction action) { 125 PasswordAction action) {
80 if (!web_contents_) 126 if (!web_contents_)
81 return; 127 return;
82 Profile* profile = 128 Profile* profile =
83 Profile::FromBrowserContext(web_contents_->GetBrowserContext()); 129 Profile::FromBrowserContext(web_contents_->GetBrowserContext());
84 password_manager::PasswordStore* password_store = 130 password_manager::PasswordStore* password_store =
(...skipping 16 matching lines...) Expand all
101 autofill::PasswordForm password_form) { 147 autofill::PasswordForm password_form) {
102 ManagePasswordsBubbleUIController::FromWebContents(web_contents_)-> 148 ManagePasswordsBubbleUIController::FromWebContents(web_contents_)->
103 RemoveFromBestMatches(password_form); 149 RemoveFromBestMatches(password_form);
104 } 150 }
105 151
106 void ManagePasswordsBubbleModel::WebContentsDestroyed( 152 void ManagePasswordsBubbleModel::WebContentsDestroyed(
107 content::WebContents* web_contents) { 153 content::WebContents* web_contents) {
108 // The WebContents have been destroyed. 154 // The WebContents have been destroyed.
109 web_contents_ = NULL; 155 web_contents_ = NULL;
110 } 156 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698