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

Side by Side Diff: chrome/browser/ui/autofill/password_generation_popup_controller_impl.cc

Issue 151503006: Re-land r248110 with ASAN error fixed. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: With Fix Created 6 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 #include "chrome/browser/ui/autofill/password_generation_popup_controller_impl.h " 5 #include "chrome/browser/ui/autofill/password_generation_popup_controller_impl.h "
6 6
7 #include <math.h> 7 #include <math.h>
8 8
9 #include "base/strings/utf_string_conversion_utils.h" 9 #include "base/strings/utf_string_conversion_utils.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 switch (event.windowsKeyCode) { 98 switch (event.windowsKeyCode) {
99 case ui::VKEY_UP: 99 case ui::VKEY_UP:
100 case ui::VKEY_DOWN: 100 case ui::VKEY_DOWN:
101 PasswordSelected(true); 101 PasswordSelected(true);
102 return true; 102 return true;
103 case ui::VKEY_ESCAPE: 103 case ui::VKEY_ESCAPE:
104 Hide(); 104 Hide();
105 return true; 105 return true;
106 case ui::VKEY_RETURN: 106 case ui::VKEY_RETURN:
107 case ui::VKEY_TAB: 107 case ui::VKEY_TAB:
108 // We supress tab if the password is selected because we will 108 // We supress tab if the password is selected because we will
Evan Stade 2014/01/31 21:55:55 suppress
Garrett Casto 2014/01/31 22:01:41 Done.
109 // automatically advance focus anyway. 109 // automatically advance focus anyway.
110 return PossiblyAcceptPassword(); 110 if (PossiblyAcceptPassword()) {
111 Hide();
112 return true;
113 } else {
114 return false;
115 }
111 default: 116 default:
112 return false; 117 return false;
113 } 118 }
114 } 119 }
115 120
116 bool PasswordGenerationPopupControllerImpl::PossiblyAcceptPassword() { 121 bool PasswordGenerationPopupControllerImpl::PossiblyAcceptPassword() {
117 if (password_selected_) 122 if (password_selected_)
118 PasswordAccepted(); 123 PasswordAccepted();
Evan Stade 2014/01/31 21:55:55 could you fix this by instead changing this functi
Garrett Casto 2014/01/31 22:01:41 Done.
119 124
120 return password_selected_; 125 return password_selected_;
121 } 126 }
122 127
123 void PasswordGenerationPopupControllerImpl::PasswordSelected(bool selected) { 128 void PasswordGenerationPopupControllerImpl::PasswordSelected(bool selected) {
124 password_selected_ = selected; 129 password_selected_ = selected;
125 view_->UpdateBoundsAndRedrawPopup(); 130 view_->UpdateBoundsAndRedrawPopup();
126 } 131 }
127 132
128 void PasswordGenerationPopupControllerImpl::PasswordAccepted() { 133 void PasswordGenerationPopupControllerImpl::PasswordAccepted() {
129 web_contents()->GetRenderViewHost()->Send( 134 web_contents()->GetRenderViewHost()->Send(
130 new AutofillMsg_GeneratedPasswordAccepted( 135 new AutofillMsg_GeneratedPasswordAccepted(
131 web_contents()->GetRenderViewHost()->GetRoutingID(), 136 web_contents()->GetRenderViewHost()->GetRoutingID(),
132 current_password_)); 137 current_password_));
133 password_manager_->SetFormHasGeneratedPassword(form_); 138 password_manager_->SetFormHasGeneratedPassword(form_);
134 Hide();
135 } 139 }
136 140
137 int PasswordGenerationPopupControllerImpl::GetDesiredWidth() { 141 int PasswordGenerationPopupControllerImpl::GetDesiredWidth() {
138 // Minimum width we want to display the password. 142 // Minimum width we want to display the password.
139 int minimum_length_for_text = 2 * kHorizontalPadding + 143 int minimum_length_for_text = 2 * kHorizontalPadding +
140 font_.GetExpectedTextWidth(kMinimumWidth) + 144 font_.GetExpectedTextWidth(kMinimumWidth) +
141 2 * kPopupBorderThickness; 145 2 * kPopupBorderThickness;
142 146
143 // If the width of the field is longer than the minimum, use that instead. 147 // If the width of the field is longer than the minimum, use that instead.
144 return std::max(minimum_length_for_text, 148 return std::max(minimum_length_for_text,
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 view_ = PasswordGenerationPopupView::Create(this); 204 view_ = PasswordGenerationPopupView::Create(this);
201 view_->Show(); 205 view_->Show();
202 } 206 }
203 207
204 controller_common_.RegisterKeyPressCallback(); 208 controller_common_.RegisterKeyPressCallback();
205 209
206 if (observer_) 210 if (observer_)
207 observer_->OnPopupShown(); 211 observer_->OnPopupShown();
208 } 212 }
209 213
214 void PasswordGenerationPopupControllerImpl::HideAndDestroy() {
215 Hide();
216 }
217
210 void PasswordGenerationPopupControllerImpl::Hide() { 218 void PasswordGenerationPopupControllerImpl::Hide() {
211 controller_common_.RemoveKeyPressCallback(); 219 controller_common_.RemoveKeyPressCallback();
212 220
213 if (view_) 221 if (view_)
214 view_->Hide(); 222 view_->Hide();
215 223
216 if (observer_) 224 if (observer_)
217 observer_->OnPopupHidden(); 225 observer_->OnPopupHidden();
218 226
219 delete this; 227 delete this;
(...skipping 15 matching lines...) Expand all
235 } 243 }
236 244
237 void PasswordGenerationPopupControllerImpl::SetSelectionAtPoint( 245 void PasswordGenerationPopupControllerImpl::SetSelectionAtPoint(
238 const gfx::Point& point) { 246 const gfx::Point& point) {
239 if (password_bounds_.Contains(point)) 247 if (password_bounds_.Contains(point))
240 PasswordSelected(true); 248 PasswordSelected(true);
241 } 249 }
242 250
243 void PasswordGenerationPopupControllerImpl::AcceptSelectionAtPoint( 251 void PasswordGenerationPopupControllerImpl::AcceptSelectionAtPoint(
244 const gfx::Point& point) { 252 const gfx::Point& point) {
245 if (password_bounds_.Contains(point)) 253 if (password_bounds_.Contains(point)) {
246 PasswordAccepted(); 254 PasswordAccepted();
255 Hide();
256 }
247 } 257 }
248 258
249 void PasswordGenerationPopupControllerImpl::SelectionCleared() { 259 void PasswordGenerationPopupControllerImpl::SelectionCleared() {
250 PasswordSelected(false); 260 PasswordSelected(false);
251 } 261 }
252 262
253 bool PasswordGenerationPopupControllerImpl::ShouldRepostEvent( 263 bool PasswordGenerationPopupControllerImpl::ShouldRepostEvent(
254 const ui::MouseEvent& event) { 264 const ui::MouseEvent& event) {
255 return false; 265 return false;
256 } 266 }
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 302
293 base::string16 PasswordGenerationPopupControllerImpl::HelpText() { 303 base::string16 PasswordGenerationPopupControllerImpl::HelpText() {
294 return l10n_util::GetStringUTF16(IDS_PASSWORD_GENERATION_PROMPT); 304 return l10n_util::GetStringUTF16(IDS_PASSWORD_GENERATION_PROMPT);
295 } 305 }
296 306
297 base::string16 PasswordGenerationPopupControllerImpl::LearnMoreLink() { 307 base::string16 PasswordGenerationPopupControllerImpl::LearnMoreLink() {
298 return l10n_util::GetStringUTF16(IDS_PASSWORD_GENERATION_LEARN_MORE_LINK); 308 return l10n_util::GetStringUTF16(IDS_PASSWORD_GENERATION_LEARN_MORE_LINK);
299 } 309 }
300 310
301 } // namespace autofill 311 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698