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

Unified Diff: android_webview/browser/aw_permission_manager.cc

Issue 1726323002: Have Permission{Manager,Service} use Origin. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Clarify and test Origin.empty_. Created 4 years, 10 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: android_webview/browser/aw_permission_manager.cc
diff --git a/android_webview/browser/aw_permission_manager.cc b/android_webview/browser/aw_permission_manager.cc
index 2f3153a40335cfbbcd38aac3d863e340dbb7f25a..1adbf9f883859c2f036d25e87c44c7847ec3690d 100644
--- a/android_webview/browser/aw_permission_manager.cc
+++ b/android_webview/browser/aw_permission_manager.cc
@@ -25,8 +25,8 @@ class LastRequestResultCache {
LastRequestResultCache() = default;
void SetResult(PermissionType permission,
- const GURL& requesting_origin,
- const GURL& embedding_origin,
+ const url::Origin& requesting_origin,
+ const url::Origin& embedding_origin,
PermissionStatus status) {
DCHECK(status == content::PermissionStatus::GRANTED ||
status == content::PermissionStatus::DENIED);
@@ -62,8 +62,8 @@ class LastRequestResultCache {
}
PermissionStatus GetResult(PermissionType permission,
- const GURL& requesting_origin,
- const GURL& embedding_origin) const {
+ const url::Origin& requesting_origin,
+ const url::Origin& embedding_origin) const {
// TODO(ddorwin): We should be denying empty origins at a higher level.
if (requesting_origin.is_empty() || embedding_origin.is_empty()) {
return content::PermissionStatus::ASK;
@@ -91,8 +91,8 @@ class LastRequestResultCache {
}
void ClearResult(PermissionType permission,
- const GURL& requesting_origin,
- const GURL& embedding_origin) {
+ const url::Origin& requesting_origin,
+ const url::Origin& embedding_origin) {
// TODO(ddorwin): We should be denying empty origins at a higher level.
if (requesting_origin.is_empty() || embedding_origin.is_empty()) {
return;
@@ -116,8 +116,8 @@ class LastRequestResultCache {
private:
// Returns a concatenation of the origins to be used as the index.
// Returns the empty string if either origin is invalid or empty.
- static std::string GetCacheKey(const GURL& requesting_origin,
- const GURL& embedding_origin) {
+ static std::string GetCacheKey(const url::Origin& requesting_origin,
+ const url::Origin& embedding_origin) {
const std::string& requesting = requesting_origin.spec();
const std::string& embedding = embedding_origin.spec();
if (requesting.empty() || embedding.empty())
@@ -134,23 +134,22 @@ class LastRequestResultCache {
struct AwPermissionManager::PendingRequest {
public:
PendingRequest(PermissionType permission,
- GURL requesting_origin,
- GURL embedding_origin,
+ url::Origin requesting_origin,
+ url::Origin embedding_origin,
content::RenderFrameHost* render_frame_host,
const base::Callback<void(PermissionStatus)>& callback)
- : permission(permission),
- requesting_origin(requesting_origin),
- embedding_origin(embedding_origin),
- render_process_id(render_frame_host->GetProcess()->GetID()),
- render_frame_id(render_frame_host->GetRoutingID()),
- callback(callback) {
- }
+ : permission(permission),
+ requesting_origin(requesting_origin),
+ embedding_origin(embedding_origin),
+ render_process_id(render_frame_host->GetProcess()->GetID()),
+ render_frame_id(render_frame_host->GetRoutingID()),
+ callback(callback) {}
~PendingRequest() = default;
PermissionType permission;
- GURL requesting_origin;
- GURL embedding_origin;
+ url::Origin requesting_origin;
+ url::Origin embedding_origin;
int render_process_id;
int render_frame_id;
base::Callback<void(PermissionStatus)> callback;
@@ -168,7 +167,7 @@ AwPermissionManager::~AwPermissionManager() {
int AwPermissionManager::RequestPermission(
PermissionType permission,
content::RenderFrameHost* render_frame_host,
- const GURL& requesting_origin,
+ const url::Origin& requesting_origin,
const base::Callback<void(PermissionStatus)>& callback) {
int render_process_id = render_frame_host->GetProcess()->GetID();
int render_frame_id = render_frame_host->GetRoutingID();
@@ -192,9 +191,10 @@ int AwPermissionManager::RequestPermission(
}
}
- const GURL& embedding_origin =
+ const url::Origin& embedding_origin =
content::WebContents::FromRenderFrameHost(render_frame_host)
- ->GetLastCommittedURL().GetOrigin();
+ ->GetLastCommittedURL()
+ .GetOrigin();
int request_id = kNoPendingOperation;
switch (permission) {
@@ -261,15 +261,16 @@ int AwPermissionManager::RequestPermission(
int AwPermissionManager::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) {
NOTIMPLEMENTED() << "RequestPermissions has not been implemented in WebView";
std::vector<PermissionStatus> result(permissions.size());
- const GURL& embedding_origin =
+ const url::Origin& embedding_origin =
content::WebContents::FromRenderFrameHost(render_frame_host)
- ->GetLastCommittedURL().GetOrigin();
+ ->GetLastCommittedURL()
+ .GetOrigin();
for (PermissionType type : permissions) {
result.push_back(GetPermissionStatus(
@@ -327,8 +328,8 @@ void AwPermissionManager::CancelPermissionRequest(int request_id) {
// The caller is canceling (presumably) the most recent request. Assuming the
// request did not complete, the user did not respond to the requset.
// Thus, assume we do not know the result.
- const GURL& embedding_origin = web_contents
- ->GetLastCommittedURL().GetOrigin();
+ const url::Origin& embedding_origin =
+ web_contents->GetLastCommittedURL().GetOrigin();
result_cache_->ClearResult(
pending_request->permission,
pending_request->requesting_origin,
@@ -377,15 +378,15 @@ void AwPermissionManager::CancelPermissionRequest(int request_id) {
}
void AwPermissionManager::ResetPermission(PermissionType permission,
- const GURL& requesting_origin,
- const GURL& embedding_origin) {
+ const url::Origin& requesting_origin,
+ const url::Origin& embedding_origin) {
result_cache_->ClearResult(permission, requesting_origin, embedding_origin);
}
PermissionStatus AwPermissionManager::GetPermissionStatus(
PermissionType permission,
- const GURL& requesting_origin,
- const GURL& embedding_origin) {
+ const url::Origin& requesting_origin,
+ const url::Origin& embedding_origin) {
// Method is called outside the Permissions API only for this permission.
if (permission == PermissionType::PROTECTED_MEDIA_IDENTIFIER) {
return result_cache_->GetResult(permission, requesting_origin,
@@ -399,14 +400,13 @@ PermissionStatus AwPermissionManager::GetPermissionStatus(
void AwPermissionManager::RegisterPermissionUsage(
PermissionType permission,
- const GURL& requesting_origin,
- const GURL& embedding_origin) {
-}
+ const url::Origin& requesting_origin,
+ const url::Origin& embedding_origin) {}
int AwPermissionManager::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) {
return kNoPendingOperation;
}

Powered by Google App Engine
This is Rietveld 408576698