| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "extensions/common/api/sockets/sockets_manifest_permission.h" | 5 #include "extensions/common/api/sockets/sockets_manifest_permission.h" |
| 6 | 6 |
| 7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
| 8 #include "base/stl_util.h" | 8 #include "base/stl_util.h" |
| 9 #include "base/strings/string_split.h" | 9 #include "base/strings/string_split.h" |
| 10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| (...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 311 ? IDS_EXTENSION_PROMPT_WARNING_SOCKET_HOSTS_IN_DOMAIN | 311 ? IDS_EXTENSION_PROMPT_WARNING_SOCKET_HOSTS_IN_DOMAIN |
| 312 : IDS_EXTENSION_PROMPT_WARNING_SOCKET_HOSTS_IN_DOMAINS; | 312 : IDS_EXTENSION_PROMPT_WARNING_SOCKET_HOSTS_IN_DOMAINS; |
| 313 messages.push_back(PermissionMessage( | 313 messages.push_back(PermissionMessage( |
| 314 PermissionMessage::kSocketDomainHosts, | 314 PermissionMessage::kSocketDomainHosts, |
| 315 l10n_util::GetStringFUTF16( | 315 l10n_util::GetStringFUTF16( |
| 316 id, | 316 id, |
| 317 JoinString( | 317 JoinString( |
| 318 std::vector<base::string16>(domains.begin(), domains.end()), | 318 std::vector<base::string16>(domains.begin(), domains.end()), |
| 319 ' ')))); | 319 ' ')))); |
| 320 // TODO(sashab): Add rules to ChromePermissionMessageProvider: | 320 // TODO(sashab): Add rules to ChromePermissionMessageProvider: |
| 321 // kSocketDomainHostsSingular -> | 321 // kSocketDomainHosts -> |
| 322 // IDS_EXTENSION_PROMPT_WARNING_SOCKET_HOSTS_IN_DOMAIN | 322 // IDS_EXTENSION_PROMPT_WARNING_SOCKET_HOSTS_IN_DOMAIN if 1 |
| 323 // kSocketDomainHostsPlural -> | 323 // IDS_EXTENSION_PROMPT_WARNING_SOCKET_HOSTS_IN_DOMAINS if many |
| 324 // IDS_EXTENSION_PROMPT_WARNING_SOCKET_HOSTS_IN_DOMAINS | |
| 325 APIPermission::ID pid = (domains.size() == 1) | |
| 326 ? APIPermission::kSocketDomainHostsSingular | |
| 327 : APIPermission::kSocketDomainHostsPlural; | |
| 328 for (const auto& domain : domains) | 324 for (const auto& domain : domains) |
| 329 ids.insert(pid, domain); | 325 ids.insert(APIPermission::kSocketDomainHosts, domain); |
| 330 } | 326 } |
| 331 } | 327 } |
| 332 | 328 |
| 333 void SocketsManifestPermission::AddSpecificHostMessage( | 329 void SocketsManifestPermission::AddSpecificHostMessage( |
| 334 PermissionMessages& messages, | 330 PermissionMessages& messages, |
| 335 PermissionIDSet& ids) const { | 331 PermissionIDSet& ids) const { |
| 336 std::set<base::string16> hostnames; | 332 std::set<base::string16> hostnames; |
| 337 for (SocketPermissionEntrySet::const_iterator it = permissions_.begin(); | 333 for (SocketPermissionEntrySet::const_iterator it = permissions_.begin(); |
| 338 it != permissions_.end(); | 334 it != permissions_.end(); |
| 339 ++it) { | 335 ++it) { |
| 340 if (it->GetHostType() == SocketPermissionEntry::SPECIFIC_HOSTS) | 336 if (it->GetHostType() == SocketPermissionEntry::SPECIFIC_HOSTS) |
| 341 hostnames.insert(base::UTF8ToUTF16(it->pattern().host)); | 337 hostnames.insert(base::UTF8ToUTF16(it->pattern().host)); |
| 342 } | 338 } |
| 343 if (!hostnames.empty()) { | 339 if (!hostnames.empty()) { |
| 344 // TODO(sashab): This is not correct for all languages - add proper | 340 // TODO(sashab): This is not correct for all languages - add proper |
| 345 // internationalization of this string for all plural states. | 341 // internationalization of this string for all plural states. |
| 346 int id = (hostnames.size() == 1) | 342 int id = (hostnames.size() == 1) |
| 347 ? IDS_EXTENSION_PROMPT_WARNING_SOCKET_SPECIFIC_HOST | 343 ? IDS_EXTENSION_PROMPT_WARNING_SOCKET_SPECIFIC_HOST |
| 348 : IDS_EXTENSION_PROMPT_WARNING_SOCKET_SPECIFIC_HOSTS; | 344 : IDS_EXTENSION_PROMPT_WARNING_SOCKET_SPECIFIC_HOSTS; |
| 349 messages.push_back(PermissionMessage( | 345 messages.push_back(PermissionMessage( |
| 350 PermissionMessage::kSocketSpecificHosts, | 346 PermissionMessage::kSocketSpecificHosts, |
| 351 l10n_util::GetStringFUTF16( | 347 l10n_util::GetStringFUTF16( |
| 352 id, | 348 id, |
| 353 JoinString( | 349 JoinString( |
| 354 std::vector<base::string16>(hostnames.begin(), hostnames.end()), | 350 std::vector<base::string16>(hostnames.begin(), hostnames.end()), |
| 355 ' ')))); | 351 ' ')))); |
| 356 // TODO(sashab): Add rules to ChromePermissionMessageProvider: | 352 // TODO(sashab): Add rules to ChromePermissionMessageProvider: |
| 357 // kSocketSpecificHostsSingular -> | 353 // kSocketSpecificHosts -> |
| 358 // IDS_EXTENSION_PROMPT_WARNING_SOCKET_SPECIFIC_HOST | 354 // IDS_EXTENSION_PROMPT_WARNING_SOCKET_SPECIFIC_HOST if 1 |
| 359 // kSocketSpecificHostsPlural -> | 355 // IDS_EXTENSION_PROMPT_WARNING_SOCKET_SPECIFIC_HOSTS if many |
| 360 // IDS_EXTENSION_PROMPT_WARNING_SOCKET_SPECIFIC_HOSTS | |
| 361 APIPermission::ID pid = (hostnames.size() == 1) | |
| 362 ? APIPermission::kSocketSpecificHostsSingular | |
| 363 : APIPermission::kSocketSpecificHostsPlural; | |
| 364 for (const auto& hostname : hostnames) | 356 for (const auto& hostname : hostnames) |
| 365 ids.insert(pid, hostname); | 357 ids.insert(APIPermission::kSocketSpecificHosts, hostname); |
| 366 } | 358 } |
| 367 } | 359 } |
| 368 | 360 |
| 369 void SocketsManifestPermission::AddNetworkListMessage( | 361 void SocketsManifestPermission::AddNetworkListMessage( |
| 370 PermissionMessages& messages, | 362 PermissionMessages& messages, |
| 371 PermissionIDSet& ids) const { | 363 PermissionIDSet& ids) const { |
| 372 for (SocketPermissionEntrySet::const_iterator it = permissions_.begin(); | 364 for (SocketPermissionEntrySet::const_iterator it = permissions_.begin(); |
| 373 it != permissions_.end(); | 365 it != permissions_.end(); |
| 374 ++it) { | 366 ++it) { |
| 375 if (it->pattern().type == SocketPermissionRequest::NETWORK_STATE) { | 367 if (it->pattern().type == SocketPermissionRequest::NETWORK_STATE) { |
| 376 // TODO(sashab): Add a rule to ChromePermissionMessageProvider: | 368 // TODO(sashab): Add a rule to ChromePermissionMessageProvider: |
| 377 // kNetworkState -> IDS_EXTENSION_PROMPT_WARNING_NETWORK_STATE | 369 // kNetworkState -> IDS_EXTENSION_PROMPT_WARNING_NETWORK_STATE |
| 378 ids.insert(APIPermission::kNetworkState); | 370 ids.insert(APIPermission::kNetworkState); |
| 379 messages.push_back( | 371 messages.push_back( |
| 380 PermissionMessage(PermissionMessage::kNetworkState, | 372 PermissionMessage(PermissionMessage::kNetworkState, |
| 381 l10n_util::GetStringUTF16( | 373 l10n_util::GetStringUTF16( |
| 382 IDS_EXTENSION_PROMPT_WARNING_NETWORK_STATE))); | 374 IDS_EXTENSION_PROMPT_WARNING_NETWORK_STATE))); |
| 383 } | 375 } |
| 384 } | 376 } |
| 385 } | 377 } |
| 386 | 378 |
| 387 } // namespace extensions | 379 } // namespace extensions |
| OLD | NEW |