| Index: chrome/browser/permissions/permission_infobar_request.cc
|
| diff --git a/chrome/browser/permissions/permission_infobar_request.cc b/chrome/browser/permissions/permission_infobar_request.cc
|
| index 46ca8de3603e74c58407f31ac9f75a20af50706e..799a964b57e8363f56251e5c1e38a34caba3e8c1 100644
|
| --- a/chrome/browser/permissions/permission_infobar_request.cc
|
| +++ b/chrome/browser/permissions/permission_infobar_request.cc
|
| @@ -5,6 +5,7 @@
|
| #include "chrome/browser/permissions/permission_infobar_request.h"
|
|
|
| #include "base/prefs/pref_service.h"
|
| +#include "chrome/browser/android/permissions/permission_group_infobar_delegate_android.h"
|
| #include "chrome/browser/content_settings/host_content_settings_map_factory.h"
|
| #include "chrome/browser/geolocation/geolocation_infobar_delegate.h"
|
| #include "chrome/browser/infobars/infobar_service.h"
|
| @@ -12,6 +13,7 @@
|
| #include "chrome/browser/notifications/notification_permission_infobar_delegate.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/storage/durable_storage_permission_infobar_delegate.h"
|
| +#include "chrome/browser/ui/android/infobars/permission_group_infobar_android.h"
|
| #include "chrome/common/pref_names.h"
|
| #include "components/content_settings/core/browser/host_content_settings_map.h"
|
| #include "components/infobars/core/infobar.h"
|
| @@ -77,12 +79,21 @@ bool PermissionInfoBarRequest::ShowInfobar(
|
| return true;
|
| }
|
|
|
| - // TODO(lalitm) once multiple permissions is ready to land, this
|
| - // should be implemented properly.
|
| - NOTIMPLEMENTED();
|
| - for (size_t i = 0; i < requests_.size(); ++i)
|
| - requests_[i].non_user_callback().Run(false, CONTENT_SETTING_DEFAULT);
|
| - return false;
|
| + std::vector<int> permissions;
|
| + permissions.reserve(requests_.size());
|
| + for (const auto& request : requests_)
|
| + permissions.push_back(request.type());
|
| +
|
| + scoped_ptr<PermissionGroupInfoBarDelegateAndroid> delegate(
|
| + new PermissionGroupInfoBarDelegateAndroid(
|
| + requesting_frame_,
|
| + display_languages,
|
| + base::Bind(&PermissionInfoBarRequest::OnPermissionsSet,
|
| + weak_factory_.GetWeakPtr())));
|
| + infobar_ = infobar_service->AddInfoBar(make_scoped_ptr(
|
| + new PermissionGroupInfoBarAndroid(delegate.Pass(), permissions)));
|
| + DCHECK(infobar_);
|
| + return infobar_;
|
| }
|
|
|
| void PermissionInfoBarRequest::Cancel(bool allowed) {
|
|
|