| Index: chrome/browser/permissions/permission_request_manager.cc | 
| diff --git a/chrome/browser/permissions/permission_request_manager.cc b/chrome/browser/permissions/permission_request_manager.cc | 
| index 2a7cf3ac5729cd357ac67051284a3872ce8cc374..f95adacba05fc6b56173976e5609c405baf6c52d 100644 | 
| --- a/chrome/browser/permissions/permission_request_manager.cc | 
| +++ b/chrome/browser/permissions/permission_request_manager.cc | 
| @@ -341,6 +341,7 @@ void PermissionRequestManager::Accept() { | 
| } | 
|  | 
| void PermissionRequestManager::Deny() { | 
| +  DCHECK_EQ(1u, requests_.size()); | 
| PermissionUmaUtil::PermissionPromptDenied(requests_); | 
|  | 
| std::vector<PermissionRequest*>::iterator requests_iter; | 
| @@ -524,7 +525,14 @@ void PermissionRequestManager::DoAutoResponseForTesting() { | 
| Accept(); | 
| break; | 
| case DENY_ALL: | 
| -      Deny(); | 
| +      // Deny() assumes there is only 1 request. | 
| +      if (accept_states_.size() == 1) { | 
| +        Deny(); | 
| +      } else { | 
| +        for (size_t i = 0; i < accept_states_.size(); ++i) | 
| +          accept_states_[i] = false; | 
| +        Accept(); | 
| +      } | 
| break; | 
| case DISMISS: | 
| Closing(); | 
|  |