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 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
98 Manifest::Type extension_type) const { | 98 Manifest::Type extension_type) const { |
99 std::vector<base::string16> message_strings; | 99 std::vector<base::string16> message_strings; |
100 PermissionMessages messages = | 100 PermissionMessages messages = |
101 GetPermissionMessages(permissions, extension_type); | 101 GetPermissionMessages(permissions, extension_type); |
102 | 102 |
103 bool audio_capture = false; | 103 bool audio_capture = false; |
104 bool video_capture = false; | 104 bool video_capture = false; |
105 bool media_galleries_read = false; | 105 bool media_galleries_read = false; |
106 bool media_galleries_copy_to = false; | 106 bool media_galleries_copy_to = false; |
107 bool media_galleries_delete = false; | 107 bool media_galleries_delete = false; |
| 108 bool tabs = false; |
108 for (PermissionMessages::const_iterator i = messages.begin(); | 109 for (PermissionMessages::const_iterator i = messages.begin(); |
109 i != messages.end(); ++i) { | 110 i != messages.end(); ++i) { |
110 switch (i->id()) { | 111 switch (i->id()) { |
111 case PermissionMessage::kAudioCapture: | 112 case PermissionMessage::kAudioCapture: |
112 audio_capture = true; | 113 audio_capture = true; |
113 break; | 114 break; |
114 case PermissionMessage::kVideoCapture: | 115 case PermissionMessage::kVideoCapture: |
115 video_capture = true; | 116 video_capture = true; |
116 break; | 117 break; |
117 case PermissionMessage::kMediaGalleriesAllGalleriesRead: | 118 case PermissionMessage::kMediaGalleriesAllGalleriesRead: |
118 media_galleries_read = true; | 119 media_galleries_read = true; |
119 break; | 120 break; |
120 case PermissionMessage::kMediaGalleriesAllGalleriesCopyTo: | 121 case PermissionMessage::kMediaGalleriesAllGalleriesCopyTo: |
121 media_galleries_copy_to = true; | 122 media_galleries_copy_to = true; |
122 break; | 123 break; |
123 case PermissionMessage::kMediaGalleriesAllGalleriesDelete: | 124 case PermissionMessage::kMediaGalleriesAllGalleriesDelete: |
124 media_galleries_delete = true; | 125 media_galleries_delete = true; |
125 break; | 126 break; |
| 127 case PermissionMessage::kTabs: |
| 128 tabs = true; |
| 129 break; |
126 default: | 130 default: |
127 break; | 131 break; |
128 } | 132 } |
129 } | 133 } |
130 | 134 |
131 for (PermissionMessages::const_iterator i = messages.begin(); | 135 for (PermissionMessages::const_iterator i = messages.begin(); |
132 i != messages.end(); ++i) { | 136 i != messages.end(); ++i) { |
133 int id = i->id(); | 137 int id = i->id(); |
134 if (audio_capture && video_capture) { | 138 if (audio_capture && video_capture) { |
135 if (id == PermissionMessage::kAudioCapture) { | 139 if (id == PermissionMessage::kAudioCapture) { |
(...skipping 12 matching lines...) Expand all Loading... |
148 IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_WRITE : | 152 IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_WRITE : |
149 IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_DELETE; | 153 IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_DELETE; |
150 message_strings.push_back(l10n_util::GetStringUTF16(m_id)); | 154 message_strings.push_back(l10n_util::GetStringUTF16(m_id)); |
151 continue; | 155 continue; |
152 } else if (id == PermissionMessage::kMediaGalleriesAllGalleriesCopyTo || | 156 } else if (id == PermissionMessage::kMediaGalleriesAllGalleriesCopyTo || |
153 id == PermissionMessage::kMediaGalleriesAllGalleriesDelete) { | 157 id == PermissionMessage::kMediaGalleriesAllGalleriesDelete) { |
154 // The combined message will be pushed above. | 158 // The combined message will be pushed above. |
155 continue; | 159 continue; |
156 } | 160 } |
157 } | 161 } |
| 162 if (tabs && permissions->HasAPIPermission(APIPermission::kSessions) && |
| 163 id == PermissionMessage::kTabs) { |
| 164 message_strings.push_back(l10n_util::GetStringUTF16( |
| 165 IDS_EXTENSION_PROMPT_WARNING_TABS_AND_SESSIONS)); |
| 166 continue; |
| 167 } |
158 | 168 |
159 message_strings.push_back(i->message()); | 169 message_strings.push_back(i->message()); |
160 } | 170 } |
161 | 171 |
162 return message_strings; | 172 return message_strings; |
163 } | 173 } |
164 | 174 |
165 std::vector<base::string16> | 175 std::vector<base::string16> |
166 ChromePermissionMessageProvider::GetWarningMessagesDetails( | 176 ChromePermissionMessageProvider::GetWarningMessagesDetails( |
167 const PermissionSet* permissions, | 177 const PermissionSet* permissions, |
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
349 std::set<std::string> old_hosts_set( | 359 std::set<std::string> old_hosts_set( |
350 permission_message_util::GetDistinctHosts(old_list, false, false)); | 360 permission_message_util::GetDistinctHosts(old_list, false, false)); |
351 std::set<std::string> new_hosts_only = | 361 std::set<std::string> new_hosts_only = |
352 base::STLSetDifference<std::set<std::string> >(new_hosts_set, | 362 base::STLSetDifference<std::set<std::string> >(new_hosts_set, |
353 old_hosts_set); | 363 old_hosts_set); |
354 | 364 |
355 return !new_hosts_only.empty(); | 365 return !new_hosts_only.empty(); |
356 } | 366 } |
357 | 367 |
358 } // namespace extensions | 368 } // namespace extensions |
OLD | NEW |