OLD | NEW |
---|---|
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 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
104 Manifest::Type extension_type) const { | 104 Manifest::Type extension_type) const { |
105 std::vector<base::string16> message_strings; | 105 std::vector<base::string16> message_strings; |
106 PermissionMessages messages = | 106 PermissionMessages messages = |
107 GetPermissionMessages(permissions, extension_type); | 107 GetPermissionMessages(permissions, extension_type); |
108 | 108 |
109 bool audio_capture = false; | 109 bool audio_capture = false; |
110 bool video_capture = false; | 110 bool video_capture = false; |
111 bool media_galleries_read = false; | 111 bool media_galleries_read = false; |
112 bool media_galleries_copy_to = false; | 112 bool media_galleries_copy_to = false; |
113 bool media_galleries_delete = false; | 113 bool media_galleries_delete = false; |
114 bool accessibility_read = false; | |
115 bool accessibility_write = false; | |
114 for (PermissionMessages::const_iterator i = messages.begin(); | 116 for (PermissionMessages::const_iterator i = messages.begin(); |
115 i != messages.end(); ++i) { | 117 i != messages.end(); ++i) { |
116 switch (i->id()) { | 118 switch (i->id()) { |
117 case PermissionMessage::kAudioCapture: | 119 case PermissionMessage::kAudioCapture: |
118 audio_capture = true; | 120 audio_capture = true; |
119 break; | 121 break; |
120 case PermissionMessage::kVideoCapture: | 122 case PermissionMessage::kVideoCapture: |
121 video_capture = true; | 123 video_capture = true; |
122 break; | 124 break; |
123 case PermissionMessage::kMediaGalleriesAllGalleriesRead: | 125 case PermissionMessage::kMediaGalleriesAllGalleriesRead: |
124 media_galleries_read = true; | 126 media_galleries_read = true; |
125 break; | 127 break; |
126 case PermissionMessage::kMediaGalleriesAllGalleriesCopyTo: | 128 case PermissionMessage::kMediaGalleriesAllGalleriesCopyTo: |
127 media_galleries_copy_to = true; | 129 media_galleries_copy_to = true; |
128 break; | 130 break; |
129 case PermissionMessage::kMediaGalleriesAllGalleriesDelete: | 131 case PermissionMessage::kMediaGalleriesAllGalleriesDelete: |
130 media_galleries_delete = true; | 132 media_galleries_delete = true; |
131 break; | 133 break; |
134 case PermissionMessage::kAccessibilityFeaturesRead: | |
135 accessibility_read = true; | |
136 break; | |
137 case PermissionMessage::kAccessibilityFeaturesModify: | |
138 accessibility_write = true; | |
139 break; | |
132 default: | 140 default: |
133 break; | 141 break; |
134 } | 142 } |
135 } | 143 } |
136 | 144 |
137 for (PermissionMessages::const_iterator i = messages.begin(); | 145 for (PermissionMessages::const_iterator i = messages.begin(); |
138 i != messages.end(); ++i) { | 146 i != messages.end(); ++i) { |
139 int id = i->id(); | 147 int id = i->id(); |
140 if (audio_capture && video_capture) { | 148 if (audio_capture && video_capture) { |
141 if (id == PermissionMessage::kAudioCapture) { | 149 if (id == PermissionMessage::kAudioCapture) { |
142 message_strings.push_back(l10n_util::GetStringUTF16( | 150 message_strings.push_back(l10n_util::GetStringUTF16( |
143 IDS_EXTENSION_PROMPT_WARNING_AUDIO_AND_VIDEO_CAPTURE)); | 151 IDS_EXTENSION_PROMPT_WARNING_AUDIO_AND_VIDEO_CAPTURE)); |
144 continue; | 152 continue; |
145 } else if (id == PermissionMessage::kVideoCapture) { | 153 } else if (id == PermissionMessage::kVideoCapture) { |
146 // The combined message will be pushed above. | 154 // The combined message will be pushed above. |
147 continue; | 155 continue; |
148 } | 156 } |
149 } | 157 } |
158 if (accessibility_read && accessibility_write) { | |
159 if (id == PermissionMessage::kAccessibilityFeaturesRead) { | |
160 message_strings.push_back(l10n_util::GetStringUTF16( | |
161 IDS_EXTENSION_PROMPT_WARNING_ACCESSIBILITY_FEATURES_READ_AND_MODIFY)); | |
meacer
2014/06/18 17:39:52
Should be indented two more spaces, but then you'l
| |
162 continue; | |
163 } else if (id == PermissionMessage::kAccessibilityFeaturesModify) { | |
164 // The combined message will be pushed above. | |
165 continue; | |
166 } | |
167 } | |
150 if (media_galleries_read && | 168 if (media_galleries_read && |
151 (media_galleries_copy_to || media_galleries_delete)) { | 169 (media_galleries_copy_to || media_galleries_delete)) { |
152 if (id == PermissionMessage::kMediaGalleriesAllGalleriesRead) { | 170 if (id == PermissionMessage::kMediaGalleriesAllGalleriesRead) { |
153 int m_id = media_galleries_copy_to ? | 171 int m_id = media_galleries_copy_to ? |
154 IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_WRITE : | 172 IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_WRITE : |
155 IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_DELETE; | 173 IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_DELETE; |
156 message_strings.push_back(l10n_util::GetStringUTF16(m_id)); | 174 message_strings.push_back(l10n_util::GetStringUTF16(m_id)); |
157 continue; | 175 continue; |
158 } else if (id == PermissionMessage::kMediaGalleriesAllGalleriesCopyTo || | 176 } else if (id == PermissionMessage::kMediaGalleriesAllGalleriesCopyTo || |
159 id == PermissionMessage::kMediaGalleriesAllGalleriesDelete) { | 177 id == PermissionMessage::kMediaGalleriesAllGalleriesDelete) { |
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
367 std::set<std::string> old_hosts_set( | 385 std::set<std::string> old_hosts_set( |
368 permission_message_util::GetDistinctHosts(old_list, false, false)); | 386 permission_message_util::GetDistinctHosts(old_list, false, false)); |
369 std::set<std::string> new_hosts_only = | 387 std::set<std::string> new_hosts_only = |
370 base::STLSetDifference<std::set<std::string> >(new_hosts_set, | 388 base::STLSetDifference<std::set<std::string> >(new_hosts_set, |
371 old_hosts_set); | 389 old_hosts_set); |
372 | 390 |
373 return !new_hosts_only.empty(); | 391 return !new_hosts_only.empty(); |
374 } | 392 } |
375 | 393 |
376 } // namespace extensions | 394 } // namespace extensions |
OLD | NEW |