<!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=/feature-policy/resources/featurepolicy.js></script>
  <script src=/feature-policy/resources/picture-in-picture.js></script>
  <script>
  'use strict';
  const same_origin_src = '/feature-policy/resources/feature-policy-picture-in-picture.html';
  const cross_origin_src = 'https://{{domains[www]}}:{{ports[https][0]}}' +
    same_origin_src;
  const header = 'Default "picture-in-picture" feature policy [*]';

  async_pip_test(t => {
    isPictureInPictureAllowed().then(t.step_func_done((result) => {
      assert_true(result);
    }));
  }, header + ' allows the top-level document.');

  async_pip_test(t => {
    test_feature_availability('picture-in-picture', t, same_origin_src,
        expect_feature_available_default);
  }, header + ' allows same-origin iframes.');

  async_pip_test(t => {
    test_feature_availability('picture-in-picture', t, cross_origin_src,
        expect_feature_available_default);
  }, header + ' allows cross-origin iframes.');

  </script>
</body>
