blob: 77023b88d9e37d62a85d139ccc2567d1397c16bd [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_LOADER_FETCH_HTTPS_STATE_H_
#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_LOADER_FETCH_HTTPS_STATE_H_
#include "base/optional.h"
#include "third_party/blink/renderer/platform/platform_export.h"
namespace blink {
class SecurityOrigin;
// https://fetch.spec.whatwg.org/#concept-https-state-value
enum class HttpsState {
kNone,
// kDeprecated is not used.
kModern
};
// According to the Fetch spec, HTTPS state is set during fetch, e.g. to
// modern for https: or to request's client's HTTPS state for data:.
// In the Blink implementation however, HTTPS state is calculated from
// response URL's SecurityOrigin and optional |parent_https_state| (that
// represents request's client's HTTPS state) to emulate this behavior.
// TODO(https://crbug.com/880986): Implement HTTPS state in more
// spec-conformant way.
PLATFORM_EXPORT HttpsState CalculateHttpsState(
const SecurityOrigin*,
base::Optional<HttpsState> parent_https_state = base::nullopt);
} // namespace blink
#endif // THIRD_PARTY_BLINK_RENDERER_PLATFORM_LOADER_FETCH_HTTPS_STATE_H_