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

Unified Diff: chrome/browser/permissions/permission_manager.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: chrome/browser/permissions/permission_manager.cc
diff --git a/chrome/browser/permissions/permission_manager.cc b/chrome/browser/permissions/permission_manager.cc
index 0b7473b46ee6e71e1db2c03619832ff42160e798..691f176d6fa7a5215c2b9c245b6fb15b047dadda 100644
--- a/chrome/browser/permissions/permission_manager.cc
+++ b/chrome/browser/permissions/permission_manager.cc
@@ -19,6 +19,7 @@
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/render_process_host.h"
#include "content/public/browser/web_contents.h"
+#include "url/origin.h"
#if !defined(OS_ANDROID)
#include "chrome/browser/ui/website_settings/permission_bubble_manager.h"
@@ -189,8 +190,8 @@ class PermissionManager::PendingRequest {
struct PermissionManager::Subscription {
PermissionType permission;
- GURL requesting_origin;
- GURL embedding_origin;
+ url::Origin requesting_origin;
+ url::Origin embedding_origin;
base::Callback<void(PermissionStatus)> callback;
ContentSetting current_value;
};
@@ -209,7 +210,7 @@ PermissionManager::~PermissionManager() {
int PermissionManager::RequestPermission(
PermissionType permission,
content::RenderFrameHost* render_frame_host,
- const GURL& requesting_origin,
+ const url::Origin& requesting_origin,
const base::Callback<void(PermissionStatus)>& callback) {
return RequestPermissions(
std::vector<PermissionType>(1, permission),
@@ -221,9 +222,9 @@ int PermissionManager::RequestPermission(
int PermissionManager::RequestPermissions(
const std::vector<PermissionType>& permissions,
content::RenderFrameHost* render_frame_host,
- const GURL& requesting_origin,
- const base::Callback<void(
- const std::vector<PermissionStatus>&)>& callback) {
+ const url::Origin& requesting_origin,
+ const base::Callback<void(const std::vector<PermissionStatus>&)>&
+ callback) {
if (permissions.empty()) {
callback.Run(std::vector<PermissionStatus>());
return kNoPendingOperation;
@@ -231,7 +232,7 @@ int PermissionManager::RequestPermissions(
content::WebContents* web_contents =
content::WebContents::FromRenderFrameHost(render_frame_host);
- GURL embedding_origin = web_contents->GetLastCommittedURL().GetOrigin();
+ const url::Origin embedding_origin(web_contents->GetLastCommittedURL());
PendingRequest* pending_request = new PendingRequest(
render_frame_host, permissions, callback);
@@ -307,20 +308,19 @@ void PermissionManager::CancelPermissionRequest(int request_id) {
}
void PermissionManager::ResetPermission(PermissionType permission,
- const GURL& requesting_origin,
- const GURL& embedding_origin) {
+ const url::Origin& requesting_origin,
+ const url::Origin& embedding_origin) {
PermissionContextBase* context = PermissionContext::Get(profile_, permission);
if (!context)
return;
- context->ResetPermission(requesting_origin.GetOrigin(),
- embedding_origin.GetOrigin());
+ context->ResetPermission(requesting_origin, embedding_origin);
}
PermissionStatus PermissionManager::GetPermissionStatus(
PermissionType permission,
- const GURL& requesting_origin,
- const GURL& embedding_origin) {
+ const url::Origin& requesting_origin,
+ const url::Origin& embedding_origin) {
if (IsConstantPermission(permission))
return GetPermissionStatusForConstantPermission(permission);
@@ -328,28 +328,28 @@ PermissionStatus PermissionManager::GetPermissionStatus(
if (!context)
return content::mojom::PermissionStatus::DENIED;
- return ContentSettingToPermissionStatus(context->GetPermissionStatus(
- requesting_origin.GetOrigin(), embedding_origin.GetOrigin()));
+ return ContentSettingToPermissionStatus(
+ context->GetPermissionStatus(requesting_origin, embedding_origin));
}
-void PermissionManager::RegisterPermissionUsage(PermissionType permission,
- const GURL& requesting_origin,
- const GURL& embedding_origin) {
+void PermissionManager::RegisterPermissionUsage(
+ PermissionType permission,
+ const url::Origin& requesting_origin,
+ const url::Origin& embedding_origin) {
// This is required because constant permissions don't have a
// ContentSettingsType.
if (IsConstantPermission(permission))
return;
HostContentSettingsMapFactory::GetForProfile(profile_)->UpdateLastUsage(
- requesting_origin,
- embedding_origin,
+ GURL(requesting_origin.Serialize()), GURL(embedding_origin.Serialize()),
PermissionTypeToContentSetting(permission));
}
int PermissionManager::SubscribePermissionStatusChange(
PermissionType permission,
- const GURL& requesting_origin,
- const GURL& embedding_origin,
+ const url::Origin& requesting_origin,
+ const url::Origin& embedding_origin,
const base::Callback<void(PermissionStatus)>& callback) {
if (subscriptions_.IsEmpty())
HostContentSettingsMapFactory::GetForProfile(profile_)->AddObserver(this);
@@ -404,11 +404,15 @@ void PermissionManager::OnContentSettingChanged(
}
if (primary_pattern.IsValid() &&
- !primary_pattern.Matches(subscription->requesting_origin))
+ !primary_pattern.Matches(
+ GURL(subscription->requesting_origin.Serialize()))) {
continue;
+ }
if (secondary_pattern.IsValid() &&
- !secondary_pattern.Matches(subscription->embedding_origin))
+ !secondary_pattern.Matches(
+ GURL(subscription->embedding_origin.Serialize()))) {
continue;
+ }
ContentSetting new_value =
PermissionContext::Get(profile_, subscription->permission)
« no previous file with comments | « chrome/browser/permissions/permission_manager.h ('k') | chrome/browser/permissions/permission_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698