Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3489)

Unified Diff: chrome/common/extensions/permissions/chrome_permission_message_provider.cc

Issue 336313009: Showing devices transport method in one device (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Cleaned the code and added tests Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..85975940fc1e50073f35458a87d49e09633139a9 100644
--- a/chrome/common/extensions/permissions/chrome_permission_message_provider.cc
+++ b/chrome/common/extensions/permissions/chrome_permission_message_provider.cc
@@ -44,6 +44,16 @@ void SuppressMessage(T& messages,
}
}
+template <typename T>
+bool CombineMessage(T& messages, int first_message, int second_message) {
meacer 2014/07/03 01:04:11 This needs a better name. Maybe ContainsMessages?
mhm 2014/07/07 21:19:38 Done.
+ typename T::iterator first = FindMessageByID(messages, first_message);
+ typename T::iterator second = FindMessageByID(messages, second_message);
+ if (first != messages.end() && second != messages.end()) {
meacer 2014/07/03 01:04:11 Cleaner: return first != messages.end() && second
mhm 2014/07/07 21:19:38 Done.
+ return true;
+ }
+ return false;
+}
+
} // namespace
ChromePermissionMessageProvider::ChromePermissionMessageProvider() {
@@ -111,78 +121,104 @@ 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;
- }
+ // Warning for Hid always include warning for USB and/or Bluetooth
+ // access permission.
+ SuppressMessage(messages,
+ PermissionMessage::kHid,
+ PermissionMessage::kUsb);
+ SuppressMessage(messages,
+ PermissionMessage::kBluetooth,
+ PermissionMessage::kBluetoothDevices);
+ SuppressMessage(messages,
+ PermissionMessage::kHid,
+ PermissionMessage::kBluetooth);
+
+ // Replace USB and Bluetooth with HID.
+ if (CombineMessage(
+ messages, PermissionMessage::kUsb, PermissionMessage::kBluetooth)) {
meacer 2014/07/03 01:04:11 As I mentioned on the previous comment on IDS_EXTE
mhm 2014/07/07 21:19:38 Done.
+ messages.push_back(PermissionMessage(
+ PermissionMessage::kHid,
+ l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_HID)));
+ messages.erase(FindMessageByID(messages, PermissionMessage::kUsb));
+ messages.erase(FindMessageByID(messages, PermissionMessage::kBluetooth));
}
+ bool media_galleries_read_copy_to =
meacer 2014/07/03 01:04:11 I would just put these inside the if condition whe
mhm 2014/07/07 21:19:38 Done.
+ CombineMessage(messages,
+ PermissionMessage::kMediaGalleriesAllGalleriesRead,
+ PermissionMessage::kMediaGalleriesAllGalleriesCopyTo);
+ bool media_galleries_read_delete =
meacer 2014/07/03 01:04:11 Same as media_galleries_copy_to
mhm 2014/07/07 21:19:38 Done.
+ CombineMessage(messages,
+ PermissionMessage::kMediaGalleriesAllGalleriesRead,
+ PermissionMessage::kMediaGalleriesAllGalleriesDelete);
for (PermissionMessages::const_iterator i = messages.begin();
i != messages.end(); ++i) {
int id = i->id();
- if (audio_capture && video_capture) {
- if (id == PermissionMessage::kAudioCapture) {
+ if ((id == PermissionMessage::kHid || id == PermissionMessage::kSerial) &&
+ CombineMessage(
+ messages, PermissionMessage::kHid, PermissionMessage::kSerial)) {
+ if (id == PermissionMessage::kHid) {
+ message_strings.push_back(
+ l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_DEVICES));
+ }
+ continue;
+ }
+ if ((id == PermissionMessage::kUsb || id == PermissionMessage::kSerial) &&
+ CombineMessage(
+ messages, PermissionMessage::kUsb, PermissionMessage::kSerial)) {
+ if (id == PermissionMessage::kUsb) {
meacer 2014/07/03 01:04:11 This seems cleaner: if (id == kUsb && ContainsMes
mhm 2014/07/07 21:19:38 The issue is that we also need to have a continue
+ message_strings.push_back(
+ l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_USB_SERIAL));
+ }
+ continue;
+ }
+ if ((id == PermissionMessage::kBluetooth ||
+ id == PermissionMessage::kSerial) &&
+ CombineMessage(messages,
+ PermissionMessage::kBluetooth,
+ PermissionMessage::kSerial)) {
+ if (id == PermissionMessage::kBluetooth) {
meacer 2014/07/03 01:04:11 Same as above, you could just check for kBluetooth
mhm 2014/07/07 21:19:39 Done.
message_strings.push_back(l10n_util::GetStringUTF16(
- IDS_EXTENSION_PROMPT_WARNING_AUDIO_AND_VIDEO_CAPTURE));
- continue;
- } else if (id == PermissionMessage::kVideoCapture) {
- // The combined message will be pushed above.
- continue;
+ IDS_EXTENSION_PROMPT_WARNING_BLUETOOTH_SERIAL));
}
+ continue;
}
- if (accessibility_read && accessibility_write) {
+ if ((id == PermissionMessage::kAccessibilityFeaturesRead ||
+ id == PermissionMessage::kAccessibilityFeaturesModify) &&
+ CombineMessage(messages,
+ PermissionMessage::kAccessibilityFeaturesRead,
+ PermissionMessage::kAccessibilityFeaturesModify)) {
if (id == PermissionMessage::kAccessibilityFeaturesRead) {
message_strings.push_back(l10n_util::GetStringUTF16(
IDS_EXTENSION_PROMPT_WARNING_ACCESSIBILITY_FEATURES_READ_MODIFY));
meacer 2014/07/03 01:04:11 Same: if (id == Read && CombineMessage(messages,
mhm 2014/07/07 21:19:38 Done.
- continue;
- } else if (id == PermissionMessage::kAccessibilityFeaturesModify) {
- // The combined message will be pushed above.
- continue;
}
+ continue;
}
- if (media_galleries_read &&
- (media_galleries_copy_to || media_galleries_delete)) {
+ if ((id == PermissionMessage::kAudioCapture ||
+ id == PermissionMessage::kVideoCapture) &&
+ CombineMessage(messages,
+ PermissionMessage::kAudioCapture,
+ PermissionMessage::kVideoCapture)) {
+ if (id == PermissionMessage::kAudioCapture) {
meacer 2014/07/03 01:04:11 Ditto.
mhm 2014/07/07 21:19:38 Done.
+ message_strings.push_back(l10n_util::GetStringUTF16(
+ IDS_EXTENSION_PROMPT_WARNING_AUDIO_AND_VIDEO_CAPTURE));
+ }
+ continue;
+ }
+ if ((id == PermissionMessage::kMediaGalleriesAllGalleriesRead ||
+ id == PermissionMessage::kMediaGalleriesAllGalleriesCopyTo ||
+ id == PermissionMessage::kMediaGalleriesAllGalleriesDelete) &&
+ (media_galleries_read_delete || media_galleries_read_copy_to)) {
if (id == PermissionMessage::kMediaGalleriesAllGalleriesRead) {
meacer 2014/07/03 01:04:11 Looks like this is always false, right? id can on
meacer 2014/07/03 01:09:59 Never mind, my comment is wrong.
mhm 2014/07/07 21:19:39 Done.
- 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));
- continue;
- } else if (id == PermissionMessage::kMediaGalleriesAllGalleriesCopyTo ||
- id == PermissionMessage::kMediaGalleriesAllGalleriesDelete) {
- // The combined message will be pushed above.
- continue;
+ if (media_galleries_read_copy_to) {
+ message_strings.push_back(l10n_util::GetStringUTF16(
+ IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_WRITE));
+ } else {
+ message_strings.push_back(l10n_util::GetStringUTF16(
+ IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_DELETE));
+ }
}
+ continue;
}
if (permissions->HasAPIPermission(APIPermission::kSessions) &&
id == PermissionMessage::kTabs) {

Powered by Google App Engine
This is Rietveld 408576698