<!DOCTYPE html>
<meta charset="utf-8">
<title>Test Sample API when deprecation trial is disabled, in insecure context</title>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="../resources/get-host-info.js"></script>
<script src="resources/origintrials.js"></script>
<script>

  if (window.location.origin != get_host_info().UNAUTHENTICATED_ORIGIN) {
    window.location = get_host_info().UNAUTHENTICATED_ORIGIN +
      window.location.pathname;
  } else {
    // The deprecation trial is not enabled, as no token is provided for any
    // trial.
    expect_failure_deprecation();
  }
</script>
