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) { |