/* * Copyright (c) 2026, Niccolo Antonelli-Dziri * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include namespace Web::PermissionsAPI { bool is_permission_supported(String const&); Bindings::PermissionState permission_state(Bindings::PermissionDescriptor descriptor, Optional settings = {}); Bindings::PermissionState get_current_permission_state(String const& name, Optional settings = {}); Bindings::PermissionState request_permission(Bindings::PermissionDescriptor const& descriptor); class WEB_API Permissions : public Bindings::PlatformObject { WEB_PLATFORM_OBJECT(Permissions, Bindings::PlatformObject); GC_DECLARE_ALLOCATOR(Permissions); public: static GC::Ref create(JS::Realm&); GC::Ref query(JS::Value permission_desc); private: Permissions(JS::Realm&); virtual void initialize(JS::Realm&) override; }; void permission_query_algorithm(Bindings::PermissionDescriptor const&, PermissionStatus&); }