From 4a12e67ac24b290e3da1ce7403bcd73be0a4dc8e Mon Sep 17 00:00:00 2001 From: jyasskin Date: Tue, 9 Feb 2016 14:39:07 -0800 Subject: Make sure bubbles in Views close before their RenderFrameHosts. This is probably covered by navigation, but that isn't obvious from reading the code, so this change adds code to close bubbles directly. BUG=571466 Review URL: https://codereview.chromium.org/1572743002 Cr-Commit-Position: refs/heads/master@{#374503} --- chrome/browser/usb/usb_chooser_bubble_delegate.cc | 4 ++-- chrome/browser/usb/usb_chooser_bubble_delegate.h | 2 +- chrome/browser/usb/web_usb_permission_bubble.cc | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) (limited to 'chrome/browser/usb') diff --git a/chrome/browser/usb/usb_chooser_bubble_delegate.cc b/chrome/browser/usb/usb_chooser_bubble_delegate.cc index 99e7b65..7ef9ea5 100644 --- a/chrome/browser/usb/usb_chooser_bubble_delegate.cc +++ b/chrome/browser/usb/usb_chooser_bubble_delegate.cc @@ -73,11 +73,11 @@ bool FindInAllowedOrigins(const device::WebUsbAllowedOrigins* allowed_origins, } // namespace UsbChooserBubbleDelegate::UsbChooserBubbleDelegate( - Browser* browser, + content::RenderFrameHost* owner, mojo::Array device_filters, content::RenderFrameHost* render_frame_host, const webusb::WebUsbPermissionBubble::GetPermissionCallback& callback) - : ChooserBubbleDelegate(browser), + : ChooserBubbleDelegate(owner), render_frame_host_(render_frame_host), callback_(callback), usb_service_observer_(this), diff --git a/chrome/browser/usb/usb_chooser_bubble_delegate.h b/chrome/browser/usb/usb_chooser_bubble_delegate.h index af4526b..9d18a97 100644 --- a/chrome/browser/usb/usb_chooser_bubble_delegate.h +++ b/chrome/browser/usb/usb_chooser_bubble_delegate.h @@ -33,7 +33,7 @@ class UsbChooserBubbleDelegate : public ChooserBubbleDelegate, public device::UsbService::Observer { public: UsbChooserBubbleDelegate( - Browser* browser, + content::RenderFrameHost* owner, mojo::Array device_filters, content::RenderFrameHost* render_frame_host, const webusb::WebUsbPermissionBubble::GetPermissionCallback& callback); diff --git a/chrome/browser/usb/web_usb_permission_bubble.cc b/chrome/browser/usb/web_usb_permission_bubble.cc index d1f7a8f..6ba7d26 100644 --- a/chrome/browser/usb/web_usb_permission_bubble.cc +++ b/chrome/browser/usb/web_usb_permission_bubble.cc @@ -34,7 +34,8 @@ void ChromeWebUsbPermissionBubble::GetPermission( content::WebContents::FromRenderFrameHost(render_frame_host_); Browser* browser = chrome::FindBrowserWithWebContents(web_contents); scoped_ptr bubble_delegate( - new UsbChooserBubbleDelegate(browser, std::move(device_filters), + new UsbChooserBubbleDelegate(render_frame_host_, + std::move(device_filters), render_frame_host_, callback)); UsbChooserBubbleDelegate* bubble_delegate_ptr = bubble_delegate.get(); BubbleReference bubble_controller = -- cgit v1.1