<!DOCTYPE html>
<body>
  <script src=/common/media.js></script>
  <script src=/resources/testharness.js></script>
  <script src=/resources/testharnessreport.js></script>
  <script src=/resources/testdriver.js></script>
  <script src=/resources/testdriver-vendor.js></script>
  <script src=/permissions-policy/resources/permissions-policy.js></script>
  <script src=/permissions-policy/resources/picture-in-picture.js></script>
  <script>
  'use strict';
  const same_origin_src = '/permissions-policy/resources/permissions-policy-picture-in-picture.html';
  const cross_origin_src = 'https://{{domains[www]}}:{{ports[https][0]}}' +
    same_origin_src;
  const feature_name = 'permissions policy "picture-in-picture"';
  const header = 'allow="picture-in-picture" attribute';

  async_pip_test(t => {
    test_feature_availability(
        'picture-in-picture', t, same_origin_src,
        expect_feature_available_default, 'picture-in-picture');
  }, feature_name + ' can be enabled in same-origin iframe using ' + header);

  async_pip_test(t => {
    test_feature_availability(
        'picture-in-picture', t, cross_origin_src,
        expect_feature_available_default, 'picture-in-picture');
  }, feature_name + ' can be enabled in cross-origin iframe using ' + header);
  </script>
</body>
