Chromium Code Reviews| 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 |