Chromium Code Reviews| 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 09747e13bd128d2df5072d8715a747d7e10eb8de..fbd4cf42f7a94e801c283e55e752a6d4b1b17cab 100644 |
| --- a/chrome/browser/permissions/permission_context_base.cc |
| +++ b/chrome/browser/permissions/permission_context_base.cc |
| @@ -8,7 +8,7 @@ |
| #include "base/prefs/pref_service.h" |
| #include "chrome/browser/permissions/permission_bubble_request_impl.h" |
| #include "chrome/browser/permissions/permission_context_uma_util.h" |
| -#include "chrome/browser/permissions/permission_queue_controller.h" |
| +#include "chrome/browser/permissions/permission_infobar_manager.h" |
| #include "chrome/browser/permissions/permission_request_id.h" |
| #include "chrome/browser/profiles/profile.h" |
| #include "chrome/browser/ui/website_settings/permission_bubble_manager.h" |
| @@ -25,8 +25,6 @@ PermissionContextBase::PermissionContextBase( |
| : profile_(profile), |
| permission_type_(permission_type), |
| weak_factory_(this) { |
| - permission_queue_controller_.reset( |
| - new PermissionQueueController(profile_, permission_type_)); |
| } |
| PermissionContextBase::~PermissionContextBase() { |
| @@ -75,10 +73,13 @@ void PermissionContextBase::CancelPermissionRequest( |
| const PermissionRequestID& id) { |
| DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
| + if (web_contents == nullptr) |
|
mlamouri (slow - plz ping)
2015/09/16 16:21:00
style: this isn't Java :) you can do if (!web_cont
Lalit Maganti
2015/09/16 17:28:37
Yeah my life has too much Java :P
Done.
|
| + return; |
| + |
| if (PermissionBubbleManager::Enabled()) { |
| 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); |
| @@ -86,7 +87,10 @@ void PermissionContextBase::CancelPermissionRequest( |
| return; |
| } |
| - GetQueueController()->CancelInfoBarRequest(id); |
| + if (PermissionInfoBarManager::FromWebContents(web_contents) != NULL) { |
| + PermissionInfoBarManager::FromWebContents(web_contents)-> |
| + CancelInfoBarRequest(id); |
| + } |
| } |
| void PermissionContextBase::DecidePermission( |
| @@ -158,16 +162,18 @@ void PermissionContextBase::DecidePermission( |
| return; |
| } |
| - // TODO(gbillock): Delete this and the infobar delegate when |
| - // we're using only bubbles. crbug.com/337458 |
| - GetQueueController()->CreateInfoBarRequest( |
| - id, requesting_origin, embedding_origin, |
| + PermissionInfoBarManager* infobar_manager = |
| + PermissionInfoBarManager::FromWebContents(web_contents); |
| + DCHECK(infobar_manager); |
| + infobar_manager->CreateInfoBarRequest( |
| + 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), |
| + base::Bind(&PermissionContextBase::NotifyPermissionSet, |
| + weak_factory_.GetWeakPtr(), id, requesting_origin, |
| + embedding_origin, callback)); |
| } |
| void PermissionContextBase::PermissionDecided( |
| @@ -177,33 +183,25 @@ void PermissionContextBase::PermissionDecided( |
| const BrowserPermissionCallback& callback, |
| bool persist, |
| ContentSetting content_setting) { |
| - // Infobar persistance and its related UMA is tracked on the infobar |
| - // controller directly. |
| - if (PermissionBubbleManager::Enabled()) { |
| - if (persist) { |
| - DCHECK(content_setting == CONTENT_SETTING_ALLOW || |
| - content_setting == CONTENT_SETTING_BLOCK); |
| - if (content_setting == CONTENT_SETTING_ALLOW) |
| - PermissionContextUmaUtil::PermissionGranted(permission_type_, |
| - requesting_origin); |
| - else |
| - PermissionContextUmaUtil::PermissionDenied(permission_type_, |
| - requesting_origin); |
| - } else { |
| - DCHECK_EQ(content_setting, CONTENT_SETTING_DEFAULT); |
| - PermissionContextUmaUtil::PermissionDismissed(permission_type_, |
| - requesting_origin); |
| - } |
| + if (persist) { |
| + DCHECK(content_setting == CONTENT_SETTING_ALLOW || |
| + content_setting == CONTENT_SETTING_BLOCK); |
| + if (content_setting == CONTENT_SETTING_ALLOW) |
| + PermissionContextUmaUtil::PermissionGranted(permission_type_, |
| + requesting_origin); |
| + else |
| + PermissionContextUmaUtil::PermissionDenied(permission_type_, |
| + requesting_origin); |
| + } else { |
| + DCHECK_EQ(content_setting, CONTENT_SETTING_DEFAULT); |
| + PermissionContextUmaUtil::PermissionDismissed(permission_type_, |
| + requesting_origin); |
| } |
| NotifyPermissionSet(id, requesting_origin, embedding_origin, callback, |
| persist, content_setting); |
| } |
| -PermissionQueueController* PermissionContextBase::GetQueueController() { |
| - return permission_queue_controller_.get(); |
| -} |
| - |
| Profile* PermissionContextBase::profile() const { |
| return profile_; |
| } |