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 "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 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
244 permissions, submessages); | 244 permissions, submessages); |
245 } | 245 } |
246 | 246 |
247 DISALLOW_COPY_AND_ASSIGN(USBDevicesFormatter); | 247 DISALLOW_COPY_AND_ASSIGN(USBDevicesFormatter); |
248 }; | 248 }; |
249 | 249 |
250 } // namespace | 250 } // namespace |
251 | 251 |
252 // Convenience constructors to allow inline initialization of the permission | 252 // Convenience constructors to allow inline initialization of the permission |
253 // ID sets. | 253 // ID sets. |
254 // TODO(treib): Once we're allowed to use uniform initialization (and | |
255 // std::initializer_list), get rid of this helper. | |
254 class ChromePermissionMessageRule::PermissionIDSetInitializer | 256 class ChromePermissionMessageRule::PermissionIDSetInitializer |
255 : public std::set<APIPermission::ID> { | 257 : public std::set<APIPermission::ID> { |
256 public: | 258 public: |
257 PermissionIDSetInitializer() {} | 259 template <typename... IDs> |
258 | 260 PermissionIDSetInitializer(IDs... ids) { |
259 // Don't make the constructor explicit to make the usage convenient. | 261 ExpandHelper(insert(ids)...); |
260 PermissionIDSetInitializer(APIPermission::ID a) { // NOLINT(runtime/explicit) | |
261 insert(a); | |
262 } | |
263 | |
264 PermissionIDSetInitializer(APIPermission::ID a, APIPermission::ID b) | |
265 : PermissionIDSetInitializer(a) { | |
266 insert(b); | |
267 } | |
268 | |
269 PermissionIDSetInitializer(APIPermission::ID a, | |
270 APIPermission::ID b, | |
271 APIPermission::ID c) | |
272 : PermissionIDSetInitializer(a, b) { | |
273 insert(c); | |
274 } | |
275 | |
276 PermissionIDSetInitializer(APIPermission::ID a, | |
277 APIPermission::ID b, | |
278 APIPermission::ID c, | |
279 APIPermission::ID d) | |
280 : PermissionIDSetInitializer(a, b, c) { | |
281 insert(d); | |
282 } | |
283 | |
284 PermissionIDSetInitializer(APIPermission::ID a, | |
285 APIPermission::ID b, | |
286 APIPermission::ID c, | |
287 APIPermission::ID d, | |
288 APIPermission::ID e) | |
289 : PermissionIDSetInitializer(a, b, c, d) { | |
290 insert(e); | |
291 } | |
292 | |
293 PermissionIDSetInitializer(APIPermission::ID a, | |
294 APIPermission::ID b, | |
295 APIPermission::ID c, | |
296 APIPermission::ID d, | |
297 APIPermission::ID e, | |
298 APIPermission::ID f) | |
299 : PermissionIDSetInitializer(a, b, c, d, e) { | |
300 insert(f); | |
301 } | |
302 | |
303 PermissionIDSetInitializer(APIPermission::ID a, | |
304 APIPermission::ID b, | |
305 APIPermission::ID c, | |
306 APIPermission::ID d, | |
307 APIPermission::ID e, | |
308 APIPermission::ID f, | |
309 APIPermission::ID g) | |
310 : PermissionIDSetInitializer(a, b, c, d, e, f) { | |
311 insert(g); | |
312 } | 262 } |
313 | 263 |
314 virtual ~PermissionIDSetInitializer() {} | 264 virtual ~PermissionIDSetInitializer() {} |
265 | |
266 private: | |
267 template <typename... Args> | |
268 void ExpandHelper(Args&&...) {} | |
Marc Treib
2015/09/02 10:43:55
This is the one slightly yucky part - we need this
| |
315 }; | 269 }; |
316 | 270 |
317 ChromePermissionMessageRule::ChromePermissionMessageRule( | 271 ChromePermissionMessageRule::ChromePermissionMessageRule( |
318 int message_id, | 272 int message_id, |
319 const PermissionIDSetInitializer& required, | 273 const PermissionIDSetInitializer& required, |
320 const PermissionIDSetInitializer& optional) | 274 const PermissionIDSetInitializer& optional) |
321 : ChromePermissionMessageRule( | 275 : ChromePermissionMessageRule( |
322 new DefaultPermissionMessageFormatter(message_id), | 276 new DefaultPermissionMessageFormatter(message_id), |
323 required, | 277 required, |
324 optional) {} | 278 optional) {} |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
382 // permission suppresses kTab, be careful to also add kTopSites and kFavicon | 336 // permission suppresses kTab, be careful to also add kTopSites and kFavicon |
383 // to the kHistory absorb list. Ideally, the rules system should be simple | 337 // 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 | 338 // 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 | 339 // 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. | 340 // yet powerful enough to encapsulate all the messages we want to display. |
387 ChromePermissionMessageRule rules_arr[] = { | 341 ChromePermissionMessageRule rules_arr[] = { |
388 // Full access permission messages. | 342 // Full access permission messages. |
389 {IDS_EXTENSION_PROMPT_WARNING_DEBUGGER, {APIPermission::kDebugger}, {}}, | 343 {IDS_EXTENSION_PROMPT_WARNING_DEBUGGER, {APIPermission::kDebugger}, {}}, |
390 {IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS, | 344 {IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS, |
391 {APIPermission::kPlugin}, | 345 {APIPermission::kPlugin}, |
392 // TODO(treib): Add the other IDs implied by kFullAccess/kHostsAll. | 346 {APIPermission::kDeclarativeWebRequest, APIPermission::kFavicon, |
393 {APIPermission::kFullAccess, APIPermission::kHostsAll, | 347 APIPermission::kFullAccess, APIPermission::kHostsAll, |
394 APIPermission::kHostsAllReadOnly, APIPermission::kDeclarativeWebRequest, | 348 APIPermission::kHostsAllReadOnly, APIPermission::kProcesses, |
395 APIPermission::kTopSites, APIPermission::kTab}}, | 349 APIPermission::kTab, APIPermission::kTopSites, |
350 APIPermission::kWebNavigation}}, | |
396 {IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS, | 351 {IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS, |
397 {APIPermission::kFullAccess}, | 352 {APIPermission::kFullAccess}, |
398 // TODO(treib): Add the other IDs implied by kHostsAll. | 353 {APIPermission::kDeclarativeWebRequest, APIPermission::kFavicon, |
399 {APIPermission::kHostsAll, APIPermission::kHostsAllReadOnly, | 354 APIPermission::kHostsAll, APIPermission::kHostsAllReadOnly, |
400 APIPermission::kDeclarativeWebRequest, APIPermission::kTopSites, | 355 APIPermission::kProcesses, APIPermission::kTab, |
401 APIPermission::kTab}}, | 356 APIPermission::kTopSites, APIPermission::kWebNavigation}}, |
402 | 357 |
403 // Hosts permission messages. | 358 // Hosts permission messages. |
404 // Full host access already allows DeclarativeWebRequest, reading the list | 359 // Full host access already allows DeclarativeWebRequest, reading the list |
405 // of most frequently visited sites, and tab access. | 360 // of most frequently visited sites, and tab access. |
406 // The warning message for declarativeWebRequest permissions speaks about | 361 // The warning message for declarativeWebRequest permissions speaks about |
407 // blocking parts of pages, which is a subset of what the "<all_urls>" | 362 // blocking parts of pages, which is a subset of what the "<all_urls>" |
408 // access allows. Therefore we display only the "<all_urls>" warning | 363 // access allows. Therefore we display only the "<all_urls>" warning |
409 // message if both permissions are required. | 364 // message if both permissions are required. |
410 {IDS_EXTENSION_PROMPT_WARNING_ALL_HOSTS, | 365 {IDS_EXTENSION_PROMPT_WARNING_ALL_HOSTS, |
411 {APIPermission::kHostsAll}, | 366 {APIPermission::kHostsAll}, |
412 // TODO(treib): Add kHostReadWrite and kHostReadOnly. | |
413 {APIPermission::kDeclarativeWebRequest, APIPermission::kFavicon, | 367 {APIPermission::kDeclarativeWebRequest, APIPermission::kFavicon, |
414 APIPermission::kHostsAllReadOnly, APIPermission::kProcesses, | 368 APIPermission::kHostsAllReadOnly, APIPermission::kHostReadOnly, |
369 APIPermission::kHostReadWrite, APIPermission::kProcesses, | |
415 APIPermission::kTab, APIPermission::kTopSites, | 370 APIPermission::kTab, APIPermission::kTopSites, |
416 APIPermission::kWebNavigation}}, | 371 APIPermission::kWebNavigation}}, |
417 {IDS_EXTENSION_PROMPT_WARNING_ALL_HOSTS_READ_ONLY, | 372 {IDS_EXTENSION_PROMPT_WARNING_ALL_HOSTS_READ_ONLY, |
418 {APIPermission::kHostsAllReadOnly}, | 373 {APIPermission::kHostsAllReadOnly}, |
419 // TODO(treib): Add kHostReadOnly. | 374 {APIPermission::kFavicon, APIPermission::kHostReadOnly, |
420 {APIPermission::kFavicon, APIPermission::kProcesses, APIPermission::kTab, | 375 APIPermission::kProcesses, APIPermission::kTab, |
421 APIPermission::kTopSites, APIPermission::kWebNavigation}}, | 376 APIPermission::kTopSites, APIPermission::kWebNavigation}}, |
422 | 377 |
378 {new CommaSeparatedListFormatter(IDS_EXTENSION_PROMPT_WARNING_1_HOST, | |
379 IDS_EXTENSION_PROMPT_WARNING_2_HOSTS, | |
380 IDS_EXTENSION_PROMPT_WARNING_3_HOSTS, | |
381 IDS_EXTENSION_PROMPT_WARNING_HOSTS_LIST), | |
382 {APIPermission::kHostReadWrite}, | |
383 {}}, | |
423 {new CommaSeparatedListFormatter( | 384 {new CommaSeparatedListFormatter( |
424 IDS_EXTENSION_PROMPT_WARNING_1_HOST_READ_ONLY, | 385 IDS_EXTENSION_PROMPT_WARNING_1_HOST_READ_ONLY, |
425 IDS_EXTENSION_PROMPT_WARNING_2_HOSTS_READ_ONLY, | 386 IDS_EXTENSION_PROMPT_WARNING_2_HOSTS_READ_ONLY, |
426 IDS_EXTENSION_PROMPT_WARNING_3_HOSTS_READ_ONLY, | 387 IDS_EXTENSION_PROMPT_WARNING_3_HOSTS_READ_ONLY, |
427 IDS_EXTENSION_PROMPT_WARNING_HOSTS_LIST_READ_ONLY), | 388 IDS_EXTENSION_PROMPT_WARNING_HOSTS_LIST_READ_ONLY), |
428 {APIPermission::kHostReadOnly}, | 389 {APIPermission::kHostReadOnly}, |
429 {}}, | 390 {}}, |
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 | 391 |
437 // History-related permission messages. | 392 // History-related permission messages. |
438 // History already allows reading favicons, tab access and accessing the | 393 // History already allows reading favicons, tab access and accessing the |
439 // list of most frequently visited sites. | 394 // list of most frequently visited sites. |
440 {IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE_AND_SESSIONS, | 395 {IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE_AND_SESSIONS, |
441 {APIPermission::kSessions, APIPermission::kHistory}, | 396 {APIPermission::kHistory, APIPermission::kSessions}, |
442 {APIPermission::kFavicon, APIPermission::kProcesses, APIPermission::kTab, | 397 {APIPermission::kFavicon, APIPermission::kProcesses, APIPermission::kTab, |
443 APIPermission::kTopSites, APIPermission::kWebNavigation}}, | 398 APIPermission::kTopSites, APIPermission::kWebNavigation}}, |
444 {IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ_AND_SESSIONS, | 399 {IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ_AND_SESSIONS, |
445 {APIPermission::kSessions, APIPermission::kTab}, | 400 {APIPermission::kTab, APIPermission::kSessions}, |
446 {APIPermission::kFavicon, APIPermission::kProcesses, | 401 {APIPermission::kFavicon, APIPermission::kProcesses, |
447 APIPermission::kTopSites, APIPermission::kWebNavigation}}, | 402 APIPermission::kTopSites, APIPermission::kWebNavigation}}, |
448 {IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE, | 403 {IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE, |
449 {APIPermission::kHistory}, | 404 {APIPermission::kHistory}, |
450 {APIPermission::kFavicon, APIPermission::kProcesses, APIPermission::kTab, | 405 {APIPermission::kFavicon, APIPermission::kProcesses, APIPermission::kTab, |
451 APIPermission::kTopSites, APIPermission::kWebNavigation}}, | 406 APIPermission::kTopSites, APIPermission::kWebNavigation}}, |
407 // Note: kSessions allows reading history from other devices only if kTab | |
408 // is also present. Therefore, there are no _AND_SESSIONS versions of | |
409 // the other rules that generate the HISTORY_READ warning. | |
452 {IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ, | 410 {IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ, |
453 {APIPermission::kTab}, | 411 {APIPermission::kTab}, |
454 {APIPermission::kFavicon, APIPermission::kProcesses, | 412 {APIPermission::kFavicon, APIPermission::kProcesses, |
455 APIPermission::kTopSites, APIPermission::kWebNavigation}}, | 413 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, | 414 {IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ, |
458 {APIPermission::kProcesses}, | 415 {APIPermission::kProcesses}, |
459 {}}, | 416 {APIPermission::kFavicon, APIPermission::kTopSites, |
417 APIPermission::kWebNavigation}}, | |
460 {IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ, | 418 {IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ, |
461 {APIPermission::kWebNavigation}, | 419 {APIPermission::kWebNavigation}, |
462 {}}, | 420 {APIPermission::kFavicon, APIPermission::kTopSites}}, |
463 {IDS_EXTENSION_PROMPT_WARNING_FAVICON, {APIPermission::kFavicon}, {}}, | 421 {IDS_EXTENSION_PROMPT_WARNING_FAVICON, {APIPermission::kFavicon}, {}}, |
464 {IDS_EXTENSION_PROMPT_WARNING_TOPSITES, {APIPermission::kTopSites}, {}}, | 422 {IDS_EXTENSION_PROMPT_WARNING_TOPSITES, {APIPermission::kTopSites}, {}}, |
423 | |
465 {IDS_EXTENSION_PROMPT_WARNING_DECLARATIVE_WEB_REQUEST, | 424 {IDS_EXTENSION_PROMPT_WARNING_DECLARATIVE_WEB_REQUEST, |
466 {APIPermission::kDeclarativeWebRequest}, | 425 {APIPermission::kDeclarativeWebRequest}, |
467 {}}, | 426 {}}, |
468 | 427 |
469 // Messages generated by the sockets permission. | 428 // Messages generated by the sockets permission. |
470 {IDS_EXTENSION_PROMPT_WARNING_SOCKET_ANY_HOST, | 429 {IDS_EXTENSION_PROMPT_WARNING_SOCKET_ANY_HOST, |
471 {APIPermission::kSocketAnyHost}, | 430 {APIPermission::kSocketAnyHost}, |
472 // TODO(treib): Add kSocketDomainHosts and kSocketSpecificHosts. | 431 {APIPermission::kSocketDomainHosts, |
473 {}}, | 432 APIPermission::kSocketSpecificHosts}}, |
474 {new SpaceSeparatedListFormatter( | 433 {new SpaceSeparatedListFormatter( |
475 IDS_EXTENSION_PROMPT_WARNING_SOCKET_HOSTS_IN_DOMAIN, | 434 IDS_EXTENSION_PROMPT_WARNING_SOCKET_HOSTS_IN_DOMAIN, |
476 IDS_EXTENSION_PROMPT_WARNING_SOCKET_HOSTS_IN_DOMAINS), | 435 IDS_EXTENSION_PROMPT_WARNING_SOCKET_HOSTS_IN_DOMAINS), |
477 {APIPermission::kSocketDomainHosts}, | 436 {APIPermission::kSocketDomainHosts}, |
478 {}}, | 437 {}}, |
479 {new SpaceSeparatedListFormatter( | 438 {new SpaceSeparatedListFormatter( |
480 IDS_EXTENSION_PROMPT_WARNING_SOCKET_SPECIFIC_HOST, | 439 IDS_EXTENSION_PROMPT_WARNING_SOCKET_SPECIFIC_HOST, |
481 IDS_EXTENSION_PROMPT_WARNING_SOCKET_SPECIFIC_HOSTS), | 440 IDS_EXTENSION_PROMPT_WARNING_SOCKET_SPECIFIC_HOSTS), |
482 {APIPermission::kSocketSpecificHosts}, | 441 {APIPermission::kSocketSpecificHosts}, |
483 {}}, | 442 {}}, |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
519 {APIPermission::kAccessibilityFeaturesModify, | 478 {APIPermission::kAccessibilityFeaturesModify, |
520 APIPermission::kAccessibilityFeaturesRead}, | 479 APIPermission::kAccessibilityFeaturesRead}, |
521 {}}, | 480 {}}, |
522 {IDS_EXTENSION_PROMPT_WARNING_ACCESSIBILITY_FEATURES_MODIFY, | 481 {IDS_EXTENSION_PROMPT_WARNING_ACCESSIBILITY_FEATURES_MODIFY, |
523 {APIPermission::kAccessibilityFeaturesModify}, | 482 {APIPermission::kAccessibilityFeaturesModify}, |
524 {}}, | 483 {}}, |
525 {IDS_EXTENSION_PROMPT_WARNING_ACCESSIBILITY_FEATURES_READ, | 484 {IDS_EXTENSION_PROMPT_WARNING_ACCESSIBILITY_FEATURES_READ, |
526 {APIPermission::kAccessibilityFeaturesRead}, | 485 {APIPermission::kAccessibilityFeaturesRead}, |
527 {}}, | 486 {}}, |
528 | 487 |
529 // TODO(sashab): Add the missing combinations of media galleries | 488 // Media galleries permissions. We don't have strings for every possible |
530 // permissions so a valid permission is generated for all combinations. | 489 // combination, e.g. we don't bother with a special string for "write, but |
490 // not read" - just show the "read and write" string instead, etc. | |
531 {IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_WRITE_DELETE, | 491 {IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_WRITE_DELETE, |
532 {APIPermission::kMediaGalleriesAllGalleriesCopyTo, | 492 {APIPermission::kMediaGalleriesAllGalleriesCopyTo, |
533 APIPermission::kMediaGalleriesAllGalleriesDelete, | 493 APIPermission::kMediaGalleriesAllGalleriesDelete}, |
534 APIPermission::kMediaGalleriesAllGalleriesRead}, | 494 {APIPermission::kMediaGalleriesAllGalleriesRead}}, |
535 {}}, | |
536 {IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_WRITE, | 495 {IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_WRITE, |
537 {APIPermission::kMediaGalleriesAllGalleriesCopyTo, | 496 {APIPermission::kMediaGalleriesAllGalleriesCopyTo}, |
538 APIPermission::kMediaGalleriesAllGalleriesRead}, | 497 {APIPermission::kMediaGalleriesAllGalleriesRead}}, |
539 {}}, | |
540 {IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_DELETE, | 498 {IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_DELETE, |
541 {APIPermission::kMediaGalleriesAllGalleriesDelete, | 499 {APIPermission::kMediaGalleriesAllGalleriesDelete}, |
542 APIPermission::kMediaGalleriesAllGalleriesRead}, | 500 {APIPermission::kMediaGalleriesAllGalleriesRead}}, |
543 {}}, | |
544 {IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ, | 501 {IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ, |
545 {APIPermission::kMediaGalleriesAllGalleriesRead}, | 502 {APIPermission::kMediaGalleriesAllGalleriesRead}, |
546 {}}, | 503 {}}, |
547 | 504 |
548 // The permission string for "fileSystem" is only shown when | 505 // The permission string for "fileSystem" is only shown when |
549 // "write" or "directory" is present. Read-only access is only | 506 // "write" or "directory" is present. Read-only access is only |
550 // granted after the user has been shown a file or directory | 507 // granted after the user has been shown a file or directory |
551 // chooser dialog and selected a file or directory. Selecting | 508 // chooser dialog and selected a file or directory. Selecting |
552 // the file or directory is considered consent to read it. | 509 // the file or directory is considered consent to read it. |
553 {IDS_EXTENSION_PROMPT_WARNING_FILE_SYSTEM_WRITE_DIRECTORY, | 510 {IDS_EXTENSION_PROMPT_WARNING_FILE_SYSTEM_WRITE_DIRECTORY, |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
622 {APIPermission::kContentSettings}, | 579 {APIPermission::kContentSettings}, |
623 {}}, | 580 {}}, |
624 {IDS_EXTENSION_PROMPT_WARNING_COPRESENCE, | 581 {IDS_EXTENSION_PROMPT_WARNING_COPRESENCE, |
625 {APIPermission::kCopresence}, | 582 {APIPermission::kCopresence}, |
626 {}}, | 583 {}}, |
627 {IDS_EXTENSION_PROMPT_WARNING_DOCUMENT_SCAN, | 584 {IDS_EXTENSION_PROMPT_WARNING_DOCUMENT_SCAN, |
628 {APIPermission::kDocumentScan}, | 585 {APIPermission::kDocumentScan}, |
629 {}}, | 586 {}}, |
630 {IDS_EXTENSION_PROMPT_WARNING_INTERCEPT_ALL_KEYS, | 587 {IDS_EXTENSION_PROMPT_WARNING_INTERCEPT_ALL_KEYS, |
631 {APIPermission::kInterceptAllKeys}, | 588 {APIPermission::kInterceptAllKeys}, |
632 {}}, // TODO(treib): This should probably suppress kInput. | 589 {APIPermission::kInput}}, |
633 {IDS_EXTENSION_PROMPT_WARNING_INPUT, {APIPermission::kInput}, {}}, | 590 {IDS_EXTENSION_PROMPT_WARNING_INPUT, {APIPermission::kInput}, {}}, |
634 {IDS_EXTENSION_PROMPT_WARNING_MANAGEMENT, | 591 {IDS_EXTENSION_PROMPT_WARNING_MANAGEMENT, |
635 {APIPermission::kManagement}, | 592 {APIPermission::kManagement}, |
636 {}}, | 593 {}}, |
637 {IDS_EXTENSION_PROMPT_WARNING_MDNS, {APIPermission::kMDns}, {}}, | 594 {IDS_EXTENSION_PROMPT_WARNING_MDNS, {APIPermission::kMDns}, {}}, |
638 {IDS_EXTENSION_PROMPT_WARNING_NATIVE_MESSAGING, | 595 {IDS_EXTENSION_PROMPT_WARNING_NATIVE_MESSAGING, |
639 {APIPermission::kNativeMessaging}, | 596 {APIPermission::kNativeMessaging}, |
640 {}}, | 597 {}}, |
641 {IDS_EXTENSION_PROMPT_WARNING_PRIVACY, {APIPermission::kPrivacy}, {}}, | 598 {IDS_EXTENSION_PROMPT_WARNING_PRIVACY, {APIPermission::kPrivacy}, {}}, |
642 {IDS_EXTENSION_PROMPT_WARNING_SIGNED_IN_DEVICES, | 599 {IDS_EXTENSION_PROMPT_WARNING_SIGNED_IN_DEVICES, |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
680 {IDS_EXTENSION_PROMPT_WARNING_USERS_PRIVATE, | 637 {IDS_EXTENSION_PROMPT_WARNING_USERS_PRIVATE, |
681 {APIPermission::kUsersPrivate}, | 638 {APIPermission::kUsersPrivate}, |
682 {}}, | 639 {}}, |
683 }; | 640 }; |
684 | 641 |
685 return std::vector<ChromePermissionMessageRule>( | 642 return std::vector<ChromePermissionMessageRule>( |
686 rules_arr, rules_arr + arraysize(rules_arr)); | 643 rules_arr, rules_arr + arraysize(rules_arr)); |
687 } | 644 } |
688 | 645 |
689 } // namespace extensions | 646 } // namespace extensions |
OLD | NEW |