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 678c50aaa8e7b08794bf46c73d80abd639cf6379..60a9629676ab4ee7134bd7bfe93fe364190af54b 100644 |
--- a/chrome/browser/permissions/permission_request_manager.cc |
+++ b/chrome/browser/permissions/permission_request_manager.cc |
@@ -31,7 +31,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 {} |
@@ -51,6 +52,10 @@ class CancelledRequest : public PermissionRequest { |
void RequestFinished() override { delete this; } |
+ PermissionRequestType GetPermissionRequestType() const override { |
+ return request_type_; |
+ } |
+ |
private: |
IconId icon_; |
#if defined(OS_ANDROID) |
@@ -58,6 +63,7 @@ class CancelledRequest : public PermissionRequest { |
#endif |
base::string16 message_fragment_; |
GURL origin_; |
+ PermissionRequestType request_type_; |
}; |
bool IsMessageTextEqual(PermissionRequest* a, |
@@ -200,6 +206,7 @@ void PermissionRequestManager::CancelRequest(PermissionRequest* request) { |
// TODO(timloh): We should fix this at some point. |
// Grouped (mic+camera) requests are currently never cancelled. |
DCHECK_EQ(static_cast<size_t>(1), requests_.size()); |
+ PermissionUmaUtil::PermissionPromptIgnored(requests_, web_contents()); |
if (view_) |
DeleteBubble(); |
@@ -329,7 +336,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(); |
@@ -340,7 +347,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(); |
@@ -357,6 +364,9 @@ void PermissionRequestManager::Closing() { |
if (!view_) |
return; |
#endif |
+ |
+ PermissionUmaUtil::PermissionPromptDismissed(requests_, web_contents()); |
+ |
std::vector<PermissionRequest*>::iterator requests_iter; |
for (requests_iter = requests_.begin(); |
requests_iter != requests_.end(); |
@@ -445,8 +455,10 @@ void PermissionRequestManager::CleanUpRequests() { |
} |
queued_requests_.clear(); |
- if (view_) |
+ if (view_) { |
+ PermissionUmaUtil::PermissionPromptIgnored(requests_, web_contents()); |
FinalizeBubble(); |
+ } |
} |
PermissionRequest* PermissionRequestManager::GetExistingRequest( |