Index: chrome/browser/usb/usb_chooser_bubble_delegate.cc |
diff --git a/chrome/browser/usb/usb_chooser_bubble_delegate.cc b/chrome/browser/usb/usb_chooser_bubble_delegate.cc |
index 6815fab81b5c0c595fa36a58405e109d918e466b..b923fcd0032d54f265eaa10454bff8da8d5921e7 100644 |
--- a/chrome/browser/usb/usb_chooser_bubble_delegate.cc |
+++ b/chrome/browser/usb/usb_chooser_bubble_delegate.cc |
@@ -9,6 +9,7 @@ |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/usb/usb_chooser_context.h" |
#include "chrome/browser/usb/usb_chooser_context_factory.h" |
+#include "components/bubble/bubble_controller.h" |
#include "content/public/browser/render_frame_host.h" |
#include "content/public/browser/web_contents.h" |
#include "device/core/device_client.h" |
@@ -102,9 +103,15 @@ void UsbChooserBubbleDelegate::Select(int index) { |
callback_.Run(nullptr); |
} |
callback_.reset(); // Reset |callback_| so that it is only run once. |
+ |
+ if (bubble_controller_) |
+ bubble_controller_->CloseBubble(BUBBLE_CLOSE_ACCEPTED); |
} |
-void UsbChooserBubbleDelegate::Cancel() {} |
+void UsbChooserBubbleDelegate::Cancel() { |
+ if (bubble_controller_) |
+ bubble_controller_->CloseBubble(BUBBLE_CLOSE_CANCELED); |
+} |
void UsbChooserBubbleDelegate::Close() {} |
@@ -150,3 +157,8 @@ void UsbChooserBubbleDelegate::GotUsbDeviceList( |
if (observer()) |
observer()->OnOptionsInitialized(); |
} |
+ |
+void UsbChooserBubbleDelegate::set_bubble_controller( |
+ BubbleReference bubble_controller) { |
+ bubble_controller_ = bubble_controller; |
+} |