permission_set.mojom 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // Copyright 2021 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. module extensions.mojom;
  5. import "extensions/common/mojom/api_permission_id.mojom";
  6. import "extensions/common/mojom/url_pattern_set.mojom";
  7. import "mojo/public/mojom/base/values.mojom";
  8. // Mojo struct to represent extensions::APIPermission class that is to handle
  9. // some complex permissions.
  10. struct APIPermission {
  11. APIPermissionID id;
  12. mojo_base.mojom.Value? value;
  13. };
  14. // Mojo struct to represent extensions::APIPermissionSet class.
  15. struct APIPermissionSet {
  16. map<APIPermissionID, APIPermission> permission_map;
  17. };
  18. // Mojo struct to represent extensions::ManifestPermission class that represents
  19. // the custom behavior of a top-level manifest entry contributing to permission
  20. // messages and storage.
  21. struct ManifestPermission {
  22. string id;
  23. mojo_base.mojom.Value? value;
  24. };
  25. // Mojo struct to represent extensions::ManifestPermissionSet class.
  26. struct ManifestPermissionSet {
  27. map<string, ManifestPermission> permission_map;
  28. };
  29. // Mojo struct to represent an extensions::PermissionSet which encapsulates an
  30. // extension's permissions.
  31. struct PermissionSet {
  32. APIPermissionSet apis;
  33. ManifestPermissionSet manifest_permissions;
  34. URLPatternSet hosts; // explicit_hosts_
  35. URLPatternSet user_script_hosts; // scriptable_hosts_
  36. };