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

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

Issue 2255933002: Add PermissionDescriptor to the permissions Mojo interface. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@no_notification_dispatcher
Patch Set: Print the unexpected permission type. Created 4 years, 2 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 f5c226042480f3447c4f87676e43c5e068a614e4..9ad4bb24640c151703d0938d0bdcb043fef1d0cb 100644
--- a/content/browser/permissions/permission_service_impl.cc
+++ b/content/browser/permissions/permission_service_impl.cc
@@ -12,6 +12,7 @@
#include "content/public/browser/permission_manager.h"
#include "content/public/browser/permission_type.h"
+using blink::mojom::PermissionDescriptorPtr;
using blink::mojom::PermissionName;
using blink::mojom::PermissionStatus;
@@ -19,18 +20,22 @@ namespace content {
namespace {
-PermissionType PermissionNameToPermissionType(PermissionName name) {
- switch(name) {
+PermissionType PermissionDescriptorToPermissionType(
+ const PermissionDescriptorPtr& descriptor) {
+ switch (descriptor->name) {
case PermissionName::GEOLOCATION:
return PermissionType::GEOLOCATION;
case PermissionName::NOTIFICATIONS:
return PermissionType::NOTIFICATIONS;
case PermissionName::PUSH_NOTIFICATIONS:
return PermissionType::PUSH_MESSAGING;
- case PermissionName::MIDI:
+ case PermissionName::MIDI: {
+ if (descriptor->extension && descriptor->extension->is_midi() &&
+ descriptor->extension->get_midi()->sysex) {
+ return PermissionType::MIDI_SYSEX;
+ }
return PermissionType::MIDI;
- case PermissionName::MIDI_SYSEX:
- return PermissionType::MIDI_SYSEX;
+ }
case PermissionName::PROTECTED_MEDIA_IDENTIFIER:
return PermissionType::PROTECTED_MEDIA_IDENTIFIER;
case PermissionName::DURABLE_STORAGE:
@@ -106,7 +111,7 @@ void PermissionServiceImpl::OnConnectionError() {
}
void PermissionServiceImpl::RequestPermission(
- PermissionName permission,
+ PermissionDescriptorPtr permission,
const url::Origin& origin,
bool user_gesture,
const PermissionStatusCallback& callback) {
@@ -121,15 +126,15 @@ void PermissionServiceImpl::RequestPermission(
DCHECK(browser_context);
if (!context_->render_frame_host() ||
!browser_context->GetPermissionManager()) {
- callback.Run(GetPermissionStatusFromName(permission, origin));
+ callback.Run(GetPermissionStatus(permission, origin));
return;
}
int pending_request_id = pending_requests_.Add(new PendingRequest(
base::Bind(&PermissionRequestResponseCallbackWrapper, callback), 1));
int id = browser_context->GetPermissionManager()->RequestPermission(
- PermissionNameToPermissionType(permission), context_->render_frame_host(),
- GURL(origin.Serialize()), user_gesture,
+ PermissionDescriptorToPermissionType(permission),
+ context_->render_frame_host(), GURL(origin.Serialize()), user_gesture,
base::Bind(&PermissionServiceImpl::OnRequestPermissionResponse,
weak_factory_.GetWeakPtr(), pending_request_id));
@@ -150,7 +155,7 @@ void PermissionServiceImpl::OnRequestPermissionResponse(
}
void PermissionServiceImpl::RequestPermissions(
- const std::vector<PermissionName>& permissions,
+ std::vector<PermissionDescriptorPtr> permissions,
const url::Origin& origin,
bool user_gesture,
const RequestPermissionsCallback& callback) {
@@ -166,16 +171,15 @@ void PermissionServiceImpl::RequestPermissions(
if (!context_->render_frame_host() ||
!browser_context->GetPermissionManager()) {
std::vector<PermissionStatus> result(permissions.size());
- for (size_t i = 0; i < permissions.size(); ++i) {
- result[i] = GetPermissionStatusFromName(permissions[i], origin);
- }
+ for (size_t i = 0; i < permissions.size(); ++i)
+ result[i] = GetPermissionStatus(permissions[i], origin);
callback.Run(result);
return;
}
std::vector<PermissionType> types(permissions.size());
for (size_t i = 0; i < types.size(); ++i)
- types[i] = PermissionNameToPermissionType(permissions[i]);
+ types[i] = PermissionDescriptorToPermissionType(permissions[i]);
int pending_request_id = pending_requests_.Add(
new PendingRequest(callback, permissions.size()));
@@ -233,17 +237,18 @@ void PermissionServiceImpl::CancelPendingOperations() {
}
void PermissionServiceImpl::HasPermission(
- PermissionName permission,
+ PermissionDescriptorPtr permission,
const url::Origin& origin,
const PermissionStatusCallback& callback) {
- callback.Run(GetPermissionStatusFromName(permission, origin));
+ callback.Run(GetPermissionStatus(permission, origin));
}
void PermissionServiceImpl::RevokePermission(
- PermissionName permission,
+ PermissionDescriptorPtr permission,
const url::Origin& origin,
const PermissionStatusCallback& callback) {
- PermissionType permission_type = PermissionNameToPermissionType(permission);
+ PermissionType permission_type =
+ PermissionDescriptorToPermissionType(permission);
PermissionStatus status =
GetPermissionStatusFromType(permission_type, origin);
@@ -260,12 +265,11 @@ void PermissionServiceImpl::RevokePermission(
}
void PermissionServiceImpl::GetNextPermissionChange(
- PermissionName permission,
+ PermissionDescriptorPtr permission,
const url::Origin& origin,
PermissionStatus last_known_status,
const PermissionStatusCallback& callback) {
- PermissionStatus current_status =
- GetPermissionStatusFromName(permission, origin);
+ PermissionStatus current_status = GetPermissionStatus(permission, origin);
if (current_status != last_known_status) {
callback.Run(current_status);
return;
@@ -278,7 +282,8 @@ void PermissionServiceImpl::GetNextPermissionChange(
return;
}
- PermissionType permission_type = PermissionNameToPermissionType(permission);
+ PermissionType permission_type =
+ PermissionDescriptorToPermissionType(permission);
// We need to pass the id of PendingSubscription in pending_subscriptions_
// to the callback but SubscribePermissionStatusChange() will also return an
@@ -298,11 +303,11 @@ void PermissionServiceImpl::GetNextPermissionChange(
weak_factory_.GetWeakPtr(), pending_subscription_id));
}
-PermissionStatus PermissionServiceImpl::GetPermissionStatusFromName(
- PermissionName permission,
+PermissionStatus PermissionServiceImpl::GetPermissionStatus(
+ const PermissionDescriptorPtr& permission,
const url::Origin& origin) {
- return GetPermissionStatusFromType(PermissionNameToPermissionType(permission),
- origin);
+ return GetPermissionStatusFromType(
+ PermissionDescriptorToPermissionType(permission), origin);
}
PermissionStatus PermissionServiceImpl::GetPermissionStatusFromType(
« no previous file with comments | « content/browser/permissions/permission_service_impl.h ('k') | content/renderer/media/media_permission_dispatcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698