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 |