<!DOCTYPE html>
<body>
  <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 = 'Feature-Policy header: picture-in-picture "none"';

  async_test(t => {
    isPictureInPictureAllowed().then(t.step_func_done((result) => {
      assert_false(result);
    }));
  }, header + ' disallows the top-level document.');

  async_test(t => {
    test_feature_availability('picture-in-picture', t, same_origin_src,
        expect_feature_unavailable_default);
  }, header + ' disallows same-origin iframes.');

  async_test(t => {
    test_feature_availability('picture-in-picture', t, cross_origin_src,
        expect_feature_unavailable_default);
  }, header + ' disallows cross-origin iframes.');
  </script>
</body>
