summaryrefslogtreecommitdiffstats
path: root/chrome/browser/usb
diff options
context:
space:
mode:
authorjuncai <juncai@chromium.org>2015-12-22 16:20:11 -0800
committerCommit bot <commit-bot@chromium.org>2015-12-23 00:21:15 +0000
commit22707c4f0558a333b63f6b99c7f06d5bd27a4f4e (patch)
tree5e03518c1919fd730eb9839cb1e09a5b0f30f68e /chrome/browser/usb
parenteaa6adc9f2b8463b7f5859e3b9faffecdd5225f1 (diff)
downloadchromium_src-22707c4f0558a333b63f6b99c7f06d5bd27a4f4e.zip
chromium_src-22707c4f0558a333b63f6b99c7f06d5bd27a4f4e.tar.gz
chromium_src-22707c4f0558a333b63f6b99c7f06d5bd27a4f4e.tar.bz2
Remove Close button for chooser bubble and call CloseBubble when Cancel
button is pressed. The Close button (the upper-right X) is redundant since the Cancel button exists for the chooser bubble. The Close button is already removed at chooser_bubble_ui_cocoa.mm, so also do it here for non-Mac implementation. Also added code to call CloseBubble when Cancel button is pressed. BUG=492204 Review URL: https://codereview.chromium.org/1530493002 Cr-Commit-Position: refs/heads/master@{#366699}
Diffstat (limited to 'chrome/browser/usb')
-rw-r--r--chrome/browser/usb/usb_chooser_bubble_delegate.cc14
-rw-r--r--chrome/browser/usb/usb_chooser_bubble_delegate.h4
-rw-r--r--chrome/browser/usb/web_usb_permission_bubble.cc15
3 files changed, 27 insertions, 6 deletions
diff --git a/chrome/browser/usb/usb_chooser_bubble_delegate.cc b/chrome/browser/usb/usb_chooser_bubble_delegate.cc
index 6815fab..b923fcd 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;
+}
diff --git a/chrome/browser/usb/usb_chooser_bubble_delegate.h b/chrome/browser/usb/usb_chooser_bubble_delegate.h
index 9d06131..6d47134 100644
--- a/chrome/browser/usb/usb_chooser_bubble_delegate.h
+++ b/chrome/browser/usb/usb_chooser_bubble_delegate.h
@@ -10,6 +10,7 @@
#include "base/memory/weak_ptr.h"
#include "base/scoped_observer.h"
#include "chrome/browser/ui/website_settings/chooser_bubble_delegate.h"
+#include "components/bubble/bubble_reference.h"
#include "components/webusb/public/interfaces/webusb_permission_bubble.mojom.h"
#include "device/usb/usb_service.h"
#include "mojo/public/cpp/bindings/array.h"
@@ -49,6 +50,8 @@ class UsbChooserBubbleDelegate : public ChooserBubbleDelegate,
void GotUsbDeviceList(
const std::vector<scoped_refptr<device::UsbDevice>>& devices);
+ void set_bubble_controller(BubbleReference bubble_controller);
+
private:
content::RenderFrameHost* const render_frame_host_;
webusb::WebUsbPermissionBubble::GetPermissionCallback callback_;
@@ -57,6 +60,7 @@ class UsbChooserBubbleDelegate : public ChooserBubbleDelegate,
std::vector<device::UsbDeviceFilter> filters_;
std::vector<scoped_refptr<device::UsbDevice>> devices_;
std::vector<base::string16> devices_names_;
+ BubbleReference bubble_controller_;
base::WeakPtrFactory<UsbChooserBubbleDelegate> weak_factory_;
DISALLOW_COPY_AND_ASSIGN(UsbChooserBubbleDelegate);
diff --git a/chrome/browser/usb/web_usb_permission_bubble.cc b/chrome/browser/usb/web_usb_permission_bubble.cc
index c7ca541..ca25c43 100644
--- a/chrome/browser/usb/web_usb_permission_bubble.cc
+++ b/chrome/browser/usb/web_usb_permission_bubble.cc
@@ -4,6 +4,8 @@
#include "chrome/browser/usb/web_usb_permission_bubble.h"
+#include <utility>
+
#include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/chrome_bubble_manager.h"
#include "chrome/browser/usb/usb_chooser_bubble_delegate.h"
@@ -31,11 +33,14 @@ void ChromeWebUsbPermissionBubble::GetPermission(
content::WebContents* web_contents =
content::WebContents::FromRenderFrameHost(render_frame_host_);
Browser* browser = chrome::FindBrowserWithWebContents(web_contents);
- scoped_ptr<BubbleDelegate> bubble_delegate(new UsbChooserBubbleDelegate(
- browser, device_filters.Pass(), render_frame_host_, callback));
- BubbleReference bubble_reference =
- browser->GetBubbleManager()->ShowBubble(bubble_delegate.Pass());
- bubbles_.push_back(bubble_reference);
+ scoped_ptr<UsbChooserBubbleDelegate> bubble_delegate(
+ new UsbChooserBubbleDelegate(browser, std::move(device_filters),
+ render_frame_host_, callback));
+ UsbChooserBubbleDelegate* bubble_delegate_ptr = bubble_delegate.get();
+ BubbleReference bubble_controller =
+ browser->GetBubbleManager()->ShowBubble(std::move(bubble_delegate));
+ bubble_delegate_ptr->set_bubble_controller(bubble_controller);
+ bubbles_.push_back(bubble_controller);
}
void ChromeWebUsbPermissionBubble::Bind(