chromium/chrome/browser/private_network_access/private_network_device_permission_context.h

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

#ifndef CHROME_BROWSER_PRIVATE_NETWORK_ACCESS_PRIVATE_NETWORK_DEVICE_PERMISSION_CONTEXT_H_
#define CHROME_BROWSER_PRIVATE_NETWORK_ACCESS_PRIVATE_NETWORK_DEVICE_PERMISSION_CONTEXT_H_

#include "base/containers/queue.h"
#include "base/observer_list.h"
#include "base/values.h"
#include "build/build_config.h"
#include "components/permissions/object_permission_context_base.h"
#include "content/public/browser/browser_context.h"
#include "mojo/public/cpp/bindings/associated_receiver.h"
#include "third_party/blink/public/mojom/private_network_device/private_network_device.mojom.h"
#include "url/origin.h"

class Profile;

const char kPrivateNetworkDeviceValidityHistogramName[] =;
const char kUserAcceptedPrivateNetworkDeviceHistogramName[] =;

// These values are logged to UMA. Entries should not be renumbered and numeric
// values should never be reused. Please keep in sync with
// "PrivateNetworkDeviceValidity" in
// src/tools/metrics/histograms/metadata/security/enums.xml.
enum class PrivateNetworkDeviceValidity {};

// These values are logged to UMA. Entries should not be renumbered and numeric
// values should never be reused. Please keep in sync with
// "NewAcceptedDeviceType" in
// src/tools/metrics/histograms/metadata/security/enums.xml.
enum class NewAcceptedDeviceType {};

// Manages the permissions for Private Network device objects. A Private Network
// device permission object consists of its id, name and IP address.
// The id is provided by the device in `Private-Network-Access-ID` preflight
// header. The name is provided by the device in `Private-Network-Access-Name`
// preflight header.
class PrivateNetworkDevicePermissionContext
    : public permissions::ObjectPermissionContextBase {};

#endif  // CHROME_BROWSER_PRIVATE_NETWORK_ACCESS_PRIVATE_NETWORK_DEVICE_PERMISSION_CONTEXT_H_