Chromium Code Reviews| 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 494b8804e62fc2f00771613833df54b4c931a36d..c54c6bca0317239276ffc739f30fe7e0cd46c89a 100644 |
| --- a/chrome/browser/permissions/permission_request_manager.cc |
| +++ b/chrome/browser/permissions/permission_request_manager.cc |
| @@ -30,7 +30,8 @@ class CancelledRequest : public PermissionRequest { |
| message_(cancelled->GetMessageText()), |
| #endif |
| message_fragment_(cancelled->GetMessageTextFragment()), |
| - origin_(cancelled->GetOrigin()) { |
| + origin_(cancelled->GetOrigin()), |
| + request_type_(cancelled->GetPermissionRequestType()) { |
| } |
| ~CancelledRequest() override {} |
| @@ -50,6 +51,10 @@ class CancelledRequest : public PermissionRequest { |
| void RequestFinished() override { delete this; } |
| + PermissionRequestType GetPermissionRequestType() const override { |
| + return request_type_; |
| + } |
| + |
| private: |
| IconId icon_; |
| #if defined(OS_ANDROID) |
| @@ -57,6 +62,7 @@ class CancelledRequest : public PermissionRequest { |
| #endif |
| base::string16 message_fragment_; |
| GURL origin_; |
| + PermissionRequestType request_type_; |
| }; |
| bool IsMessageTextEqual(PermissionRequest* a, |
| @@ -121,6 +127,9 @@ PermissionRequestManager::PermissionRequestManager( |
| } |
| PermissionRequestManager::~PermissionRequestManager() { |
| + if (!requests_.empty()) |
| + PermissionUmaUtil::PermissionPromptIgnored(requests_, web_contents()); |
|
raymes
2017/07/06 05:03:15
I think by this stage the requests may be empty.
Timothy Loh
2017/07/19 06:03:43
Moved to CleanUpRequests
|
| + |
| if (view_ != NULL) |
| view_->SetDelegate(NULL); |
| @@ -200,6 +209,10 @@ void PermissionRequestManager::CancelRequest(PermissionRequest* request) { |
| // showing the dialog, or if we are showing it and it can accept the update. |
| bool can_erase = !view_ || view_->CanAcceptRequestUpdate(); |
| if (can_erase) { |
| + // Grouped (mic+camera) requests are currently never cancelled. |
| + DCHECK_EQ(static_cast<size_t>(1), requests_.size()); |
| + PermissionUmaUtil::PermissionPromptIgnored(requests_, web_contents()); |
| + |
| RequestFinishedIncludingDuplicates(*requests_iter); |
| requests_.erase(requests_iter); |
| @@ -339,7 +352,7 @@ void PermissionRequestManager::TogglePersist(bool new_value) { |
| } |
| void PermissionRequestManager::Accept() { |
| - PermissionUmaUtil::PermissionPromptAccepted(requests_); |
| + PermissionUmaUtil::PermissionPromptAccepted(requests_, web_contents()); |
| std::vector<PermissionRequest*>::iterator requests_iter; |
| for (requests_iter = requests_.begin(); requests_iter != requests_.end(); |
| @@ -350,7 +363,7 @@ void PermissionRequestManager::Accept() { |
| } |
| void PermissionRequestManager::Deny() { |
| - PermissionUmaUtil::PermissionPromptDenied(requests_); |
| + PermissionUmaUtil::PermissionPromptDenied(requests_, web_contents()); |
| std::vector<PermissionRequest*>::iterator requests_iter; |
| for (requests_iter = requests_.begin(); |
| @@ -362,6 +375,8 @@ void PermissionRequestManager::Deny() { |
| } |
| void PermissionRequestManager::Closing() { |
| + PermissionUmaUtil::PermissionPromptDismissed(requests_, web_contents()); |
| + |
| std::vector<PermissionRequest*>::iterator requests_iter; |
| for (requests_iter = requests_.begin(); |
| requests_iter != requests_.end(); |