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

Side by Side 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: Removed HID from the list and ensured consistency with other strings. Created 6 years, 5 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/common/extensions/permissions/chrome_permission_message_provide r.h" 5 #include "chrome/common/extensions/permissions/chrome_permission_message_provide r.h"
6 6
7 #include "base/stl_util.h" 7 #include "base/stl_util.h"
8 #include "base/strings/stringprintf.h" 8 #include "base/strings/stringprintf.h"
9 #include "extensions/common/extensions_client.h" 9 #include "extensions/common/extensions_client.h"
10 #include "extensions/common/permissions/permission_message.h" 10 #include "extensions/common/permissions/permission_message.h"
(...skipping 26 matching lines...) Expand all
37 int suppressing_message, 37 int suppressing_message,
38 int suppressed_message) { 38 int suppressed_message) {
39 typename T::iterator suppressed = FindMessageByID(messages, 39 typename T::iterator suppressed = FindMessageByID(messages,
40 suppressed_message); 40 suppressed_message);
41 if (suppressed != messages.end() && 41 if (suppressed != messages.end() &&
42 FindMessageByID(messages, suppressing_message) != messages.end()) { 42 FindMessageByID(messages, suppressing_message) != messages.end()) {
43 messages.erase(suppressed); 43 messages.erase(suppressed);
44 } 44 }
45 } 45 }
46 46
47 template <typename T>
48 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.
49 return FindMessageByID(messages, first_message) != messages.end() &&
50 FindMessageByID(messages, second_message) != messages.end();
51 }
52
47 } // namespace 53 } // namespace
48 54
49 ChromePermissionMessageProvider::ChromePermissionMessageProvider() { 55 ChromePermissionMessageProvider::ChromePermissionMessageProvider() {
50 } 56 }
51 57
52 ChromePermissionMessageProvider::~ChromePermissionMessageProvider() { 58 ChromePermissionMessageProvider::~ChromePermissionMessageProvider() {
53 } 59 }
54 60
55 PermissionMessages ChromePermissionMessageProvider::GetPermissionMessages( 61 PermissionMessages ChromePermissionMessageProvider::GetPermissionMessages(
56 const PermissionSet* permissions, 62 const PermissionSet* permissions,
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 return messages; 110 return messages;
105 } 111 }
106 112
107 std::vector<base::string16> ChromePermissionMessageProvider::GetWarningMessages( 113 std::vector<base::string16> ChromePermissionMessageProvider::GetWarningMessages(
108 const PermissionSet* permissions, 114 const PermissionSet* permissions,
109 Manifest::Type extension_type) const { 115 Manifest::Type extension_type) const {
110 std::vector<base::string16> message_strings; 116 std::vector<base::string16> message_strings;
111 PermissionMessages messages = 117 PermissionMessages messages =
112 GetPermissionMessages(permissions, extension_type); 118 GetPermissionMessages(permissions, extension_type);
113 119
114 bool audio_capture = false; 120 SuppressMessage(messages,
115 bool video_capture = false; 121 PermissionMessage::kBluetooth,
116 bool media_galleries_read = false; 122 PermissionMessage::kBluetoothDevices);
117 bool media_galleries_copy_to = false;
118 bool media_galleries_delete = false;
119 bool accessibility_read = false;
120 bool accessibility_write = false;
121 for (PermissionMessages::const_iterator i = messages.begin();
122 i != messages.end(); ++i) {
123 switch (i->id()) {
124 case PermissionMessage::kAudioCapture:
125 audio_capture = true;
126 break;
127 case PermissionMessage::kVideoCapture:
128 video_capture = true;
129 break;
130 case PermissionMessage::kMediaGalleriesAllGalleriesRead:
131 media_galleries_read = true;
132 break;
133 case PermissionMessage::kMediaGalleriesAllGalleriesCopyTo:
134 media_galleries_copy_to = true;
135 break;
136 case PermissionMessage::kMediaGalleriesAllGalleriesDelete:
137 media_galleries_delete = true;
138 break;
139 case PermissionMessage::kAccessibilityFeaturesRead:
140 accessibility_read = true;
141 break;
142 case PermissionMessage::kAccessibilityFeaturesModify:
143 accessibility_write = true;
144 break;
145 default:
146 break;
147 }
148 }
149 123
150 for (PermissionMessages::const_iterator i = messages.begin(); 124 for (PermissionMessages::const_iterator i = messages.begin();
151 i != messages.end(); ++i) { 125 i != messages.end(); ++i) {
152 int id = i->id(); 126 int id = i->id();
153 if (audio_capture && video_capture) { 127 if (id == PermissionMessage::kUsb || id == PermissionMessage::kBluetooth ||
154 if (id == PermissionMessage::kAudioCapture) { 128 id == PermissionMessage::kSerial) {
155 message_strings.push_back(l10n_util::GetStringUTF16( 129 // Access to USB, Bluetooth and Serial
156 IDS_EXTENSION_PROMPT_WARNING_AUDIO_AND_VIDEO_CAPTURE)); 130 if (ContainBothMessages(messages,
131 PermissionMessage::kUsb,
132 PermissionMessage::kBluetooth) &&
133 ContainBothMessages(
134 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"
135 if (id == PermissionMessage::kUsb) {
136 message_strings.push_back(l10n_util::GetStringUTF16(
137 IDS_EXTENSION_PROMPT_WARNING_ALL_DEVICES));
138 }
157 continue; 139 continue;
158 } else if (id == PermissionMessage::kVideoCapture) { 140 }
159 // The combined message will be pushed above. 141 // Access to USB and Bluetooth
142 if (ContainBothMessages(messages,
143 PermissionMessage::kUsb,
144 PermissionMessage::kBluetooth)) {
145 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.
146 message_strings.push_back(l10n_util::GetStringUTF16(
147 IDS_EXTENSION_PROMPT_WARNING_USB_BLUETOOTH));
148 }
149 continue;
150 }
151 // Access to USB and Serial
152 if (ContainBothMessages(
153 messages, PermissionMessage::kUsb, PermissionMessage::kSerial)) {
154 if (id == PermissionMessage::kUsb) {
155 message_strings.push_back(l10n_util::GetStringUTF16(
156 IDS_EXTENSION_PROMPT_WARNING_USB_SERIAL));
157 }
158 continue;
159 }
160 // Access to Bluetooth and Serial
161 if (ContainBothMessages(messages,
162 PermissionMessage::kBluetooth,
163 PermissionMessage::kSerial)) {
164 if (id == PermissionMessage::kBluetooth) {
165 message_strings.push_back(l10n_util::GetStringUTF16(
166 IDS_EXTENSION_PROMPT_WARNING_BLUETOOTH_SERIAL));
167 }
160 continue; 168 continue;
161 } 169 }
162 } 170 }
163 if (accessibility_read && accessibility_write) { 171 if (id == PermissionMessage::kAccessibilityFeaturesRead ||
164 if (id == PermissionMessage::kAccessibilityFeaturesRead) { 172 id == PermissionMessage::kAccessibilityFeaturesModify) {
165 message_strings.push_back(l10n_util::GetStringUTF16( 173 if (ContainBothMessages(
166 IDS_EXTENSION_PROMPT_WARNING_ACCESSIBILITY_FEATURES_READ_MODIFY)); 174 messages,
167 continue; 175 PermissionMessage::kAccessibilityFeaturesRead,
168 } else if (id == PermissionMessage::kAccessibilityFeaturesModify) { 176 PermissionMessage::kAccessibilityFeaturesModify)) {
169 // The combined message will be pushed above. 177 if (id == PermissionMessage::kAccessibilityFeaturesRead) {
178 message_strings.push_back(l10n_util::GetStringUTF16(
179 IDS_EXTENSION_PROMPT_WARNING_ACCESSIBILITY_FEATURES_READ_MODIFY));
180 }
170 continue; 181 continue;
171 } 182 }
172 } 183 }
173 if (media_galleries_read && 184 if (id == PermissionMessage::kAudioCapture ||
174 (media_galleries_copy_to || media_galleries_delete)) { 185 id == PermissionMessage::kVideoCapture) {
175 if (id == PermissionMessage::kMediaGalleriesAllGalleriesRead) { 186 if (ContainBothMessages(messages,
176 int m_id = media_galleries_copy_to ? 187 PermissionMessage::kAudioCapture,
177 IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_WRITE : 188 PermissionMessage::kVideoCapture)) {
178 IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_DELETE; 189 if (id == PermissionMessage::kAudioCapture) {
179 message_strings.push_back(l10n_util::GetStringUTF16(m_id)); 190 message_strings.push_back(l10n_util::GetStringUTF16(
180 continue; 191 IDS_EXTENSION_PROMPT_WARNING_AUDIO_AND_VIDEO_CAPTURE));
181 } else if (id == PermissionMessage::kMediaGalleriesAllGalleriesCopyTo || 192 }
182 id == PermissionMessage::kMediaGalleriesAllGalleriesDelete) {
183 // The combined message will be pushed above.
184 continue; 193 continue;
185 } 194 }
186 } 195 }
196 if (id == PermissionMessage::kMediaGalleriesAllGalleriesRead ||
197 id == PermissionMessage::kMediaGalleriesAllGalleriesCopyTo ||
198 id == PermissionMessage::kMediaGalleriesAllGalleriesDelete) {
199 if (ContainBothMessages(
200 messages,
201 PermissionMessage::kMediaGalleriesAllGalleriesRead,
202 PermissionMessage::kMediaGalleriesAllGalleriesCopyTo)) {
203 if (id == PermissionMessage::kMediaGalleriesAllGalleriesRead) {
204 message_strings.push_back(l10n_util::GetStringUTF16(
205 IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_WRITE));
206 }
207 continue;
208 } else if (ContainBothMessages(
209 messages,
210 PermissionMessage::kMediaGalleriesAllGalleriesRead,
211 PermissionMessage::kMediaGalleriesAllGalleriesDelete)) {
212 if (id == PermissionMessage::kMediaGalleriesAllGalleriesRead) {
213 message_strings.push_back(l10n_util::GetStringUTF16(
214 IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_DELETE));
215 }
216 continue;
217 }
218 }
187 if (permissions->HasAPIPermission(APIPermission::kSessions) && 219 if (permissions->HasAPIPermission(APIPermission::kSessions) &&
188 id == PermissionMessage::kTabs) { 220 id == PermissionMessage::kTabs) {
189 message_strings.push_back(l10n_util::GetStringUTF16( 221 message_strings.push_back(l10n_util::GetStringUTF16(
190 IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ_AND_SESSIONS)); 222 IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ_AND_SESSIONS));
191 continue; 223 continue;
192 } 224 }
193 if (permissions->HasAPIPermission(APIPermission::kSessions) && 225 if (permissions->HasAPIPermission(APIPermission::kSessions) &&
194 id == PermissionMessage::kBrowsingHistory) { 226 id == PermissionMessage::kBrowsingHistory) {
195 message_strings.push_back(l10n_util::GetStringUTF16( 227 message_strings.push_back(l10n_util::GetStringUTF16(
196 IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE_AND_SESSIONS)); 228 IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE_AND_SESSIONS));
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
390 std::set<std::string> old_hosts_set( 422 std::set<std::string> old_hosts_set(
391 permission_message_util::GetDistinctHosts(old_list, false, false)); 423 permission_message_util::GetDistinctHosts(old_list, false, false));
392 std::set<std::string> new_hosts_only = 424 std::set<std::string> new_hosts_only =
393 base::STLSetDifference<std::set<std::string> >(new_hosts_set, 425 base::STLSetDifference<std::set<std::string> >(new_hosts_set,
394 old_hosts_set); 426 old_hosts_set);
395 427
396 return !new_hosts_only.empty(); 428 return !new_hosts_only.empty();
397 } 429 }
398 430
399 } // namespace extensions 431 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/app/generated_resources.grd ('k') | chrome/common/extensions/permissions/permission_set_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698