Chromium Code Reviews| 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 3e8c56f21d48f4cff1d1d97d32b818309ccf2bf8..3546387e8a491343cc3ce654ce62005fe28be22d 100644 |
| --- a/chrome/common/extensions/permissions/chrome_permission_message_provider.cc |
| +++ b/chrome/common/extensions/permissions/chrome_permission_message_provider.cc |
| @@ -80,6 +80,29 @@ ChromePermissionMessageProvider::~ChromePermissionMessageProvider() { |
| PermissionMessages ChromePermissionMessageProvider::GetPermissionMessages( |
| const PermissionSet* permissions, |
| Manifest::Type extension_type) const { |
| + // Some warnings are more generic and/or powerful and superseed other |
| + // warnings. In that case, the first message suppresses the second one. |
| + const std::multimap<PermissionMessage::ID, |
| + PermissionMessage::ID> kSuppressList = { |
| + {PermissionMessage::kBluetooth, PermissionMessage::kBluetoothDevices}, |
| + {PermissionMessage::kBookmarks, PermissionMessage::kOverrideBookmarksUI}, |
| + // History already allows reading favicons. |
| + {PermissionMessage::kBrowsingHistory, PermissionMessage::kFavicon}, |
| + // Warning for history permission already covers warning for tabs. |
| + {PermissionMessage::kBrowsingHistory, PermissionMessage::kTabs}, |
| + // Warning for full access already covers warning for |
| + // DeclarativeWebRequest. |
|
not at google - send to devlin
2014/07/18 21:36:33
comment is in the wrong place
mhm
2014/07/18 21:49:40
Done.
|
| + // A special hack: If kFileSystemWriteDirectory would be displayed, hide |
| + // kFileSystemDirectory as the write directory message implies it. |
|
not at google - send to devlin
2014/07/18 21:36:33
comment could be re-worded to be more consistent w
mhm
2014/07/18 21:49:40
Done.
|
| + // TODO(sammc): Remove this. See http://crbug.com/284849. |
| + {PermissionMessage::kFileSystemWriteDirectory, |
| + PermissionMessage::kFileSystemDirectory}, |
| + {PermissionMessage::kHostsAll, PermissionMessage::kDeclarativeWebRequest}, |
| + // Warning for full access permission already covers warning for tabs |
| + {PermissionMessage::kHostsAll, PermissionMessage::kTabs}, |
| + // Tabs already allows reading favicons. |
| + {PermissionMessage::kTabs, PermissionMessage::kFavicon}}; |
| + |
| PermissionMessages messages; |
| if (permissions->HasEffectiveFullAccess()) { |
| @@ -99,32 +122,13 @@ PermissionMessages ChromePermissionMessageProvider::GetPermissionMessages( |
| messages.insert(messages.end(), manifest_permission_msgs.begin(), |
| manifest_permission_msgs.end()); |
| - // 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); |
| - // Both tabs and history already allow reading favicons. |
| - SuppressMessage(messages, |
| - PermissionMessage::kTabs, |
| - PermissionMessage::kFavicon); |
| - SuppressMessage(messages, |
| - PermissionMessage::kBrowsingHistory, |
| - PermissionMessage::kFavicon); |
| - // Warning for history permission already covers warning for tabs permission. |
| - SuppressMessage(messages, |
| - PermissionMessage::kBrowsingHistory, |
| - PermissionMessage::kTabs); |
| - // Warning for full access permission already covers warning for tabs |
| - // permission. |
| - SuppressMessage(messages, |
| - PermissionMessage::kHostsAll, |
| - PermissionMessage::kTabs); |
| - // Warning for full access already covers warning for DeclarativeWebRequest |
| - // permission. |
| - SuppressMessage(messages, |
| - PermissionMessage::kHostsAll, |
| - PermissionMessage::kDeclarativeWebRequest); |
| + for (std::multimap<PermissionMessage::ID, |
| + PermissionMessage::ID>::const_iterator it = |
| + kSuppressList.begin(); |
| + it != kSuppressList.end(); |
| + it++) { |
| + SuppressMessage(messages, it->first, it->second); |
| + } |
| return messages; |
| } |
| @@ -136,10 +140,6 @@ std::vector<base::string16> ChromePermissionMessageProvider::GetWarningMessages( |
| PermissionMessages messages = |
| GetPermissionMessages(permissions, extension_type); |
| - SuppressMessage(messages, |
| - PermissionMessage::kBluetooth, |
| - PermissionMessage::kBluetoothDevices); |
| - |
| for (PermissionMessages::const_iterator i = messages.begin(); |
| i != messages.end(); ++i) { |
| int id = i->id(); |
| @@ -316,12 +316,6 @@ ChromePermissionMessageProvider::GetAPIPermissionMessages( |
| } |
| } |
| - // A special hack: If kFileSystemWriteDirectory would be displayed, hide |
| - // kFileSystemDirectory as the write directory message implies it. |
| - // TODO(sammc): Remove this. See http://crbug.com/284849. |
| - SuppressMessage(messages, |
| - PermissionMessage::kFileSystemWriteDirectory, |
| - PermissionMessage::kFileSystemDirectory); |
| // A special hack: The warning message for declarativeWebRequest |
| // permissions speaks about blocking parts of pages, which is a |
| // subset of what the "<all_urls>" access allows. Therefore we |