// 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_