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

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

Issue 1726323002: Have Permission{Manager,Service} use Origin. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 4 years, 9 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 0fb9fb41bdbd576c1c7b525c89837e4edfd37ea2..bfcd6fd015a498c35315b9d68bf77ba5c25bddf9 100644
--- a/content/browser/permissions/permission_service_impl.cc
+++ b/content/browser/permissions/permission_service_impl.cc
@@ -11,6 +11,7 @@
#include "content/public/browser/browser_context.h"
#include "content/public/browser/permission_manager.h"
#include "content/public/browser/permission_type.h"
+#include "url/origin.h"
namespace content {
@@ -73,13 +74,9 @@ PermissionServiceImpl::PendingRequest::~PendingRequest() {
PermissionServiceImpl::PendingSubscription::PendingSubscription(
PermissionType permission,
- const GURL& origin,
+ const url::Origin& origin,
const PermissionStatusCallback& callback)
- : id(-1),
- permission(permission),
- origin(origin),
- callback(callback) {
-}
+ : id(-1), permission(permission), origin(origin), callback(callback) {}
PermissionServiceImpl::PendingSubscription::~PendingSubscription() {
if (!callback.is_null())
@@ -108,7 +105,7 @@ void PermissionServiceImpl::OnConnectionError() {
void PermissionServiceImpl::RequestPermission(
mojom::PermissionName permission,
- const mojo::String& origin,
+ const mojo::String& origin_string,
const PermissionStatusCallback& callback) {
// This condition is valid if the call is coming from a ChildThread instead of
// a RenderFrame. Some consumers of the service run in Workers and some in
@@ -119,21 +116,19 @@ void PermissionServiceImpl::RequestPermission(
// permission status is returned.
BrowserContext* browser_context = context_->GetBrowserContext();
DCHECK(browser_context);
+ url::Origin origin(origin_string.get());
if (!context_->render_frame_host() ||
!browser_context->GetPermissionManager()) {
- callback.Run(GetPermissionStatusFromName(permission, GURL(origin.get())));
+ callback.Run(GetPermissionStatusFromName(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.get()),
- base::Bind(&PermissionServiceImpl::OnRequestPermissionResponse,
- weak_factory_.GetWeakPtr(),
- pending_request_id));
+ PermissionNameToPermissionType(permission), context_->render_frame_host(),
+ origin, base::Bind(&PermissionServiceImpl::OnRequestPermissionResponse,
+ weak_factory_.GetWeakPtr(), pending_request_id));
// Check if the request still exists. It might have been removed by the
// callback if it was run synchronously.
@@ -153,7 +148,7 @@ void PermissionServiceImpl::OnRequestPermissionResponse(
void PermissionServiceImpl::RequestPermissions(
mojo::Array<mojom::PermissionName> permissions,
- const mojo::String& origin,
+ const mojo::String& origin_string,
const PermissionsStatusCallback& callback) {
if (permissions.is_null()) {
callback.Run(mojo::Array<mojom::PermissionStatus>());
@@ -169,12 +164,12 @@ void PermissionServiceImpl::RequestPermissions(
// permission status is returned for each permission.
BrowserContext* browser_context = context_->GetBrowserContext();
DCHECK(browser_context);
+ const url::Origin origin(origin_string.get());
if (!context_->render_frame_host() ||
!browser_context->GetPermissionManager()) {
mojo::Array<mojom::PermissionStatus> result(permissions.size());
for (size_t i = 0; i < permissions.size(); ++i) {
- result[i] =
- GetPermissionStatusFromName(permissions[i], GURL(origin.get()));
+ result[i] = GetPermissionStatusFromName(permissions[i], origin);
}
callback.Run(std::move(result));
return;
@@ -187,12 +182,9 @@ void PermissionServiceImpl::RequestPermissions(
int pending_request_id = pending_requests_.Add(
new PendingRequest(callback, permissions.size()));
int id = browser_context->GetPermissionManager()->RequestPermissions(
- types,
- context_->render_frame_host(),
- GURL(origin.get()),
+ types, context_->render_frame_host(), origin,
base::Bind(&PermissionServiceImpl::OnRequestPermissionsResponse,
- weak_factory_.GetWeakPtr(),
- pending_request_id));
+ weak_factory_.GetWeakPtr(), pending_request_id));
// Check if the request still exists. It may have been removed by the
// the response callback.
@@ -243,19 +235,20 @@ void PermissionServiceImpl::CancelPendingOperations() {
void PermissionServiceImpl::HasPermission(
mojom::PermissionName permission,
- const mojo::String& origin,
+ const mojo::String& origin_string,
const PermissionStatusCallback& callback) {
- callback.Run(GetPermissionStatusFromName(permission, GURL(origin.get())));
+ callback.Run(GetPermissionStatusFromName(permission,
+ url::Origin(origin_string.get())));
}
void PermissionServiceImpl::RevokePermission(
mojom::PermissionName permission,
- const mojo::String& origin,
+ const mojo::String& origin_string,
const PermissionStatusCallback& callback) {
- GURL origin_url(origin.get());
+ const url::Origin origin(origin_string.get());
PermissionType permission_type = PermissionNameToPermissionType(permission);
mojom::PermissionStatus status =
- GetPermissionStatusFromType(permission_type, origin_url);
+ GetPermissionStatusFromType(permission_type, origin);
// Resetting the permission should only be possible if the permission is
// already granted.
@@ -264,17 +257,17 @@ void PermissionServiceImpl::RevokePermission(
return;
}
- ResetPermissionStatus(permission_type, origin_url);
+ ResetPermissionStatus(permission_type, origin);
- callback.Run(GetPermissionStatusFromType(permission_type, origin_url));
+ callback.Run(GetPermissionStatusFromType(permission_type, origin));
}
void PermissionServiceImpl::GetNextPermissionChange(
mojom::PermissionName permission,
- const mojo::String& mojo_origin,
+ const mojo::String& origin_string,
mojom::PermissionStatus last_known_status,
const PermissionStatusCallback& callback) {
- GURL origin(mojo_origin.get());
+ const url::Origin origin(origin_string.get());
mojom::PermissionStatus current_status =
GetPermissionStatusFromName(permission, origin);
if (current_status != last_known_status) {
@@ -298,50 +291,45 @@ void PermissionServiceImpl::GetNextPermissionChange(
new PendingSubscription(permission_type, origin, callback);
int pending_subscription_id = pending_subscriptions_.Add(subscription);
- GURL embedding_origin = context_->GetEmbeddingOrigin();
+ const url::Origin embedding_origin = context_->GetEmbeddingOrigin();
subscription->id =
browser_context->GetPermissionManager()->SubscribePermissionStatusChange(
- permission_type,
- origin,
- // If the embedding_origin is empty, we,ll use the |origin| instead.
- embedding_origin.is_empty() ? origin : embedding_origin,
+ permission_type, origin,
+ embedding_origin.empty() ? origin : embedding_origin,
base::Bind(&PermissionServiceImpl::OnPermissionStatusChanged,
- weak_factory_.GetWeakPtr(),
- pending_subscription_id));
+ weak_factory_.GetWeakPtr(), pending_subscription_id));
}
mojom::PermissionStatus PermissionServiceImpl::GetPermissionStatusFromName(
mojom::PermissionName permission,
- const GURL& origin) {
+ const url::Origin& origin) {
return GetPermissionStatusFromType(PermissionNameToPermissionType(permission),
origin);
}
mojom::PermissionStatus PermissionServiceImpl::GetPermissionStatusFromType(
PermissionType type,
- const GURL& origin) {
+ const url::Origin& origin) {
BrowserContext* browser_context = context_->GetBrowserContext();
DCHECK(browser_context);
if (!browser_context->GetPermissionManager())
return mojom::PermissionStatus::DENIED;
- // If the embedding_origin is empty we'll use |origin| instead.
- GURL embedding_origin = context_->GetEmbeddingOrigin();
+ const url::Origin embedding_origin = context_->GetEmbeddingOrigin();
return browser_context->GetPermissionManager()->GetPermissionStatus(
- type, origin, embedding_origin.is_empty() ? origin : embedding_origin);
+ type, origin, embedding_origin.empty() ? origin : embedding_origin);
}
void PermissionServiceImpl::ResetPermissionStatus(PermissionType type,
- const GURL& origin) {
+ const url::Origin& origin) {
BrowserContext* browser_context = context_->GetBrowserContext();
DCHECK(browser_context);
if (!browser_context->GetPermissionManager())
return;
- // If the embedding_origin is empty we'll use |origin| instead.
- GURL embedding_origin = context_->GetEmbeddingOrigin();
+ const url::Origin embedding_origin = context_->GetEmbeddingOrigin();
browser_context->GetPermissionManager()->ResetPermission(
- type, origin, embedding_origin.is_empty() ? origin : embedding_origin);
+ type, origin, embedding_origin.empty() ? origin : embedding_origin);
}
void PermissionServiceImpl::OnPermissionStatusChanged(
« no previous file with comments | « content/browser/permissions/permission_service_impl.h ('k') | content/browser/push_messaging/push_messaging_message_filter.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698