<!DOCTYPE html>
<meta http-equiv="Accept-CH"
      content="sec-ch-viewport-width, sec-ch-ua-reduced"/>
<meta http-equiv="Feature-Policy"
      content="ch-viewport-width *, ch-ua-reduced *"/>
<title>Client hints in fenced frames test</title>
<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="resources/utils.js"></script>
<script src="resources/client-hints-common.sub.js"></script>
<script src="/common/get-host-info.sub.js"></script>
<script src="/common/utils.js"></script>
<script src="/common/dispatcher/dispatcher.js"></script>
<script src="/resources/testdriver-actions.js"></script>
<body>
<script>
promise_test(async () => {
  const key = token();
  const url = generateURL('resources/client-hints-meta-inner.sub.https.html', [key]);
  const remote_url = getRemoteOriginURL(url);
  attachFencedFrame(remote_url);
  const result = JSON.parse(await nextValueFromServer(key));

  // We should not see client hints for the fenced frame root or subframes //
  // within the fenced frame tree due to the reject-all permission policy used by
  // fenced frames.
  const headers = ['root-fenced-frame-headers', 'iframe-headers'];
  const hints = [
    'sec-ch-viewport-width', 'sec-ch-ua-reduced', 'sec-ch-ua-mobile',
  ];
  headers.forEach(header => {
    hints.forEach(hint => {
      assert_equals(result[header][hint], '');
    });
  });
}, 'fenced frames not send client hints');
</script>
</body>
