tree: cee30c36cce24662c1e78482becd1b18e092c403
  1. experimental-features/
  2. reporting/
  3. resources/
  4. bluetooth-allowed-by-permissions-policy-attribute-redirect-on-load.https.sub.html
  5. bluetooth-allowed-by-permissions-policy-attribute.https.sub.html
  6. bluetooth-allowed-by-permissions-policy.https.sub.html
  7. bluetooth-allowed-by-permissions-policy.https.sub.html.headers
  8. bluetooth-default-permissions-policy.https.sub.html
  9. bluetooth-disabled-by-permissions-policy.https.sub.html
  10. bluetooth-disabled-by-permissions-policy.https.sub.html.headers
  11. historical-feature-policy-header.html
  12. historical-feature-policy-header.html.headers
  13. historical.html
  14. historical.html.headers
  15. idlharness.window.js
  16. META.yml
  17. navigate-to-blob.sub.html
  18. payment-allowed-by-permissions-policy-attribute-redirect-on-load.https.sub.html
  19. payment-allowed-by-permissions-policy-attribute.https.sub.html
  20. payment-allowed-by-permissions-policy.https.sub.html
  21. payment-allowed-by-permissions-policy.https.sub.html.headers
  22. payment-default-permissions-policy.https.sub.html
  23. payment-disabled-by-permissions-policy.https.sub.html
  24. payment-disabled-by-permissions-policy.https.sub.html.headers
  25. payment-extension-allowed-by-permissions-policy-attribute.https.sub.html
  26. payment-supported-by-permissions-policy.tentative.html
  27. permissions-policy-frame-policy-allowed-for-all.https.sub.html
  28. permissions-policy-frame-policy-allowed-for-all.https.sub.html.sub.headers
  29. permissions-policy-frame-policy-allowed-for-self.https.sub.html
  30. permissions-policy-frame-policy-allowed-for-self.https.sub.html.sub.headers
  31. permissions-policy-frame-policy-allowed-for-some-override.https.sub.html
  32. permissions-policy-frame-policy-allowed-for-some-override.https.sub.html.sub.headers
  33. permissions-policy-frame-policy-allowed-for-some.https.sub.html
  34. permissions-policy-frame-policy-allowed-for-some.https.sub.html.sub.headers
  35. permissions-policy-frame-policy-disallowed-for-all.https.sub.html
  36. permissions-policy-frame-policy-disallowed-for-all.https.sub.html.sub.headers
  37. permissions-policy-frame-policy-timing-iframe-camera.https.sub.html
  38. permissions-policy-frame-policy-timing.https.sub.html
  39. permissions-policy-header-policy-allowed-for-all.https.sub.html
  40. permissions-policy-header-policy-allowed-for-all.https.sub.html.sub.headers
  41. permissions-policy-header-policy-allowed-for-malformed-wildcard.https.sub.html
  42. permissions-policy-header-policy-allowed-for-malformed-wildcard.https.sub.html.sub.headers
  43. permissions-policy-header-policy-allowed-for-self.https.sub.html
  44. permissions-policy-header-policy-allowed-for-self.https.sub.html.sub.headers
  45. permissions-policy-header-policy-allowed-for-some.https.sub.html
  46. permissions-policy-header-policy-allowed-for-some.https.sub.html.sub.headers
  47. permissions-policy-header-policy-allowed-for-wildcard.https.sub.html
  48. permissions-policy-header-policy-allowed-for-wildcard.https.sub.html.sub.headers
  49. permissions-policy-header-policy-declined.https.sub.html
  50. permissions-policy-header-policy-declined.https.sub.html.sub.headers
  51. permissions-policy-header-policy-disallowed-for-all.https.sub.html
  52. permissions-policy-header-policy-disallowed-for-all.https.sub.html.sub.headers
  53. permissions-policy-javascript-url-frame-policy.https.html
  54. permissions-policy-nested-header-policy-allowed-for-all.https.sub.html
  55. permissions-policy-nested-header-policy-allowed-for-all.https.sub.html.sub.headers
  56. permissions-policy-nested-header-policy-allowed-for-self.https.sub.html
  57. permissions-policy-nested-header-policy-allowed-for-self.https.sub.html.sub.headers
  58. permissions-policy-nested-header-policy-disallowed-for-all.https.sub.html
  59. permissions-policy-nested-header-policy-disallowed-for-all.https.sub.html.sub.headers
  60. permissions-policy-opaque-origin-history.https.html
  61. permissions-policy-opaque-origin.https.html
  62. picture-in-picture-allowed-by-permissions-policy-attribute-redirect-on-load.https.sub.html
  63. picture-in-picture-allowed-by-permissions-policy-attribute.https.sub.html
  64. picture-in-picture-allowed-by-permissions-policy.https.sub.html
  65. picture-in-picture-allowed-by-permissions-policy.https.sub.html.headers
  66. picture-in-picture-default-permissions-policy.https.sub.html
  67. picture-in-picture-disabled-by-permissions-policy.https.sub.html
  68. picture-in-picture-disabled-by-permissions-policy.https.sub.html.headers
  69. picture-in-picture-supported-by-permissions-policy.html
  70. policy-extends-to-sandbox.html
  71. private-state-token-issue-allowed-by-permissions-policy-attribute.tentative.https.sub.html
  72. private-state-token-issue-disabled-by-permissions-policy.tentative.https.sub.html
  73. private-state-token-issue-disabled-by-permissions-policy.tentative.https.sub.html.headers
  74. private-state-token-issue-enabled-by-permissions-policy.tentative.https.sub.html
  75. private-state-token-issue-enabled-by-permissions-policy.tentative.https.sub.html.headers
  76. private-state-token-issue-supported-by-permissions-policy.tentative.html
  77. README.md
  78. speaker-selection-allowed-by-permissions-policy.https.sub.html
  79. speaker-selection-allowed-by-permissions-policy.https.sub.html.headers
  80. speaker-selection-disabled-by-permissions-policy.https.sub.html
  81. speaker-selection-disabled-by-permissions-policy.https.sub.html.headers
  82. WEB_FEATURES.yml
permissions-policy/README.md

Permissions Policy Guide

How to Test a New Feature with permissions policy

This directory contains a framework to test features with permissions policy.

When adding a new feature to permissions policy, the following cases should be tested:

  • feature enabled by header policy [HTTP tests]
    • test when feature is enabled by permissions policy HTTP header;
  • feature disabled by header policy [HTTP tests]
    • test when feature is disabled by permissions policy HTTP header;
  • feature enabled on self origin by header policy [HTTP tests]
    • test when feature is enabled only on self origin by permissions policy HTTP header.
  • feature allowed by container policy (iframe “allow” attribute);
    • test when feature is enabled by iframe “allow” attribute on self and cross origins.
  • feature allowed by container policy, redirect on load.
    • test when feature is enabled by iframe “allow” attribute when the iframe is being redirected to a new origin upon loading

How to Use the Test Framework

Use test_feature_availability() defined in /permissions-policy/resources/permissions-policy.js. Please refer to the comments in /permissions-policy/resources/permissions-policy.js for how this function works.

How to Write Header Policy Tests

HTTP tests are used to test features with header policy.

  • Define the header policy in <feature-name>-<enabled | disabled | enabled-on-self-origin>-by-permissions-policy.https.sub.html.headers. Example:

    Permissions-Policy: feature-name=*

  • In <feature-name>-<enabled | disabled | enabled-on-self-origin>-by-permissions-policy.https.sub.html:

  • test if feature is enabled / disabled in the main frame;

  • test if feature is enabled / disabled in a same-origin iframe;

  • test if feature is enabled / disabled in a cross-origin iframe.

Examples: /permissions-policy/payment-disabled-by-permissions-policy.https.sub.html /permissions-policy/payment-disabled-by-permissions-policy.https.sub.html.headers

How to Write Container Policy Tests

Simply use test_feature_availability() with the optional argument feature_name specified to test if:

  • feature is enabled / disabled in a same-origin iframe;
  • feature is enabled / disabled in a cross-origin iframe.

Example: /permissions-policy/payment-allowed-by-permissions-policy-attribute.https.sub.html

How to Write Container Policy Tests with Redirect

Similar to the section above, append /permissions-policy/resources/redirect-on-load.html# to the argument src passed to test_feature_availability().

Example: /permissions-policy/payment-allowed-by-permissions-policy-attribute-redirect-on-load.https.sub.html