Index: chrome/browser/safe_browsing/ui_manager.cc |
diff --git a/chrome/browser/safe_browsing/ui_manager.cc b/chrome/browser/safe_browsing/ui_manager.cc |
index 8543c38bf4b68885feba7e02f3c7578c3029bb89..ab4769e7a7ac95a4c70ff1efb2802faf3f31af3c 100644 |
--- a/chrome/browser/safe_browsing/ui_manager.cc |
+++ b/chrome/browser/safe_browsing/ui_manager.cc |
@@ -280,6 +280,17 @@ void SafeBrowsingUIManager::ReportInvalidCertificateChain( |
callback); |
} |
+void SafeBrowsingUIManager::ReportPermissionAction( |
+ const GURL& origin, |
+ content::PermissionType permission, |
+ PermissionAction action) { |
+ DCHECK_CURRENTLY_ON(BrowserThread::UI); |
+ BrowserThread::PostTask( |
+ BrowserThread::IO, FROM_HERE, |
+ base::Bind(&SafeBrowsingUIManager::ReportPermissionActionOnIOThread, this, |
+ origin, permission, action)); |
+} |
+ |
void SafeBrowsingUIManager::AddObserver(Observer* observer) { |
DCHECK_CURRENTLY_ON(BrowserThread::UI); |
observer_list_.AddObserver(observer); |
@@ -302,6 +313,21 @@ void SafeBrowsingUIManager::ReportInvalidCertificateChainOnIOThread( |
sb_service_->ping_manager()->ReportInvalidCertificateChain(serialized_report); |
} |
+void SafeBrowsingUIManager::ReportPermissionActionOnIOThread( |
+ const GURL& origin, |
+ content::PermissionType permission, |
+ PermissionAction action) { |
+ DCHECK_CURRENTLY_ON(BrowserThread::IO); |
+ |
+ // The service may delete the ping manager (i.e. when user disabling service, |
+ // etc). This happens on the IO thread. |
+ if (!sb_service_ || !sb_service_->ping_manager()) |
+ return; |
+ |
+ sb_service_->ping_manager()->ReportPermissionAction(origin, permission, |
+ action); |
+} |
+ |
// If the user had opted-in to send ThreatDetails, this gets called |
// when the report is ready. |
void SafeBrowsingUIManager::SendSerializedThreatDetails( |