Index: chrome/browser/ui/views/autofill/save_card_bubble_views.cc |
diff --git a/chrome/browser/ui/views/autofill/save_card_bubble_views.cc b/chrome/browser/ui/views/autofill/save_card_bubble_views.cc |
index 41e7293b0e1d89305421c131a973c3d64f291a1e..09f2591f153fa0bf0be51cb14ee4dfb395f68984 100644 |
--- a/chrome/browser/ui/views/autofill/save_card_bubble_views.cc |
+++ b/chrome/browser/ui/views/autofill/save_card_bubble_views.cc |
@@ -65,16 +65,27 @@ SaveCardBubbleViews::SaveCardBubbleViews(views::View* anchor_view, |
learn_more_link_(nullptr) { |
DCHECK(controller); |
views::BubbleDelegateView::CreateBubble(this); |
+ save_card_bubble_view_ = this; |
} |
+// static |
+SaveCardBubbleViews* SaveCardBubbleViews::save_card_bubble_view_ = nullptr; |
+ |
SaveCardBubbleViews::~SaveCardBubbleViews() {} |
void SaveCardBubbleViews::Show(DisplayReason reason) { |
ShowForReason(reason); |
} |
+// static |
+void SaveCardBubbleViews::CloseBubble() { |
+ if (save_card_bubble_view_ && save_card_bubble_view_->controller_) |
+ save_card_bubble_view_->controller_->HideBubble(); |
+} |
+ |
void SaveCardBubbleViews::Hide() { |
controller_ = nullptr; |
+ save_card_bubble_view_ = nullptr; |
Close(); |
} |
@@ -93,6 +104,7 @@ bool SaveCardBubbleViews::ShouldShowWindowTitle() const { |
void SaveCardBubbleViews::WindowClosing() { |
if (controller_) |
controller_->OnBubbleClosed(); |
+ save_card_bubble_view_ = nullptr; |
} |
void SaveCardBubbleViews::ButtonPressed(views::Button* sender, |
@@ -103,6 +115,7 @@ void SaveCardBubbleViews::ButtonPressed(views::Button* sender, |
DCHECK_EQ(sender, cancel_button_); |
controller_->OnCancelButton(); |
} |
+ save_card_bubble_view_ = nullptr; |
Close(); |
} |