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 f0c415d5f79b70d1c8f4d86d16a28c3d99da7408..84c25188d1fe56c736be872997029d2423a5557a 100644 |
--- a/chrome/common/extensions/permissions/chrome_permission_message_provider.cc |
+++ b/chrome/common/extensions/permissions/chrome_permission_message_provider.cc |
@@ -73,6 +73,17 @@ PermissionMessages::iterator FindMessageByID(PermissionMessages& messages, |
return messages.end(); |
} |
+void SuppressMessage(PermissionMessages& messages, |
+ int suppressing_message, |
+ int suppressed_message) { |
+ PermissionMessages::iterator suppressed = |
+ FindMessageByID(messages, suppressed_message); |
+ if (suppressed != messages.end() && |
+ FindMessageByID(messages, suppressing_message) != messages.end()) { |
+ messages.erase(suppressed); |
+ } |
+} |
+ |
} // namespace |
ChromePermissionMessageProvider::ChromePermissionMessageProvider() { |
@@ -104,16 +115,14 @@ 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); |
- } |
- |
+ // Some warnings are more generic and/or powerful and superseed other |
+ // warnings. In that case, suppress the superseeded warning. |
+ SuppressMessage(messages, |
+ PermissionMessage::kBookmarks, |
+ PermissionMessage::kOverrideBookmarksUI); |
+ SuppressMessage(messages, |
+ PermissionMessage::kBrowsingHistory, |
+ PermissionMessage::kTabs); |
return messages; |
} |