Chromium Code Reviews| Index: chrome/browser/permissions/grouped_permission_infobar_delegate_android.cc |
| diff --git a/chrome/browser/permissions/grouped_permission_infobar_delegate_android.cc b/chrome/browser/permissions/grouped_permission_infobar_delegate_android.cc |
| index af595628b7095ecb5e2dca3fc0b71410f4cf5687..80c5dce29978a6d86ac5c6ae99b132afa10d7302 100644 |
| --- a/chrome/browser/permissions/grouped_permission_infobar_delegate_android.cc |
| +++ b/chrome/browser/permissions/grouped_permission_infobar_delegate_android.cc |
| @@ -7,6 +7,7 @@ |
| #include "base/memory/ptr_util.h" |
| #include "chrome/browser/android/android_theme_resources.h" |
| #include "chrome/browser/infobars/infobar_service.h" |
| +#include "chrome/browser/permissions/permission_prompt_android.h" |
| #include "chrome/browser/permissions/permission_request.h" |
| #include "chrome/browser/permissions/permission_util.h" |
| #include "chrome/browser/ui/android/infobars/grouped_permission_infobar.h" |
| @@ -21,12 +22,13 @@ GroupedPermissionInfoBarDelegate::~GroupedPermissionInfoBarDelegate() {} |
| // static |
| infobars::InfoBar* GroupedPermissionInfoBarDelegate::Create( |
| + PermissionPromptAndroid* permission_prompt, |
| InfoBarService* infobar_service, |
| const GURL& requesting_origin, |
| const std::vector<PermissionRequest*>& requests) { |
| - return infobar_service->AddInfoBar( |
| - base::MakeUnique<GroupedPermissionInfoBar>(base::WrapUnique( |
| - new GroupedPermissionInfoBarDelegate(requesting_origin, requests)))); |
| + return infobar_service->AddInfoBar(base::MakeUnique<GroupedPermissionInfoBar>( |
| + base::WrapUnique(new GroupedPermissionInfoBarDelegate( |
|
raymes
2016/10/27 01:32:33
nit: can this be MakeUnique too?
lshang
2016/10/28 03:18:48
No, because the constructor of GroupedPermissionIn
|
| + requesting_origin, requests, permission_prompt)))); |
| } |
| bool GroupedPermissionInfoBarDelegate::ShouldShowPersistenceToggle() const { |
| @@ -63,6 +65,16 @@ base::string16 GroupedPermissionInfoBarDelegate::GetMessageText() const { |
| url_formatter::FormatUrlForSecurityDisplay(requesting_origin_)); |
| } |
| +bool GroupedPermissionInfoBarDelegate::Accept() { |
| + permission_prompt_->Accept(); |
| + return true; |
| +} |
| + |
| +bool GroupedPermissionInfoBarDelegate::Cancel() { |
| + permission_prompt_->Deny(); |
| + return true; |
| +} |
| + |
| bool GroupedPermissionInfoBarDelegate::GetAcceptState(size_t position) { |
| DCHECK_LT(position, requests_.size()); |
| return accept_states_[position]; |
| @@ -70,11 +82,15 @@ bool GroupedPermissionInfoBarDelegate::GetAcceptState(size_t position) { |
| GroupedPermissionInfoBarDelegate::GroupedPermissionInfoBarDelegate( |
| const GURL& requesting_origin, |
| - const std::vector<PermissionRequest*>& requests) |
| + const std::vector<PermissionRequest*>& requests, |
| + PermissionPromptAndroid* permission_prompt) |
| : requesting_origin_(requesting_origin), |
| requests_(requests), |
| accept_states_(requests_.size(), true), |
| - persist_(true) {} |
| + persist_(true), |
| + permission_prompt_(permission_prompt) { |
| + DCHECK(permission_prompt); |
| +} |
| infobars::InfoBarDelegate::InfoBarIdentifier |
| GroupedPermissionInfoBarDelegate::GetIdentifier() const { |