Index: chrome/browser/ui/passwords/manage_passwords_ui_controller.cc |
diff --git a/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc b/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc |
index b0f2016be1ada815a13120d6e886559d22f2f29c..00a4f7f27770f7109240ad446ad66cd3dac5de49 100644 |
--- a/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc |
+++ b/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc |
@@ -92,6 +92,12 @@ void ManagePasswordsUIController::UpdateBubbleAndIconVisibility() { |
#endif |
} |
+void ManagePasswordsUIController::OnAskToReportURL(const GURL& url) { |
+ origin_ = url; |
+ state_ = password_manager::ui::ASK_USER_REPORT_URL_STATE; |
+ UpdateBubbleAndIconVisibility(); |
+} |
+ |
void ManagePasswordsUIController::OnPasswordSubmitted( |
scoped_ptr<PasswordFormManager> form_manager) { |
form_manager_ = form_manager.Pass(); |
@@ -251,6 +257,16 @@ void ManagePasswordsUIController::DidNavigateMainFrame( |
if (timer_ && timer_->Elapsed() < base::TimeDelta::FromSeconds(1)) |
return; |
+ // This allows "Allow to collect URL?" bubble to outlive the coming |
+ // navigation. |
+ if (state_ == password_manager::ui:: |
+ ASK_USER_REPORT_URL_BUBBLE_SHOWN_BEFORE_TRANSITION_STATE) { |
+ // TODO(melandory): Substitute this with a proper solution using |
+ // provisional_save_manager. |
+ state_ = password_manager::ui::ASK_USER_REPORT_URL_BUBBLE_SHOWN_STATE; |
+ return; |
+ } |
+ |
// Otherwise, reset the password manager and the timer. |
state_ = password_manager::ui::INACTIVE_STATE; |
UpdateBubbleAndIconVisibility(); |