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..cff5392b7853603e21315af53d6ec2ace7479104 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( |
| + requesting_origin, requests, permission_prompt)))); |
| } |
| bool GroupedPermissionInfoBarDelegate::ShouldShowPersistenceToggle() const { |
| @@ -63,6 +65,18 @@ base::string16 GroupedPermissionInfoBarDelegate::GetMessageText() const { |
| url_formatter::FormatUrlForSecurityDisplay(requesting_origin_)); |
| } |
| +bool GroupedPermissionInfoBarDelegate::Accept() { |
| + if (permission_prompt_) |
| + permission_prompt_->Accept(); |
| + return true; |
| +} |
| + |
| +bool GroupedPermissionInfoBarDelegate::Cancel() { |
| + if (permission_prompt_) |
| + permission_prompt_->Deny(); |
| + return true; |
| +} |
| + |
| bool GroupedPermissionInfoBarDelegate::GetAcceptState(size_t position) { |
| DCHECK_LT(position, requests_.size()); |
| return accept_states_[position]; |
| @@ -70,11 +84,13 @@ 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) {} |
|
dominickn
2016/10/26 05:01:45
Is it ever valid to create a GroupedPermissionInfo
lshang
2016/10/26 05:43:23
Done. DCHECK added. The delegate should not be cre
|
| infobars::InfoBarDelegate::InfoBarIdentifier |
| GroupedPermissionInfoBarDelegate::GetIdentifier() const { |