Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(48)

Unified Diff: content/browser/permissions/permission_service_impl.cc

Issue 819463002: Implement RevokePermission() method in PermissionService. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase, fix more comments, fix tests Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698