Index: content/browser/permissions/permission_service_impl.cc |
diff --git a/content/browser/permissions/permission_service_impl.cc b/content/browser/permissions/permission_service_impl.cc |
index 7d9464e00941e61ba36f24dbfaa7b6dc2e52cd2f..e3bd7e348ec6ee3e4dee4cd763a39816c97a99bd 100644 |
--- a/content/browser/permissions/permission_service_impl.cc |
+++ b/content/browser/permissions/permission_service_impl.cc |
@@ -122,4 +122,38 @@ void PermissionServiceImpl::HasPermission( |
embedding_origin.is_empty() ? GURL(origin) : embedding_origin)); |
} |
+void PermissionServiceImpl::RevokePermission( |
+ PermissionName permission, |
+ const mojo::String& origin, |
+ const mojo::Callback<void(PermissionStatus)>& callback) { |
+ GURL origin_url(origin); |
+ PermissionType permission_type = PermissionNameToPermissionType(permission); |
+ PermissionStatus status = GetPermissionStatus(permission_type, origin_url); |
+ |
+ if (status != PERMISSION_STATUS_GRANTED) |
+ callback.Run(status); |
+ |
+ ResetPermissionStatus(permission_type, origin_url); |
+ |
+ callback.Run(GetPermissionStatus(permission_type, origin_url)); |
+} |
+ |
+PermissionStatus PermissionServiceImpl::GetPermissionStatus(PermissionType type, |
+ GURL origin) { |
mlamouri (slow - plz ping)
2015/01/26 10:38:17
Should you re-use that method in ::HasPermission()
timvolodine
2015/01/30 14:07:47
Yes. done.
|
+ // If the embedding_origin is empty we'll use |origin| instead. |
+ GURL embedding_origin = context_->GetEmbeddingOrigin(); |
+ return GetContentClient()->browser()->GetPermissionStatus( |
+ type, context_->GetBrowserContext(), origin, |
+ embedding_origin.is_empty() ? origin : embedding_origin); |
+} |
+ |
+void PermissionServiceImpl::ResetPermissionStatus(PermissionType type, |
+ GURL origin) { |
+ // If the embedding_origin is empty we'll use |origin| instead. |
+ GURL embedding_origin = context_->GetEmbeddingOrigin(); |
+ GetContentClient()->browser()->ResetPermission( |
+ type, context_->GetBrowserContext(), origin, |
+ embedding_origin.is_empty() ? origin : embedding_origin); |
+} |
+ |
} // namespace content |