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() { |