// services/network/public/mojom/blocked_by_response_reason.mojom-blink-forward.h is auto generated by mojom_bindings_generator.py, do not edit

// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef SERVICES_NETWORK_PUBLIC_MOJOM_BLOCKED_BY_RESPONSE_REASON_MOJOM_BLINK_FORWARD_H_
#define SERVICES_NETWORK_PUBLIC_MOJOM_BLOCKED_BY_RESPONSE_REASON_MOJOM_BLINK_FORWARD_H_

#include <stdint.h>







#ifdef KYTHE_IS_RUNNING
#pragma kythe_inline_metadata "Metadata comment"
#endif



namespace network::mojom {

enum class BlockedByResponseReason : int32_t;


}  // network::mojom


namespace network::mojom::blink {
using BlockedByResponseReason = BlockedByResponseReason;



}  // network::mojom::blink

#endif  // SERVICES_NETWORK_PUBLIC_MOJOM_BLOCKED_BY_RESPONSE_REASON_MOJOM_BLINK_FORWARD_H_