<!DOCTYPE html>
<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-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>
