<!DOCTYPE html>
<title>Cache Storage On An Insecure Origin</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/get-host-info.js"></script>
<script>
if (window.location.origin != get_host_info().UNAUTHENTICATED_ORIGIN) {
    window.location = get_host_info().UNAUTHENTICATED_ORIGIN + window.location.pathname;
} else {
    if (window.testRunner)
        testRunner.overridePreference("WebKitStrictPowerfulFeatureRestrictions", true);

    test(t => {
        assert_false('caches' in window, 'window.caches should not be present');
    }, 'window.caches requires a secure context');
  }
</script>
