Index: chrome/browser/permissions/permission_context_base.cc |
diff --git a/chrome/browser/permissions/permission_context_base.cc b/chrome/browser/permissions/permission_context_base.cc |
index 761b489994bc1507925059216dd6746781d0402b..503ca015e529e80687883123c2e9f093a4a0029f 100644 |
--- a/chrome/browser/permissions/permission_context_base.cc |
+++ b/chrome/browser/permissions/permission_context_base.cc |
@@ -18,7 +18,7 @@ |
#include "content/public/common/origin_util.h" |
#if defined(OS_ANDROID) |
-#include "chrome/browser/permissions/permission_queue_controller.h" |
+#include "chrome/browser/permissions/permission_infobar_manager.h" |
#else |
#include "chrome/browser/permissions/permission_bubble_request_impl.h" |
#include "chrome/browser/ui/website_settings/permission_bubble_manager.h" |
@@ -30,10 +30,6 @@ PermissionContextBase::PermissionContextBase( |
: profile_(profile), |
permission_type_(permission_type), |
weak_factory_(this) { |
-#if defined(OS_ANDROID) |
- permission_queue_controller_.reset( |
- new PermissionQueueController(profile_, permission_type_)); |
-#endif |
} |
PermissionContextBase::~PermissionContextBase() { |
@@ -85,11 +81,17 @@ void PermissionContextBase::CancelPermissionRequest( |
const PermissionRequestID& id) { |
DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
+ if (!web_contents) |
+ return; |
+ |
#if defined(OS_ANDROID) |
- GetQueueController()->CancelInfoBarRequest(id); |
+ if (PermissionInfoBarManager::FromWebContents(web_contents)) { |
+ PermissionInfoBarManager::FromWebContents(web_contents)-> |
+ CancelRequest(id); |
+ } |
#else |
PermissionBubbleRequest* cancelling = pending_bubbles_.get(id.ToString()); |
- if (cancelling != NULL && web_contents != NULL && |
+ if (cancelling != NULL && |
PermissionBubbleManager::FromWebContents(web_contents) != NULL) { |
PermissionBubbleManager::FromWebContents(web_contents) |
->CancelRequest(cancelling); |
@@ -167,14 +169,15 @@ void PermissionContextBase::DecidePermission( |
DCHECK(inserted) << "Duplicate id " << id.ToString(); |
bubble_manager->AddRequest(request); |
#else |
- GetQueueController()->CreateInfoBarRequest( |
- id, requesting_origin, embedding_origin, |
+ PermissionInfoBarManager* infobar_manager = |
+ PermissionInfoBarManager::FromWebContents(web_contents); |
+ DCHECK(infobar_manager); |
+ infobar_manager->CreateRequest( |
+ permission_type_, id, |
+ requesting_origin, embedding_origin, |
base::Bind(&PermissionContextBase::PermissionDecided, |
weak_factory_.GetWeakPtr(), id, requesting_origin, |
- embedding_origin, callback, |
- // the queue controller takes care of persisting the |
- // permission |
- false)); |
+ embedding_origin, callback)); |
#endif |
} |
@@ -185,9 +188,6 @@ void PermissionContextBase::PermissionDecided( |
const BrowserPermissionCallback& callback, |
bool persist, |
ContentSetting content_setting) { |
-#if !defined(OS_ANDROID) |
- // Infobar persistence and its related UMA is tracked on the infobar |
- // controller directly. |
if (persist) { |
DCHECK(content_setting == CONTENT_SETTING_ALLOW || |
content_setting == CONTENT_SETTING_BLOCK); |
@@ -202,18 +202,11 @@ void PermissionContextBase::PermissionDecided( |
PermissionContextUmaUtil::PermissionDismissed(permission_type_, |
requesting_origin); |
} |
-#endif |
NotifyPermissionSet(id, requesting_origin, embedding_origin, callback, |
persist, content_setting); |
} |
-#if defined(OS_ANDROID) |
-PermissionQueueController* PermissionContextBase::GetQueueController() { |
- return permission_queue_controller_.get(); |
-} |
-#endif |
- |
Profile* PermissionContextBase::profile() const { |
return profile_; |
} |