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

Side by Side Diff: chrome/common/extensions/permissions/chrome_permission_message_rules.cc

Issue 1314753004: Permission messages: Add a bunch of missing combination/suppression rules. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@reorder_rules
Patch Set: Created 5 years, 3 months 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "chrome/common/extensions/permissions/chrome_permission_message_rules.h " 5 #include "chrome/common/extensions/permissions/chrome_permission_message_rules.h "
6 6
7 #include "base/stl_util.h" 7 #include "base/stl_util.h"
8 #include "base/strings/string_util.h" 8 #include "base/strings/string_util.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "chrome/grit/generated_resources.h" 10 #include "chrome/grit/generated_resources.h"
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 APIPermission::ID b, 304 APIPermission::ID b,
305 APIPermission::ID c, 305 APIPermission::ID c,
306 APIPermission::ID d, 306 APIPermission::ID d,
307 APIPermission::ID e, 307 APIPermission::ID e,
308 APIPermission::ID f, 308 APIPermission::ID f,
309 APIPermission::ID g) 309 APIPermission::ID g)
310 : PermissionIDSetInitializer(a, b, c, d, e, f) { 310 : PermissionIDSetInitializer(a, b, c, d, e, f) {
311 insert(g); 311 insert(g);
312 } 312 }
313 313
314 PermissionIDSetInitializer(APIPermission::ID a,
315 APIPermission::ID b,
316 APIPermission::ID c,
317 APIPermission::ID d,
318 APIPermission::ID e,
319 APIPermission::ID f,
320 APIPermission::ID g,
321 APIPermission::ID h)
322 : PermissionIDSetInitializer(a, b, c, d, e, f, g) {
323 insert(h);
324 }
325
326 PermissionIDSetInitializer(APIPermission::ID a,
Devlin 2015/09/01 16:08:51 This is getting a little nuts here. Looking brief
Marc Treib 2015/09/01 16:25:50 Hm, seems you're right, I also can't find anything
Devlin 2015/09/01 16:33:43 Eh, variadic templates aren't *that* hard to parse
Marc Treib 2015/09/02 10:43:55 Yup, the uniform initialization of set/vector is b
327 APIPermission::ID b,
328 APIPermission::ID c,
329 APIPermission::ID d,
330 APIPermission::ID e,
331 APIPermission::ID f,
332 APIPermission::ID g,
333 APIPermission::ID h,
334 APIPermission::ID i)
335 : PermissionIDSetInitializer(a, b, c, d, e, f, g, h) {
336 insert(i);
337 }
338
314 virtual ~PermissionIDSetInitializer() {} 339 virtual ~PermissionIDSetInitializer() {}
315 }; 340 };
316 341
317 ChromePermissionMessageRule::ChromePermissionMessageRule( 342 ChromePermissionMessageRule::ChromePermissionMessageRule(
318 int message_id, 343 int message_id,
319 const PermissionIDSetInitializer& required, 344 const PermissionIDSetInitializer& required,
320 const PermissionIDSetInitializer& optional) 345 const PermissionIDSetInitializer& optional)
321 : ChromePermissionMessageRule( 346 : ChromePermissionMessageRule(
322 new DefaultPermissionMessageFormatter(message_id), 347 new DefaultPermissionMessageFormatter(message_id),
323 required, 348 required,
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
382 // permission suppresses kTab, be careful to also add kTopSites and kFavicon 407 // permission suppresses kTab, be careful to also add kTopSites and kFavicon
383 // to the kHistory absorb list. Ideally, the rules system should be simple 408 // to the kHistory absorb list. Ideally, the rules system should be simple
384 // enough that rules like this should not occur; the visibility of the rules 409 // enough that rules like this should not occur; the visibility of the rules
385 // system should allow us to design a system that is simple enough to explain 410 // system should allow us to design a system that is simple enough to explain
386 // yet powerful enough to encapsulate all the messages we want to display. 411 // yet powerful enough to encapsulate all the messages we want to display.
387 ChromePermissionMessageRule rules_arr[] = { 412 ChromePermissionMessageRule rules_arr[] = {
388 // Full access permission messages. 413 // Full access permission messages.
389 {IDS_EXTENSION_PROMPT_WARNING_DEBUGGER, {APIPermission::kDebugger}, {}}, 414 {IDS_EXTENSION_PROMPT_WARNING_DEBUGGER, {APIPermission::kDebugger}, {}},
390 {IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS, 415 {IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS,
391 {APIPermission::kPlugin}, 416 {APIPermission::kPlugin},
392 // TODO(treib): Add the other IDs implied by kFullAccess/kHostsAll. 417 {APIPermission::kDeclarativeWebRequest, APIPermission::kFavicon,
393 {APIPermission::kFullAccess, APIPermission::kHostsAll, 418 APIPermission::kFullAccess, APIPermission::kHostsAll,
394 APIPermission::kHostsAllReadOnly, APIPermission::kDeclarativeWebRequest, 419 APIPermission::kHostsAllReadOnly, APIPermission::kProcesses,
395 APIPermission::kTopSites, APIPermission::kTab}}, 420 APIPermission::kTab, APIPermission::kTopSites,
421 APIPermission::kWebNavigation}},
396 {IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS, 422 {IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS,
397 {APIPermission::kFullAccess}, 423 {APIPermission::kFullAccess},
398 // TODO(treib): Add the other IDs implied by kHostsAll. 424 {APIPermission::kDeclarativeWebRequest, APIPermission::kFavicon,
399 {APIPermission::kHostsAll, APIPermission::kHostsAllReadOnly, 425 APIPermission::kHostsAll, APIPermission::kHostsAllReadOnly,
400 APIPermission::kDeclarativeWebRequest, APIPermission::kTopSites, 426 APIPermission::kProcesses, APIPermission::kTab,
401 APIPermission::kTab}}, 427 APIPermission::kTopSites, APIPermission::kWebNavigation}},
402 428
403 // Hosts permission messages. 429 // Hosts permission messages.
404 // Full host access already allows DeclarativeWebRequest, reading the list 430 // Full host access already allows DeclarativeWebRequest, reading the list
405 // of most frequently visited sites, and tab access. 431 // of most frequently visited sites, and tab access.
406 // The warning message for declarativeWebRequest permissions speaks about 432 // The warning message for declarativeWebRequest permissions speaks about
407 // blocking parts of pages, which is a subset of what the "<all_urls>" 433 // blocking parts of pages, which is a subset of what the "<all_urls>"
408 // access allows. Therefore we display only the "<all_urls>" warning 434 // access allows. Therefore we display only the "<all_urls>" warning
409 // message if both permissions are required. 435 // message if both permissions are required.
410 {IDS_EXTENSION_PROMPT_WARNING_ALL_HOSTS, 436 {IDS_EXTENSION_PROMPT_WARNING_ALL_HOSTS,
411 {APIPermission::kHostsAll}, 437 {APIPermission::kHostsAll},
412 // TODO(treib): Add kHostReadWrite and kHostReadOnly.
413 {APIPermission::kDeclarativeWebRequest, APIPermission::kFavicon, 438 {APIPermission::kDeclarativeWebRequest, APIPermission::kFavicon,
414 APIPermission::kHostsAllReadOnly, APIPermission::kProcesses, 439 APIPermission::kHostsAllReadOnly, APIPermission::kHostReadOnly,
440 APIPermission::kHostReadWrite, APIPermission::kProcesses,
415 APIPermission::kTab, APIPermission::kTopSites, 441 APIPermission::kTab, APIPermission::kTopSites,
416 APIPermission::kWebNavigation}}, 442 APIPermission::kWebNavigation}},
417 {IDS_EXTENSION_PROMPT_WARNING_ALL_HOSTS_READ_ONLY, 443 {IDS_EXTENSION_PROMPT_WARNING_ALL_HOSTS_READ_ONLY,
418 {APIPermission::kHostsAllReadOnly}, 444 {APIPermission::kHostsAllReadOnly},
419 // TODO(treib): Add kHostReadOnly. 445 {APIPermission::kFavicon, APIPermission::kHostReadOnly,
420 {APIPermission::kFavicon, APIPermission::kProcesses, APIPermission::kTab, 446 APIPermission::kProcesses, APIPermission::kTab,
421 APIPermission::kTopSites, APIPermission::kWebNavigation}}, 447 APIPermission::kTopSites, APIPermission::kWebNavigation}},
422 448
449 {new CommaSeparatedListFormatter(IDS_EXTENSION_PROMPT_WARNING_1_HOST,
450 IDS_EXTENSION_PROMPT_WARNING_2_HOSTS,
451 IDS_EXTENSION_PROMPT_WARNING_3_HOSTS,
452 IDS_EXTENSION_PROMPT_WARNING_HOSTS_LIST),
453 {APIPermission::kHostReadWrite},
454 {}},
423 {new CommaSeparatedListFormatter( 455 {new CommaSeparatedListFormatter(
424 IDS_EXTENSION_PROMPT_WARNING_1_HOST_READ_ONLY, 456 IDS_EXTENSION_PROMPT_WARNING_1_HOST_READ_ONLY,
425 IDS_EXTENSION_PROMPT_WARNING_2_HOSTS_READ_ONLY, 457 IDS_EXTENSION_PROMPT_WARNING_2_HOSTS_READ_ONLY,
426 IDS_EXTENSION_PROMPT_WARNING_3_HOSTS_READ_ONLY, 458 IDS_EXTENSION_PROMPT_WARNING_3_HOSTS_READ_ONLY,
427 IDS_EXTENSION_PROMPT_WARNING_HOSTS_LIST_READ_ONLY), 459 IDS_EXTENSION_PROMPT_WARNING_HOSTS_LIST_READ_ONLY),
428 {APIPermission::kHostReadOnly}, 460 {APIPermission::kHostReadOnly},
429 {}}, 461 {}},
430 {new CommaSeparatedListFormatter(IDS_EXTENSION_PROMPT_WARNING_1_HOST,
431 IDS_EXTENSION_PROMPT_WARNING_2_HOSTS,
432 IDS_EXTENSION_PROMPT_WARNING_3_HOSTS,
433 IDS_EXTENSION_PROMPT_WARNING_HOSTS_LIST),
434 {APIPermission::kHostReadWrite},
435 {}},
436 462
437 // History-related permission messages. 463 // History-related permission messages.
438 // History already allows reading favicons, tab access and accessing the 464 // History already allows reading favicons, tab access and accessing the
439 // list of most frequently visited sites. 465 // list of most frequently visited sites.
440 {IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE_AND_SESSIONS, 466 {IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE_AND_SESSIONS,
441 {APIPermission::kSessions, APIPermission::kHistory}, 467 {APIPermission::kHistory, APIPermission::kSessions},
442 {APIPermission::kFavicon, APIPermission::kProcesses, APIPermission::kTab, 468 {APIPermission::kFavicon, APIPermission::kProcesses, APIPermission::kTab,
443 APIPermission::kTopSites, APIPermission::kWebNavigation}}, 469 APIPermission::kTopSites, APIPermission::kWebNavigation}},
444 {IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ_AND_SESSIONS,
445 {APIPermission::kSessions, APIPermission::kTab},
446 {APIPermission::kFavicon, APIPermission::kProcesses,
447 APIPermission::kTopSites, APIPermission::kWebNavigation}},
448 {IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE, 470 {IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE,
449 {APIPermission::kHistory}, 471 {APIPermission::kHistory},
450 {APIPermission::kFavicon, APIPermission::kProcesses, APIPermission::kTab, 472 {APIPermission::kFavicon, APIPermission::kProcesses, APIPermission::kTab,
451 APIPermission::kTopSites, APIPermission::kWebNavigation}}, 473 APIPermission::kTopSites, APIPermission::kWebNavigation}},
474 {IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ_AND_SESSIONS,
475 {APIPermission::kTab, APIPermission::kSessions},
476 {APIPermission::kFavicon, APIPermission::kProcesses,
477 APIPermission::kTopSites, APIPermission::kWebNavigation}},
478 {IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ_AND_SESSIONS,
479 {APIPermission::kProcesses, APIPermission::kSessions},
Devlin 2015/09/01 16:08:51 See comment on the other CL - I think I was wrong
Devlin 2015/09/01 16:09:53 Aaaaand, nevermind. :)
480 {APIPermission::kFavicon, APIPermission::kTopSites,
481 APIPermission::kWebNavigation}},
482 {IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ_AND_SESSIONS,
483 {APIPermission::kWebNavigation, APIPermission::kSessions},
484 {APIPermission::kFavicon, APIPermission::kTopSites}},
452 {IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ, 485 {IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ,
453 {APIPermission::kTab}, 486 {APIPermission::kTab},
454 {APIPermission::kFavicon, APIPermission::kProcesses, 487 {APIPermission::kFavicon, APIPermission::kProcesses,
455 APIPermission::kTopSites, APIPermission::kWebNavigation}}, 488 APIPermission::kTopSites, APIPermission::kWebNavigation}},
456 // TODO(treib): Should we have _AND_SESSIONS versions of these 2 as well?
457 {IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ, 489 {IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ,
458 {APIPermission::kProcesses}, 490 {APIPermission::kProcesses},
459 {}}, 491 {APIPermission::kFavicon, APIPermission::kTopSites,
492 APIPermission::kWebNavigation}},
460 {IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ, 493 {IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ,
461 {APIPermission::kWebNavigation}, 494 {APIPermission::kWebNavigation},
462 {}}, 495 {APIPermission::kFavicon, APIPermission::kTopSites}},
463 {IDS_EXTENSION_PROMPT_WARNING_FAVICON, {APIPermission::kFavicon}, {}}, 496 {IDS_EXTENSION_PROMPT_WARNING_FAVICON, {APIPermission::kFavicon}, {}},
464 {IDS_EXTENSION_PROMPT_WARNING_TOPSITES, {APIPermission::kTopSites}, {}}, 497 {IDS_EXTENSION_PROMPT_WARNING_TOPSITES, {APIPermission::kTopSites}, {}},
498
465 {IDS_EXTENSION_PROMPT_WARNING_DECLARATIVE_WEB_REQUEST, 499 {IDS_EXTENSION_PROMPT_WARNING_DECLARATIVE_WEB_REQUEST,
466 {APIPermission::kDeclarativeWebRequest}, 500 {APIPermission::kDeclarativeWebRequest},
467 {}}, 501 {}},
468 502
469 // Messages generated by the sockets permission. 503 // Messages generated by the sockets permission.
470 {IDS_EXTENSION_PROMPT_WARNING_SOCKET_ANY_HOST, 504 {IDS_EXTENSION_PROMPT_WARNING_SOCKET_ANY_HOST,
471 {APIPermission::kSocketAnyHost}, 505 {APIPermission::kSocketAnyHost},
472 // TODO(treib): Add kSocketDomainHosts and kSocketSpecificHosts. 506 {APIPermission::kSocketDomainHosts,
473 {}}, 507 APIPermission::kSocketSpecificHosts}},
474 {new SpaceSeparatedListFormatter( 508 {new SpaceSeparatedListFormatter(
475 IDS_EXTENSION_PROMPT_WARNING_SOCKET_HOSTS_IN_DOMAIN, 509 IDS_EXTENSION_PROMPT_WARNING_SOCKET_HOSTS_IN_DOMAIN,
476 IDS_EXTENSION_PROMPT_WARNING_SOCKET_HOSTS_IN_DOMAINS), 510 IDS_EXTENSION_PROMPT_WARNING_SOCKET_HOSTS_IN_DOMAINS),
477 {APIPermission::kSocketDomainHosts}, 511 {APIPermission::kSocketDomainHosts},
478 {}}, 512 {}},
479 {new SpaceSeparatedListFormatter( 513 {new SpaceSeparatedListFormatter(
480 IDS_EXTENSION_PROMPT_WARNING_SOCKET_SPECIFIC_HOST, 514 IDS_EXTENSION_PROMPT_WARNING_SOCKET_SPECIFIC_HOST,
481 IDS_EXTENSION_PROMPT_WARNING_SOCKET_SPECIFIC_HOSTS), 515 IDS_EXTENSION_PROMPT_WARNING_SOCKET_SPECIFIC_HOSTS),
482 {APIPermission::kSocketSpecificHosts}, 516 {APIPermission::kSocketSpecificHosts},
483 {}}, 517 {}},
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
519 {APIPermission::kAccessibilityFeaturesModify, 553 {APIPermission::kAccessibilityFeaturesModify,
520 APIPermission::kAccessibilityFeaturesRead}, 554 APIPermission::kAccessibilityFeaturesRead},
521 {}}, 555 {}},
522 {IDS_EXTENSION_PROMPT_WARNING_ACCESSIBILITY_FEATURES_MODIFY, 556 {IDS_EXTENSION_PROMPT_WARNING_ACCESSIBILITY_FEATURES_MODIFY,
523 {APIPermission::kAccessibilityFeaturesModify}, 557 {APIPermission::kAccessibilityFeaturesModify},
524 {}}, 558 {}},
525 {IDS_EXTENSION_PROMPT_WARNING_ACCESSIBILITY_FEATURES_READ, 559 {IDS_EXTENSION_PROMPT_WARNING_ACCESSIBILITY_FEATURES_READ,
526 {APIPermission::kAccessibilityFeaturesRead}, 560 {APIPermission::kAccessibilityFeaturesRead},
527 {}}, 561 {}},
528 562
529 // TODO(sashab): Add the missing combinations of media galleries 563 // Media galleries permissions. We don't have strings for every possible
530 // permissions so a valid permission is generated for all combinations. 564 // combination, e.g. we don't bother with a special string for "write, but
565 // not read" - just show the "read and write" string instead, etc.
531 {IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_WRITE_DELETE, 566 {IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_WRITE_DELETE,
532 {APIPermission::kMediaGalleriesAllGalleriesCopyTo, 567 {APIPermission::kMediaGalleriesAllGalleriesCopyTo,
533 APIPermission::kMediaGalleriesAllGalleriesDelete, 568 APIPermission::kMediaGalleriesAllGalleriesDelete},
534 APIPermission::kMediaGalleriesAllGalleriesRead}, 569 {APIPermission::kMediaGalleriesAllGalleriesRead}},
535 {}},
536 {IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_WRITE, 570 {IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_WRITE,
537 {APIPermission::kMediaGalleriesAllGalleriesCopyTo, 571 {APIPermission::kMediaGalleriesAllGalleriesCopyTo},
538 APIPermission::kMediaGalleriesAllGalleriesRead}, 572 {APIPermission::kMediaGalleriesAllGalleriesRead}},
539 {}},
540 {IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_DELETE, 573 {IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_DELETE,
541 {APIPermission::kMediaGalleriesAllGalleriesDelete, 574 {APIPermission::kMediaGalleriesAllGalleriesDelete},
542 APIPermission::kMediaGalleriesAllGalleriesRead}, 575 {APIPermission::kMediaGalleriesAllGalleriesRead}},
543 {}},
544 {IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ, 576 {IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ,
545 {APIPermission::kMediaGalleriesAllGalleriesRead}, 577 {APIPermission::kMediaGalleriesAllGalleriesRead},
546 {}}, 578 {}},
547 579
548 // The permission string for "fileSystem" is only shown when 580 // The permission string for "fileSystem" is only shown when
549 // "write" or "directory" is present. Read-only access is only 581 // "write" or "directory" is present. Read-only access is only
550 // granted after the user has been shown a file or directory 582 // granted after the user has been shown a file or directory
551 // chooser dialog and selected a file or directory. Selecting 583 // chooser dialog and selected a file or directory. Selecting
552 // the file or directory is considered consent to read it. 584 // the file or directory is considered consent to read it.
553 {IDS_EXTENSION_PROMPT_WARNING_FILE_SYSTEM_WRITE_DIRECTORY, 585 {IDS_EXTENSION_PROMPT_WARNING_FILE_SYSTEM_WRITE_DIRECTORY,
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
622 {APIPermission::kContentSettings}, 654 {APIPermission::kContentSettings},
623 {}}, 655 {}},
624 {IDS_EXTENSION_PROMPT_WARNING_COPRESENCE, 656 {IDS_EXTENSION_PROMPT_WARNING_COPRESENCE,
625 {APIPermission::kCopresence}, 657 {APIPermission::kCopresence},
626 {}}, 658 {}},
627 {IDS_EXTENSION_PROMPT_WARNING_DOCUMENT_SCAN, 659 {IDS_EXTENSION_PROMPT_WARNING_DOCUMENT_SCAN,
628 {APIPermission::kDocumentScan}, 660 {APIPermission::kDocumentScan},
629 {}}, 661 {}},
630 {IDS_EXTENSION_PROMPT_WARNING_INTERCEPT_ALL_KEYS, 662 {IDS_EXTENSION_PROMPT_WARNING_INTERCEPT_ALL_KEYS,
631 {APIPermission::kInterceptAllKeys}, 663 {APIPermission::kInterceptAllKeys},
632 {}}, // TODO(treib): This should probably suppress kInput. 664 {APIPermission::kInput}},
633 {IDS_EXTENSION_PROMPT_WARNING_INPUT, {APIPermission::kInput}, {}}, 665 {IDS_EXTENSION_PROMPT_WARNING_INPUT, {APIPermission::kInput}, {}},
634 {IDS_EXTENSION_PROMPT_WARNING_MANAGEMENT, 666 {IDS_EXTENSION_PROMPT_WARNING_MANAGEMENT,
635 {APIPermission::kManagement}, 667 {APIPermission::kManagement},
636 {}}, 668 {}},
637 {IDS_EXTENSION_PROMPT_WARNING_MDNS, {APIPermission::kMDns}, {}}, 669 {IDS_EXTENSION_PROMPT_WARNING_MDNS, {APIPermission::kMDns}, {}},
638 {IDS_EXTENSION_PROMPT_WARNING_NATIVE_MESSAGING, 670 {IDS_EXTENSION_PROMPT_WARNING_NATIVE_MESSAGING,
639 {APIPermission::kNativeMessaging}, 671 {APIPermission::kNativeMessaging},
640 {}}, 672 {}},
641 {IDS_EXTENSION_PROMPT_WARNING_PRIVACY, {APIPermission::kPrivacy}, {}}, 673 {IDS_EXTENSION_PROMPT_WARNING_PRIVACY, {APIPermission::kPrivacy}, {}},
642 {IDS_EXTENSION_PROMPT_WARNING_SIGNED_IN_DEVICES, 674 {IDS_EXTENSION_PROMPT_WARNING_SIGNED_IN_DEVICES,
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
680 {IDS_EXTENSION_PROMPT_WARNING_USERS_PRIVATE, 712 {IDS_EXTENSION_PROMPT_WARNING_USERS_PRIVATE,
681 {APIPermission::kUsersPrivate}, 713 {APIPermission::kUsersPrivate},
682 {}}, 714 {}},
683 }; 715 };
684 716
685 return std::vector<ChromePermissionMessageRule>( 717 return std::vector<ChromePermissionMessageRule>(
686 rules_arr, rules_arr + arraysize(rules_arr)); 718 rules_arr, rules_arr + arraysize(rules_arr));
687 } 719 }
688 720
689 } // namespace extensions 721 } // namespace extensions
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698