Chromium Code Reviews| 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; | |
| 116 bool file_system_read = false; | |
| 117 bool file_system_write = false; | |
| 114 for (PermissionMessages::const_iterator i = messages.begin(); | 118 for (PermissionMessages::const_iterator i = messages.begin(); |
| 115 i != messages.end(); ++i) { | 119 i != messages.end(); ++i) { |
| 116 switch (i->id()) { | 120 switch (i->id()) { |
| 117 case PermissionMessage::kAudioCapture: | 121 case PermissionMessage::kAudioCapture: |
| 118 audio_capture = true; | 122 audio_capture = true; |
| 119 break; | 123 break; |
| 120 case PermissionMessage::kVideoCapture: | 124 case PermissionMessage::kVideoCapture: |
| 121 video_capture = true; | 125 video_capture = true; |
| 122 break; | 126 break; |
| 123 case PermissionMessage::kMediaGalleriesAllGalleriesRead: | 127 case PermissionMessage::kMediaGalleriesAllGalleriesRead: |
| 124 media_galleries_read = true; | 128 media_galleries_read = true; |
| 125 break; | 129 break; |
| 126 case PermissionMessage::kMediaGalleriesAllGalleriesCopyTo: | 130 case PermissionMessage::kMediaGalleriesAllGalleriesCopyTo: |
| 127 media_galleries_copy_to = true; | 131 media_galleries_copy_to = true; |
| 128 break; | 132 break; |
| 129 case PermissionMessage::kMediaGalleriesAllGalleriesDelete: | 133 case PermissionMessage::kMediaGalleriesAllGalleriesDelete: |
| 130 media_galleries_delete = true; | 134 media_galleries_delete = true; |
| 131 break; | 135 break; |
| 136 case PermissionMessage::kAccessibilityFeaturesRead: | |
| 137 accessibility_read = true; | |
| 138 break; | |
| 139 case PermissionMessage::kAccessibilityFeaturesModify: | |
| 140 accessibility_write = true; | |
| 141 break; | |
| 142 case PermissionMessage::kFileSystemDirectory: | |
|
meacer
2014/06/18 02:19:57
fileSystem.write already suppresses fileSystem: ht
| |
| 143 file_system_read = true; | |
| 144 break; | |
| 145 case PermissionMessage::kFileSystemWriteDirectory: | |
| 146 file_system_write = true; | |
| 147 break; | |
| 132 default: | 148 default: |
| 133 break; | 149 break; |
| 134 } | 150 } |
| 135 } | 151 } |
| 136 | 152 |
| 137 for (PermissionMessages::const_iterator i = messages.begin(); | 153 for (PermissionMessages::const_iterator i = messages.begin(); |
| 138 i != messages.end(); ++i) { | 154 i != messages.end(); ++i) { |
| 139 int id = i->id(); | 155 int id = i->id(); |
| 140 if (audio_capture && video_capture) { | 156 if (audio_capture && video_capture) { |
| 141 if (id == PermissionMessage::kAudioCapture) { | 157 if (id == PermissionMessage::kAudioCapture) { |
| 142 message_strings.push_back(l10n_util::GetStringUTF16( | 158 message_strings.push_back(l10n_util::GetStringUTF16( |
| 143 IDS_EXTENSION_PROMPT_WARNING_AUDIO_AND_VIDEO_CAPTURE)); | 159 IDS_EXTENSION_PROMPT_WARNING_AUDIO_AND_VIDEO_CAPTURE)); |
| 144 continue; | 160 continue; |
| 145 } else if (id == PermissionMessage::kVideoCapture) { | 161 } else if (id == PermissionMessage::kVideoCapture) { |
| 146 // The combined message will be pushed above. | 162 // The combined message will be pushed above. |
| 147 continue; | 163 continue; |
| 148 } | 164 } |
| 149 } | 165 } |
| 166 if (accessibility_read && accessibility_write) { | |
| 167 if (id == PermissionMessage::kAccessibilityFeaturesRead) { | |
| 168 message_strings.push_back(l10n_util::GetStringUTF16( | |
| 169 IDS_EXTENSION_PROMPT_WARNING_ACCESSIBILITY_FEATURES_READ_AND_MODIFY) ); | |
| 170 continue; | |
| 171 } else if (id == PermissionMessage::kAccessibilityFeaturesModify) { | |
| 172 // The combined message will be pushed above. | |
| 173 continue; | |
| 174 } | |
| 175 } | |
| 176 if (file_system_read && file_system_write) { | |
| 177 if (id == PermissionMessage::kFileSystemDirectory) { | |
| 178 message_strings.push_back(l10n_util::GetStringUTF16( | |
| 179 IDS_EXTENSION_PROMPT_WARNING_FILE_SYSTEM_READ_AND_WRITE_DIRECTORY)); | |
| 180 continue; | |
| 181 } else if (id == PermissionMessage::kFileSystemWriteDirectory) { | |
| 182 // The combined message will be pushed above. | |
| 183 continue; | |
| 184 } | |
| 185 } | |
| 150 if (media_galleries_read && | 186 if (media_galleries_read && |
| 151 (media_galleries_copy_to || media_galleries_delete)) { | 187 (media_galleries_copy_to || media_galleries_delete)) { |
| 152 if (id == PermissionMessage::kMediaGalleriesAllGalleriesRead) { | 188 if (id == PermissionMessage::kMediaGalleriesAllGalleriesRead) { |
| 153 int m_id = media_galleries_copy_to ? | 189 int m_id = media_galleries_copy_to ? |
| 154 IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_WRITE : | 190 IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_WRITE : |
| 155 IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_DELETE; | 191 IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_DELETE; |
| 156 message_strings.push_back(l10n_util::GetStringUTF16(m_id)); | 192 message_strings.push_back(l10n_util::GetStringUTF16(m_id)); |
| 157 continue; | 193 continue; |
| 158 } else if (id == PermissionMessage::kMediaGalleriesAllGalleriesCopyTo || | 194 } else if (id == PermissionMessage::kMediaGalleriesAllGalleriesCopyTo || |
| 159 id == PermissionMessage::kMediaGalleriesAllGalleriesDelete) { | 195 id == PermissionMessage::kMediaGalleriesAllGalleriesDelete) { |
| (...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 367 std::set<std::string> old_hosts_set( | 403 std::set<std::string> old_hosts_set( |
| 368 permission_message_util::GetDistinctHosts(old_list, false, false)); | 404 permission_message_util::GetDistinctHosts(old_list, false, false)); |
| 369 std::set<std::string> new_hosts_only = | 405 std::set<std::string> new_hosts_only = |
| 370 base::STLSetDifference<std::set<std::string> >(new_hosts_set, | 406 base::STLSetDifference<std::set<std::string> >(new_hosts_set, |
| 371 old_hosts_set); | 407 old_hosts_set); |
| 372 | 408 |
| 373 return !new_hosts_only.empty(); | 409 return !new_hosts_only.empty(); |
| 374 } | 410 } |
| 375 | 411 |
| 376 } // namespace extensions | 412 } // namespace extensions |
| OLD | NEW |