Index: chrome/common/extensions/permissions/chrome_permission_message_provider.cc |
diff --git a/chrome/common/extensions/permissions/chrome_permission_message_provider.cc b/chrome/common/extensions/permissions/chrome_permission_message_provider.cc |
index d63faecf8636e00e84fadc353892a7855e3c591d..94cb2c4eeb9a8477ff03f0d55291c74c151e6029 100644 |
--- a/chrome/common/extensions/permissions/chrome_permission_message_provider.cc |
+++ b/chrome/common/extensions/permissions/chrome_permission_message_provider.cc |
@@ -15,6 +15,21 @@ |
namespace extensions { |
+namespace { |
+ |
+PermissionMessages::iterator FindMessageByID(PermissionMessages& messages, |
+ int id) { |
+ for (PermissionMessages::iterator it = messages.begin(); |
+ it != messages.end(); ++it) { |
+ if (it->id() == id) |
+ return it; |
+ } |
+ |
+ return messages.end(); |
+} |
+ |
+} // namespace |
+ |
ChromePermissionMessageProvider::ChromePermissionMessageProvider() { |
} |
@@ -44,6 +59,16 @@ PermissionMessages ChromePermissionMessageProvider::GetPermissionMessages( |
messages.insert(messages.end(), manifest_permission_msgs.begin(), |
manifest_permission_msgs.end()); |
+ // Special hack: bookmarks permission message supersedes override bookmarks UI |
+ // permission message if both permissions are specified. |
+ PermissionMessages::iterator override_bookmarks_ui = |
+ FindMessageByID(messages, PermissionMessage::kOverrideBookmarksUI); |
+ if (override_bookmarks_ui != messages.end() && |
+ FindMessageByID(messages, PermissionMessage::kBookmarks) != |
+ messages.end()) { |
+ messages.erase(override_bookmarks_ui); |
+ } |
+ |
return messages; |
} |