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

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

Issue 1011953003: Refactor Permissions related method out of ContentBrowserClient. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@permission_type_enum_class
Patch Set: fix cros Created 5 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 | « content/browser/media/cdm/browser_cdm_manager.cc ('k') | content/content_shell.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 67a7379d3f53e0aee553b009c1f9e8095fe39fbe..8ed8ffd932ff60cd97af6efdbee4ad045df16e32 100644
--- a/content/browser/permissions/permission_service_impl.cc
+++ b/content/browser/permissions/permission_service_impl.cc
@@ -4,7 +4,9 @@
#include "content/browser/permissions/permission_service_impl.h"
-#include "content/public/browser/content_browser_client.h"
+#include "base/bind.h"
+#include "content/public/browser/browser_context.h"
+#include "content/public/browser/permission_manager.h"
#include "content/public/browser/permission_type.h"
namespace content {
@@ -78,11 +80,18 @@ void PermissionServiceImpl::RequestPermission(
return;
}
+ BrowserContext* browser_context = context_->GetBrowserContext();
+ DCHECK(browser_context);
+ if (!browser_context->GetPermissionManager()) {
+ callback.Run(content::PERMISSION_STATUS_DENIED);
+ return;
+ }
+
PermissionType permission_type = PermissionNameToPermissionType(permission);
int request_id = pending_requests_.Add(
new PendingRequest(permission_type, GURL(origin), callback));
- GetContentClient()->browser()->RequestPermission(
+ browser_context->GetPermissionManager()->RequestPermission(
permission_type,
context_->web_contents(),
request_id,
@@ -105,10 +114,16 @@ void PermissionServiceImpl::OnRequestPermissionResponse(
void PermissionServiceImpl::CancelPendingRequests() {
DCHECK(context_->web_contents());
+ DCHECK(context_->GetBrowserContext());
+
+ PermissionManager* permission_manager =
+ context_->GetBrowserContext()->GetPermissionManager();
+ if (!permission_manager)
+ return;
for (RequestsMap::Iterator<PendingRequest> it(&pending_requests_);
!it.IsAtEnd(); it.Advance()) {
- GetContentClient()->browser()->CancelPermissionRequest(
+ permission_manager->CancelPermissionRequest(
it.GetCurrentValue()->permission,
context_->web_contents(),
it.GetCurrentKey(),
@@ -150,20 +165,28 @@ void PermissionServiceImpl::RevokePermission(
PermissionStatus PermissionServiceImpl::GetPermissionStatus(PermissionType type,
GURL origin) {
+ BrowserContext* browser_context = context_->GetBrowserContext();
+ DCHECK(browser_context);
+ if (!browser_context->GetPermissionManager())
+ return content::PERMISSION_STATUS_DENIED;
+
// If the embedding_origin is empty we'll use |origin| instead.
GURL embedding_origin = context_->GetEmbeddingOrigin();
- return GetContentClient()->browser()->GetPermissionStatus(
- type, context_->GetBrowserContext(), origin,
- embedding_origin.is_empty() ? origin : embedding_origin);
+ return browser_context->GetPermissionManager()->GetPermissionStatus(
+ type, origin, embedding_origin.is_empty() ? origin : embedding_origin);
}
void PermissionServiceImpl::ResetPermissionStatus(PermissionType type,
GURL 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();
- GetContentClient()->browser()->ResetPermission(
- type, context_->GetBrowserContext(), origin,
- embedding_origin.is_empty() ? origin : embedding_origin);
+ browser_context->GetPermissionManager()->ResetPermission(
+ type, origin, embedding_origin.is_empty() ? origin : embedding_origin);
}
} // namespace content
« no previous file with comments | « content/browser/media/cdm/browser_cdm_manager.cc ('k') | content/content_shell.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698