diff options
author | juncai <juncai@chromium.org> | 2015-12-22 16:20:11 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-12-23 00:21:15 +0000 |
commit | 22707c4f0558a333b63f6b99c7f06d5bd27a4f4e (patch) | |
tree | 5e03518c1919fd730eb9839cb1e09a5b0f30f68e /chrome/browser/usb | |
parent | eaa6adc9f2b8463b7f5859e3b9faffecdd5225f1 (diff) | |
download | chromium_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.cc | 14 | ||||
-rw-r--r-- | chrome/browser/usb/usb_chooser_bubble_delegate.h | 4 | ||||
-rw-r--r-- | chrome/browser/usb/web_usb_permission_bubble.cc | 15 |
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( |