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

Side by Side Diff: extensions/common/api/sockets/sockets_manifest_permission.cc

Issue 795543002: Added PermissionIDSet to APIPermissions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@permissions_patch_1_static_initializer_fix
Patch Set: Rebase Created 6 years 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 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
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
OLDNEW
« no previous file with comments | « chrome/browser/extensions/permission_message_combinations_unittest.cc ('k') | extensions/common/permissions/api_permission.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698