Commit a73d254a authored by Irmak Kavasoglu's avatar Irmak Kavasoglu Committed by Commit Bot

When editable field is replaced by a label upon losing focus, new username is kept.

In the current implementation, when user changes the username in the editable field and then loses focus on the field; the editable field is replaced by a label which still has the old username on it.

This cl helps keeping the user's changes in the username field.

This cl does NOT save the new username to the password manager. UI-wise everything looks okay, but save button will still save the old username.

Bug: 734965
Change-Id: I61bef70894de4e2e71e9e314f30915d011795ccc
Reviewed-on: https://chromium-review.googlesource.com/563657
Commit-Queue: Irmak Kavasoğlu <irmakk@google.com>
Reviewed-by: default avatarVasilii Sukhanov <vasilii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#484977}
parent fd9298e7
......@@ -340,6 +340,11 @@ void ManagePasswordsBubbleModel::OnNeverForThisSiteClicked() {
delegate_->NeverSavePassword();
}
void ManagePasswordsBubbleModel::OnUsernameEdited(base::string16 new_username) {
DCHECK_EQ(password_manager::ui::PENDING_PASSWORD_STATE, state_);
pending_password_.username_value = std::move(new_username);
}
void ManagePasswordsBubbleModel::OnSaveClicked() {
DCHECK_EQ(password_manager::ui::PENDING_PASSWORD_STATE, state_);
interaction_keeper_->set_dismissal_reason(metrics_util::CLICKED_SAVE);
......
......@@ -46,6 +46,10 @@ class ManagePasswordsBubbleModel {
// by the user.
void OnNeverForThisSiteClicked();
// Called by the view code when username is corrected using the edit button
// in PendingView.
void OnUsernameEdited(base::string16 new_username);
// Called by the view code when the save button is clicked by the user.
void OnSaveClicked();
......
......@@ -300,7 +300,7 @@ class ManagePasswordsBubbleView::PendingView
// views::View:
bool OnKeyPressed(const ui::KeyEvent& event) override;
void ToggleEditingState();
void ToggleEditingState(bool accept_changes);
ManagePasswordsBubbleView* parent_;
......@@ -393,7 +393,7 @@ void ManagePasswordsBubbleView::PendingView::ButtonPressed(
const ui::Event& event) {
// TODO(https://crbug.com/734965): Implement edit button logic.
if (sender == edit_button_) {
ToggleEditingState();
ToggleEditingState(false);
return;
}
if (sender == save_button_) {
......@@ -421,7 +421,7 @@ void ManagePasswordsBubbleView::PendingView::OnDidChangeFocus(
View* focused_before,
View* focused_now) {
if (editing_ && focused_before == username_field_) {
ToggleEditingState();
ToggleEditingState(true);
}
}
......@@ -429,13 +429,18 @@ bool ManagePasswordsBubbleView::PendingView::OnKeyPressed(
const ui::KeyEvent& event) {
if (editing_ && (event.key_code() == ui::KeyboardCode::VKEY_RETURN ||
event.key_code() == ui::KeyboardCode::VKEY_ESCAPE)) {
ToggleEditingState();
ToggleEditingState(event.key_code() == ui::KeyboardCode::VKEY_RETURN);
return true;
}
return false;
}
void ManagePasswordsBubbleView::PendingView::ToggleEditingState() {
void ManagePasswordsBubbleView::PendingView::ToggleEditingState(
bool accept_changes) {
if (editing_ && accept_changes) {
parent_->model()->OnUsernameEdited(
static_cast<views::Textfield*>(username_field_)->text());
}
editing_ = !editing_;
edit_button_->SetEnabled(!editing_);
RemoveChildView(username_field_);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment