Index: chrome/browser/ui/views/permission_bubble/permission_prompt_impl.cc |
diff --git a/chrome/browser/ui/views/permission_bubble/permission_prompt_impl.cc b/chrome/browser/ui/views/permission_bubble/permission_prompt_impl.cc |
index 9ca35cec672045c1f32f5abc801c3245d4121afa..fbd33f6ce2b6f819a7955ab56ca1007efe7e9aff 100644 |
--- a/chrome/browser/ui/views/permission_bubble/permission_prompt_impl.cc |
+++ b/chrome/browser/ui/views/permission_bubble/permission_prompt_impl.cc |
@@ -407,8 +407,10 @@ void PermissionPromptImpl::Show(const std::vector<PermissionRequest*>& requests, |
DCHECK(browser_); |
DCHECK(browser_->window()); |
- if (bubble_delegate_) |
- bubble_delegate_->CloseBubble(); |
+ if (IsVisible()) { |
+ // We just rejected a MaybeCancelRequest() call. |
+ return; |
+ } |
bubble_delegate_ = |
new PermissionsBubbleDialogDelegateView(this, requests, values); |
@@ -430,8 +432,11 @@ void PermissionPromptImpl::Show(const std::vector<PermissionRequest*>& requests, |
GetAnchorArrow()); |
} |
-bool PermissionPromptImpl::CanAcceptRequestUpdate() { |
- return !(bubble_delegate_ && bubble_delegate_->IsMouseHovered()); |
+bool PermissionPromptImpl::MaybeCancelRequest() { |
+ if (bubble_delegate_->IsMouseHovered()) |
+ return false; |
+ Hide(); |
+ return true; |
} |
bool PermissionPromptImpl::HidesAutomatically() { |