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..94716a9513ef25b83344c37f7ffd4cfc26502ad4 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_reference_) |
+ bubble_reference_->CloseBubble(BUBBLE_CLOSE_ACCEPTED); |
} |
-void UsbChooserBubbleDelegate::Cancel() {} |
+void UsbChooserBubbleDelegate::Cancel() { |
+ if (bubble_reference_) |
+ bubble_reference_->CloseBubble(BUBBLE_CLOSE_CANCELED); |
+} |
void UsbChooserBubbleDelegate::Close() {} |
@@ -150,3 +157,8 @@ void UsbChooserBubbleDelegate::GotUsbDeviceList( |
if (observer()) |
observer()->OnOptionsInitialized(); |
} |
+ |
+void UsbChooserBubbleDelegate::set_bubble_reference( |
+ BubbleReference bubble_reference) { |
+ bubble_reference_ = bubble_reference; |
+} |