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