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

Unified Diff: chrome/browser/permissions/permission_manager.cc

Issue 2723983004: Add PermissionManager::GetPermissionStatusForFrame function (Closed)
Patch Set: Add PermissionManager::GetPermissionStatusForFrame function Created 3 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
« no previous file with comments | « chrome/browser/permissions/permission_manager.h ('k') | chrome/browser/plugins/flash_permission_context.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/permissions/permission_manager.cc
diff --git a/chrome/browser/permissions/permission_manager.cc b/chrome/browser/permissions/permission_manager.cc
index dc2d554cc7c4e1c4125c4f9be46452fba9f5d7ab..3554494de2ce3bcee2d67350928704962bec582b 100644
--- a/chrome/browser/permissions/permission_manager.cc
+++ b/chrome/browser/permissions/permission_manager.cc
@@ -334,17 +334,19 @@ PermissionResult PermissionManager::GetPermissionStatus(
ContentSettingsType permission,
const GURL& requesting_origin,
const GURL& embedding_origin) {
- if (IsConstantPermission(permission)) {
- return PermissionResult(GetContentSettingForConstantPermission(permission),
- PermissionStatusSource::UNSPECIFIED);
- }
- PermissionContextBase* context = GetPermissionContext(permission);
- PermissionResult result = context->GetPermissionStatus(
- requesting_origin.GetOrigin(), embedding_origin.GetOrigin());
- DCHECK(result.content_setting == CONTENT_SETTING_ALLOW ||
- result.content_setting == CONTENT_SETTING_ASK ||
- result.content_setting == CONTENT_SETTING_BLOCK);
- return result;
+ return GetPermissionStatusHelper(permission, nullptr /* render_frame_host */,
+ requesting_origin, embedding_origin);
+}
+
+PermissionResult PermissionManager::GetPermissionStatusForFrame(
+ ContentSettingsType permission,
+ content::RenderFrameHost* render_frame_host) {
+ content::WebContents* web_contents =
+ content::WebContents::FromRenderFrameHost(render_frame_host);
+ GURL embedding_origin = web_contents->GetLastCommittedURL().GetOrigin();
+ return GetPermissionStatusHelper(
+ permission, render_frame_host,
+ render_frame_host->GetLastCommittedURL().GetOrigin(), embedding_origin);
}
int PermissionManager::RequestPermission(
@@ -524,3 +526,22 @@ void PermissionManager::OnContentSettingChanged(
for (const auto& callback : callbacks)
callback.Run();
}
+
+PermissionResult PermissionManager::GetPermissionStatusHelper(
+ ContentSettingsType permission,
+ content::RenderFrameHost* render_frame_host,
+ const GURL& requesting_origin,
+ const GURL& embedding_origin) {
+ if (IsConstantPermission(permission)) {
+ return PermissionResult(GetContentSettingForConstantPermission(permission),
+ PermissionStatusSource::UNSPECIFIED);
+ }
+ PermissionContextBase* context = GetPermissionContext(permission);
+ PermissionResult result = context->GetPermissionStatus(
+ nullptr /* render_frame_host */, requesting_origin.GetOrigin(),
+ embedding_origin.GetOrigin());
+ DCHECK(result.content_setting == CONTENT_SETTING_ALLOW ||
+ result.content_setting == CONTENT_SETTING_ASK ||
+ result.content_setting == CONTENT_SETTING_BLOCK);
+ return result;
+}
« no previous file with comments | « chrome/browser/permissions/permission_manager.h ('k') | chrome/browser/plugins/flash_permission_context.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698