| Index: chrome/browser/ui/cocoa/permission_bubble/permission_bubble_cocoa.mm
|
| diff --git a/chrome/browser/ui/cocoa/permission_bubble/permission_bubble_cocoa.mm b/chrome/browser/ui/cocoa/permission_bubble/permission_bubble_cocoa.mm
|
| index edca45418cd0470a8d0c11d9c1ae02b988d49339..7520a4144fc421c2acd8c3736fecc40295210abc 100644
|
| --- a/chrome/browser/ui/cocoa/permission_bubble/permission_bubble_cocoa.mm
|
| +++ b/chrome/browser/ui/cocoa/permission_bubble/permission_bubble_cocoa.mm
|
| @@ -22,12 +22,14 @@ void PermissionBubbleCocoa::Show(
|
| const std::vector<bool>& accept_state) {
|
| DCHECK(browser_);
|
|
|
| - if (!bubbleController_) {
|
| - bubbleController_ =
|
| - [[PermissionBubbleController alloc] initWithBrowser:browser_
|
| - bridge:this];
|
| + if (IsVisible()) {
|
| + // We just rejected a MaybeCancelRequest() call.
|
| + return;
|
| }
|
|
|
| + bubbleController_ =
|
| + [[PermissionBubbleController alloc] initWithBrowser:browser_ bridge:this];
|
| +
|
| [bubbleController_ showWithDelegate:delegate_
|
| forRequests:requests
|
| acceptStates:accept_state];
|
| @@ -47,8 +49,11 @@ void PermissionBubbleCocoa::SetDelegate(Delegate* delegate) {
|
| delegate_ = delegate;
|
| }
|
|
|
| -bool PermissionBubbleCocoa::CanAcceptRequestUpdate() {
|
| - return ![[[bubbleController_ window] contentView] cr_isMouseInView];
|
| +bool PermissionBubbleCocoa::MaybeCancelRequest() {
|
| + if ([[[bubbleController_ window] contentView] cr_isMouseInView])
|
| + return false;
|
| + Hide();
|
| + return true;
|
| }
|
|
|
| bool PermissionBubbleCocoa::HidesAutomatically() {
|
|
|