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 1dd289a05db7481a6862dfbedf60c5c35e0caf87..1269e54224b9c45e5f93d7e6339e1cb51fa599fe 100644 |
| --- a/chrome/common/extensions/permissions/chrome_permission_message_provider.cc |
| +++ b/chrome/common/extensions/permissions/chrome_permission_message_provider.cc |
| @@ -44,6 +44,12 @@ void SuppressMessage(T& messages, |
| } |
| } |
| +template <typename T> |
| +bool ContainBothMessages(T& messages, int first_message, int second_message) { |
|
meacer
2014/07/07 21:57:32
Does this actually need to be templatized? Looks l
meacer
2014/07/07 21:57:32
Also, ContainBothMessages -> ContainsBothMessages
mhm
2014/07/07 22:33:09
No it doesn't. I just followed the SuppressMessage
mhm
2014/07/07 22:33:09
Done.
|
| + return FindMessageByID(messages, first_message) != messages.end() && |
| + FindMessageByID(messages, second_message) != messages.end(); |
| +} |
| + |
| } // namespace |
| ChromePermissionMessageProvider::ChromePermissionMessageProvider() { |
| @@ -111,76 +117,102 @@ std::vector<base::string16> ChromePermissionMessageProvider::GetWarningMessages( |
| PermissionMessages messages = |
| GetPermissionMessages(permissions, extension_type); |
| - bool audio_capture = false; |
| - bool video_capture = false; |
| - bool media_galleries_read = false; |
| - bool media_galleries_copy_to = false; |
| - bool media_galleries_delete = false; |
| - bool accessibility_read = false; |
| - bool accessibility_write = false; |
| - for (PermissionMessages::const_iterator i = messages.begin(); |
| - i != messages.end(); ++i) { |
| - switch (i->id()) { |
| - case PermissionMessage::kAudioCapture: |
| - audio_capture = true; |
| - break; |
| - case PermissionMessage::kVideoCapture: |
| - video_capture = true; |
| - break; |
| - case PermissionMessage::kMediaGalleriesAllGalleriesRead: |
| - media_galleries_read = true; |
| - break; |
| - case PermissionMessage::kMediaGalleriesAllGalleriesCopyTo: |
| - media_galleries_copy_to = true; |
| - break; |
| - case PermissionMessage::kMediaGalleriesAllGalleriesDelete: |
| - media_galleries_delete = true; |
| - break; |
| - case PermissionMessage::kAccessibilityFeaturesRead: |
| - accessibility_read = true; |
| - break; |
| - case PermissionMessage::kAccessibilityFeaturesModify: |
| - accessibility_write = true; |
| - break; |
| - default: |
| - break; |
| - } |
| - } |
| + SuppressMessage(messages, |
| + PermissionMessage::kBluetooth, |
| + PermissionMessage::kBluetoothDevices); |
| for (PermissionMessages::const_iterator i = messages.begin(); |
| i != messages.end(); ++i) { |
| int id = i->id(); |
| - if (audio_capture && video_capture) { |
| - if (id == PermissionMessage::kAudioCapture) { |
| - message_strings.push_back(l10n_util::GetStringUTF16( |
| - IDS_EXTENSION_PROMPT_WARNING_AUDIO_AND_VIDEO_CAPTURE)); |
| + if (id == PermissionMessage::kUsb || id == PermissionMessage::kBluetooth || |
| + id == PermissionMessage::kSerial) { |
| + // Access to USB, Bluetooth and Serial |
| + if (ContainBothMessages(messages, |
| + PermissionMessage::kUsb, |
| + PermissionMessage::kBluetooth) && |
| + ContainBothMessages( |
| + messages, PermissionMessage::kUsb, PermissionMessage::kSerial)) { |
|
meacer
2014/07/07 21:57:32
nit: I think it'll look better if you format this
mhm
2014/07/07 22:33:09
This was done with auto formatting "git cl format"
|
| + if (id == PermissionMessage::kUsb) { |
| + message_strings.push_back(l10n_util::GetStringUTF16( |
| + IDS_EXTENSION_PROMPT_WARNING_ALL_DEVICES)); |
| + } |
| continue; |
| - } else if (id == PermissionMessage::kVideoCapture) { |
| - // The combined message will be pushed above. |
| + } |
| + // Access to USB and Bluetooth |
| + if (ContainBothMessages(messages, |
| + PermissionMessage::kUsb, |
| + PermissionMessage::kBluetooth)) { |
| + if (id == PermissionMessage::kUsb) { |
|
meacer
2014/07/07 21:57:31
You might want to test this logic with multiple "u
mhm
2014/07/07 22:33:09
Done.
|
| + message_strings.push_back(l10n_util::GetStringUTF16( |
| + IDS_EXTENSION_PROMPT_WARNING_USB_BLUETOOTH)); |
| + } |
| + continue; |
| + } |
| + // Access to USB and Serial |
| + if (ContainBothMessages( |
| + messages, PermissionMessage::kUsb, PermissionMessage::kSerial)) { |
| + if (id == PermissionMessage::kUsb) { |
| + message_strings.push_back(l10n_util::GetStringUTF16( |
| + IDS_EXTENSION_PROMPT_WARNING_USB_SERIAL)); |
| + } |
| + continue; |
| + } |
| + // Access to Bluetooth and Serial |
| + if (ContainBothMessages(messages, |
| + PermissionMessage::kBluetooth, |
| + PermissionMessage::kSerial)) { |
| + if (id == PermissionMessage::kBluetooth) { |
| + message_strings.push_back(l10n_util::GetStringUTF16( |
| + IDS_EXTENSION_PROMPT_WARNING_BLUETOOTH_SERIAL)); |
| + } |
| continue; |
| } |
| } |
| - if (accessibility_read && accessibility_write) { |
| - if (id == PermissionMessage::kAccessibilityFeaturesRead) { |
| - message_strings.push_back(l10n_util::GetStringUTF16( |
| - IDS_EXTENSION_PROMPT_WARNING_ACCESSIBILITY_FEATURES_READ_MODIFY)); |
| + if (id == PermissionMessage::kAccessibilityFeaturesRead || |
| + id == PermissionMessage::kAccessibilityFeaturesModify) { |
| + if (ContainBothMessages( |
| + messages, |
| + PermissionMessage::kAccessibilityFeaturesRead, |
| + PermissionMessage::kAccessibilityFeaturesModify)) { |
| + if (id == PermissionMessage::kAccessibilityFeaturesRead) { |
| + message_strings.push_back(l10n_util::GetStringUTF16( |
| + IDS_EXTENSION_PROMPT_WARNING_ACCESSIBILITY_FEATURES_READ_MODIFY)); |
| + } |
| continue; |
| - } else if (id == PermissionMessage::kAccessibilityFeaturesModify) { |
| - // The combined message will be pushed above. |
| + } |
| + } |
| + if (id == PermissionMessage::kAudioCapture || |
| + id == PermissionMessage::kVideoCapture) { |
| + if (ContainBothMessages(messages, |
| + PermissionMessage::kAudioCapture, |
| + PermissionMessage::kVideoCapture)) { |
| + if (id == PermissionMessage::kAudioCapture) { |
| + message_strings.push_back(l10n_util::GetStringUTF16( |
| + IDS_EXTENSION_PROMPT_WARNING_AUDIO_AND_VIDEO_CAPTURE)); |
| + } |
| continue; |
| } |
| } |
| - if (media_galleries_read && |
| - (media_galleries_copy_to || media_galleries_delete)) { |
| - if (id == PermissionMessage::kMediaGalleriesAllGalleriesRead) { |
| - int m_id = media_galleries_copy_to ? |
| - IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_WRITE : |
| - IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_DELETE; |
| - message_strings.push_back(l10n_util::GetStringUTF16(m_id)); |
| + if (id == PermissionMessage::kMediaGalleriesAllGalleriesRead || |
| + id == PermissionMessage::kMediaGalleriesAllGalleriesCopyTo || |
| + id == PermissionMessage::kMediaGalleriesAllGalleriesDelete) { |
| + if (ContainBothMessages( |
| + messages, |
| + PermissionMessage::kMediaGalleriesAllGalleriesRead, |
| + PermissionMessage::kMediaGalleriesAllGalleriesCopyTo)) { |
| + if (id == PermissionMessage::kMediaGalleriesAllGalleriesRead) { |
| + message_strings.push_back(l10n_util::GetStringUTF16( |
| + IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_WRITE)); |
| + } |
| continue; |
| - } else if (id == PermissionMessage::kMediaGalleriesAllGalleriesCopyTo || |
| - id == PermissionMessage::kMediaGalleriesAllGalleriesDelete) { |
| - // The combined message will be pushed above. |
| + } else if (ContainBothMessages( |
| + messages, |
| + PermissionMessage::kMediaGalleriesAllGalleriesRead, |
| + PermissionMessage::kMediaGalleriesAllGalleriesDelete)) { |
| + if (id == PermissionMessage::kMediaGalleriesAllGalleriesRead) { |
| + message_strings.push_back(l10n_util::GetStringUTF16( |
| + IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_DELETE)); |
| + } |
| continue; |
| } |
| } |