| Index: chrome/browser/ui/views/autofill/save_card_icon_view.cc
|
| diff --git a/chrome/browser/ui/views/autofill/save_card_icon_view.cc b/chrome/browser/ui/views/autofill/save_card_icon_view.cc
|
| index 39d7820ee40570caea247846395e1ebb1d99c743..0beeed6470ed3e792e4104306104f94cd356a84a 100644
|
| --- a/chrome/browser/ui/views/autofill/save_card_icon_view.cc
|
| +++ b/chrome/browser/ui/views/autofill/save_card_icon_view.cc
|
| @@ -22,6 +22,8 @@ SaveCardIconView::SaveCardIconView(CommandUpdater* command_updater,
|
| browser_(browser) {
|
| set_id(VIEW_ID_SAVE_CREDIT_CARD_BUTTON);
|
| SetTooltipText(l10n_util::GetStringUTF16(IDS_TOOLTIP_SAVE_CREDIT_CARD));
|
| + if (browser)
|
| + browser->tab_strip_model()->AddObserver(this);
|
| }
|
|
|
| SaveCardIconView::~SaveCardIconView() {}
|
| @@ -30,14 +32,7 @@ void SaveCardIconView::OnExecuting(
|
| BubbleIconView::ExecuteSource execute_source) {}
|
|
|
| views::BubbleDelegateView* SaveCardIconView::GetBubble() const {
|
| - if (!browser_)
|
| - return nullptr;
|
| - content::WebContents* web_contents =
|
| - browser_->tab_strip_model()->GetActiveWebContents();
|
| - if (!web_contents)
|
| - return nullptr;
|
| - autofill::SaveCardBubbleControllerImpl* controller =
|
| - autofill::SaveCardBubbleControllerImpl::FromWebContents(web_contents);
|
| + SaveCardBubbleControllerImpl* controller = GetController();
|
| if (!controller)
|
| return nullptr;
|
|
|
| @@ -49,4 +44,20 @@ gfx::VectorIconId SaveCardIconView::GetVectorIcon() const {
|
| return gfx::VectorIconId::CREDIT_CARD;
|
| }
|
|
|
| +void SaveCardIconView::TabDeactivated(content::WebContents* contents) {
|
| + SaveCardBubbleControllerImpl* controller = GetController();
|
| + if (controller)
|
| + controller->HideBubble();
|
| +}
|
| +
|
| +SaveCardBubbleControllerImpl* SaveCardIconView::GetController() const {
|
| + if (!browser_)
|
| + return nullptr;
|
| + content::WebContents* web_contents =
|
| + browser_->tab_strip_model()->GetActiveWebContents();
|
| + if (!web_contents)
|
| + return nullptr;
|
| + return autofill::SaveCardBubbleControllerImpl::FromWebContents(web_contents);
|
| +}
|
| +
|
| } // namespace autofill
|
|
|