/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "nsISupports.idl" /** * An interface for unlocking Windows Limited Access Features. This allows use * of Windows APIs which are otherwise gated. */ [scriptable, uuid(5d58bf99-9539-49d7-aa76-c5a262476e5a)] interface nsILimitedAccessFeature : nsISupports { /** * The Feature ID associated to this interface. */ readonly attribute ACString featureId; /** * The generated token. */ readonly attribute ACString token; /** * The generated attestation. */ readonly attribute ACString attestation; /** * Attempts to unlock the associated Limited Access Feature. * * @return {bool} true if the Limited Access Feature is unlocked. */ boolean unlock(); }; /** * A factory to generate nsILimitedAccessFeature objects. */ [scriptable, uuid(115f4862-f302-42a2-a58c-d09f636ab601)] interface nsILimitedAccessFeatureService : nsISupports { /** * The Feature ID for taskbar pinning. */ readonly attribute ACString taskbarPinFeatureId; /** * Generates a new object that can be used to unlock the requested Limited * Access Feature. * * @param {ACString} featureId * The ID of the feature we want to unlock. * @return {nsILimitedAccessFeature} * An object that can be used to unlock the requested Limited Access * Feature. */ nsILimitedAccessFeature generateLimitedAccessFeature( in ACString featureId ); };