Index: chrome/browser/extensions/extension_install_prompt.cc |
diff --git a/chrome/browser/extensions/extension_install_prompt.cc b/chrome/browser/extensions/extension_install_prompt.cc |
index 286bec570ca5c827dd56b2efd4a1b35211a36045..841f786642e3544484831899f9fabb544b5accdc 100644 |
--- a/chrome/browser/extensions/extension_install_prompt.cc |
+++ b/chrome/browser/extensions/extension_install_prompt.cc |
@@ -785,14 +785,44 @@ void ExtensionInstallPrompt::ShowConfirmation() { |
(!extension_ || |
!extensions::PermissionsData::ShouldSkipPermissionWarnings( |
extension_))) { |
- Manifest::Type extension_type = extension_ ? |
- extension_->GetType() : Manifest::TYPE_UNKNOWN; |
- prompt_.SetPermissions( |
+ DCHECK(extension_); |
+ |
+ std::vector<string16> all_messages; |
+ std::vector<string16> all_messages_details; |
+ |
+ // Messages from PermissionMessageProvider |
+ Manifest::Type extension_type = extension_->GetType(); |
+ std::vector<string16> permission_messages = |
extensions::PermissionMessageProvider::Get()-> |
- GetWarningMessages(permissions_, extension_type)); |
- prompt_.SetPermissionsDetails( |
+ GetWarningMessages(permissions_, extension_type); |
+ std::vector<string16> permission_messages_details = |
extensions::PermissionMessageProvider::Get()-> |
- GetWarningMessagesDetails(permissions_, extension_type)); |
+ GetWarningMessagesDetails(permissions_, extension_type); |
+ |
+ all_messages.insert(all_messages.end(), |
+ permission_messages.begin(), |
+ permission_messages.end()); |
+ all_messages_details.insert(all_messages_details.end(), |
+ permission_messages_details.begin(), |
+ permission_messages_details.end()); |
+ |
+ // Messages from extension's ManifestHandlers |
+ std::vector<string16> manifest_messages = |
+ extensions::ManifestHandler:: |
+ GetExtensionPermissionWarningMessages(extension_); |
+ std::vector<string16> manifest_messages_details = |
+ extensions::ManifestHandler:: |
+ GetExtensionPermissionWarningMessagesDetails(extension_); |
+ |
+ all_messages.insert(all_messages.end(), |
+ manifest_messages.begin(), |
+ manifest_messages.end()); |
+ all_messages_details.insert(all_messages_details.end(), |
+ manifest_messages_details.begin(), |
+ manifest_messages_details.end()); |
+ |
+ prompt_.SetPermissions(all_messages); |
+ prompt_.SetPermissionsDetails(all_messages_details); |
} |
switch (prompt_.type()) { |