Commit d6a87dd2 authored by Yuheng Huang's avatar Yuheng Huang Committed by Commit Bot

Tab Search: fix CloseBubbleOnTabActivationHelper not reset correctly

Bug: 1147412, 1099917
Change-Id: I121bd2ac5b0377e74e717bfecdf97884e217ac6d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2527533Reviewed-by: default avatarScott Violet <sky@chromium.org>
Reviewed-by: default avatarThomas Lukaszewicz <tluk@chromium.org>
Reviewed-by: default avatarRoman Arora <romanarora@chromium.org>
Commit-Queue: Yuheng Huang <yuhengh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#826085}
parent 2fc709ea
...@@ -73,6 +73,8 @@ void WebUIBubbleManagerBase::OnWidgetDestroying(views::Widget* widget) { ...@@ -73,6 +73,8 @@ void WebUIBubbleManagerBase::OnWidgetDestroying(views::Widget* widget) {
DCHECK_EQ(bubble_view_->GetWidget(), widget); DCHECK_EQ(bubble_view_->GetWidget(), widget);
cached_web_view_ = bubble_view_->RemoveWebView(); cached_web_view_ = bubble_view_->RemoveWebView();
observed_bubble_widget_.Remove(bubble_view_->GetWidget()); observed_bubble_widget_.Remove(bubble_view_->GetWidget());
DCHECK(close_bubble_helper_);
close_bubble_helper_.reset();
cache_timer_->Reset(); cache_timer_->Reset();
bubble_using_cached_webview_ = false; bubble_using_cached_webview_ = false;
} }
......
...@@ -11,12 +11,15 @@ ...@@ -11,12 +11,15 @@
CloseBubbleOnTabActivationHelper::CloseBubbleOnTabActivationHelper( CloseBubbleOnTabActivationHelper::CloseBubbleOnTabActivationHelper(
views::BubbleDialogDelegateView* owner_bubble, views::BubbleDialogDelegateView* owner_bubble,
Browser* browser) Browser* browser)
: owner_bubble_(owner_bubble) { : owner_bubble_(owner_bubble), browser_(browser) {
DCHECK(owner_bubble_); DCHECK(owner_bubble_);
browser->tab_strip_model()->AddObserver(this); DCHECK(browser_);
browser_->tab_strip_model()->AddObserver(this);
} }
CloseBubbleOnTabActivationHelper::~CloseBubbleOnTabActivationHelper() = default; CloseBubbleOnTabActivationHelper::~CloseBubbleOnTabActivationHelper() {
browser_->tab_strip_model()->RemoveObserver(this);
}
void CloseBubbleOnTabActivationHelper::OnTabStripModelChanged( void CloseBubbleOnTabActivationHelper::OnTabStripModelChanged(
TabStripModel* tab_strip_model, TabStripModel* tab_strip_model,
......
...@@ -33,6 +33,7 @@ class CloseBubbleOnTabActivationHelper : public TabStripModelObserver { ...@@ -33,6 +33,7 @@ class CloseBubbleOnTabActivationHelper : public TabStripModelObserver {
private: private:
views::BubbleDialogDelegateView* owner_bubble_; // weak, owns me. views::BubbleDialogDelegateView* owner_bubble_; // weak, owns me.
Browser* browser_;
DISALLOW_COPY_AND_ASSIGN(CloseBubbleOnTabActivationHelper); DISALLOW_COPY_AND_ASSIGN(CloseBubbleOnTabActivationHelper);
}; };
......
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