Struct xpcom::interfaces::nsIPermissionManager [] [src]

#[repr(C)]
pub struct nsIPermissionManager { /* fields omitted */ }

interface nsIPermissionManager : nsISupports

Methods

impl nsIPermissionManager
[src]

[src]

Cast this nsIPermissionManager to one of its base interfaces.

impl nsIPermissionManager
[src]

UNKNOWN_ACTION: i64 = 0
/**
   * Predefined return values for the testPermission method and for
   * the permission param of the add method
   * NOTE: UNKNOWN_ACTION (0) is reserved to represent the
   * default permission when no entry is found for a host, and
   * should not be used by consumers to indicate otherwise.
   */

ALLOW_ACTION: i64 = 1

DENY_ACTION: i64 = 2

PROMPT_ACTION: i64 = 3

EXPIRE_NEVER: i64 = 0
/**
   * Predefined expiration types for permissions.  Permissions can be permanent
   * (never expire), expire at the end of the session, or expire at a specified
   * time. Permissions that expire at the end of a session may also have a
   * specified expiration time.
   *
   * EXPIRE_POLICY is a special expiration status. It is set when the permission
   * is set by reading an enterprise policy. These permissions cannot be overridden.
   */

EXPIRE_SESSION: i64 = 1

EXPIRE_TIME: i64 = 2

EXPIRE_POLICY: i64 = 3

[src]

/**
   * Add permission information for a given URI and permission type. This
   * operation will cause the type string to be registered if it does not
   * currently exist. If a permission already exists for a given type, it
   * will be modified.
   *
   * @param uri         the uri to add the permission for
   * @param type        a case-sensitive ASCII string, identifying the consumer.
   *                    Consumers should choose this string to be unique, with
   *                    respect to other consumers.
   * @param permission  an integer representing the desired action (e.g. allow
   *                    or deny). The interpretation of this number is up to the
   *                    consumer, and may represent different actions for different
   *                    types. Consumers may use one of the enumerated permission
   *                    actions defined above, for convenience.
   *                    NOTE: UNKNOWN_ACTION (0) is reserved to represent the
   *                    default permission when no entry is found for a host, and
   *                    should not be used by consumers to indicate otherwise.
   * @param expiretype  a constant defining whether this permission should
   *                    never expire (EXPIRE_NEVER), expire at the end of the
   *                    session (EXPIRE_SESSION), or expire at a specified time
   *                    (EXPIRE_TIME).
   * @param expiretime  an integer representation of when this permission
   *                    should be forgotten (milliseconds since Jan 1 1970 0:00:00).
   */

void add (in nsIURI uri, in string type, in uint32_t permission, [optional] in uint32_t expireType, [optional] in int64_t expireTime);

[src]

/**
   * Get all custom permissions for a given URI. This will return
   * an enumerator of all permissions which are not set to default
   * and which belong to the matching prinicpal of the given URI.
   *
   * @param uri  the URI to get all permissions for
   */

nsISimpleEnumerator getAllForURI (in nsIURI uri);

[src]

/**
   * Add permission information for a given principal.
   * It is internally calling the other add() method using the nsIURI from the
   * principal.
   * Passing a system principal will be a no-op because they will always be
   * granted permissions.
   */

void addFromPrincipal (in nsIPrincipal principal, in string typed, in uint32_t permission, [optional] in uint32_t expireType, [optional] in int64_t expireTime);

[src]

/**
   * Remove permission information for a given URI and permission type. This will
   * remove the permission for the entire host described by the uri, acting as the
   * opposite operation to the add() method.
   *
   * @param uri    the uri to remove the permission for
   * @param type   a case-sensitive ASCII string, identifying the consumer.
   *               The type must have been previously registered using the
   *               add() method.
   */

void remove (in nsIURI uri, in string type);

[src]

/**
   * Remove permission information for a given principal.
   * This is internally calling remove() with the host from the principal's URI.
   * Passing system principal will be a no-op because we never add them to the
   * database.
   */

void removeFromPrincipal (in nsIPrincipal principal, in string type);

[src]

/**
   * Remove the given permission from the permission manager.
   *
   * @param perm   a permission obtained from the permission manager.
   */

void removePermission (in nsIPermission perm);

[src]

/**
   * Clear permission information for all websites.
   */

void removeAll ();

[src]

/**
   * Clear all permission information added since the specified time.
   */

void removeAllSince (in int64_t since);

[src]

/**
   * Test whether a website has permission to perform the given action.
   * This function will perform a pref lookup to permissions.default.<type>
   * if the specific permission type is part of the whitelist for that functionality.
   * @param uri     the uri to be tested
   * @param type    a case-sensitive ASCII string, identifying the consumer
   * @param return  see add(), param permission. returns UNKNOWN_ACTION when
   *                there is no stored permission for this uri and / or type.
   */

uint32_t testPermission (in nsIURI uri, in string type);

[src]

/**
   * Test whether the principal has the permission to perform a given action.
   * System principals will always have permissions granted.
   * This function will perform a pref lookup to permissions.default.<type>
   * if the specific permission type is part of the whitelist for that functionality.
   */

uint32_t testPermissionFromPrincipal (in nsIPrincipal principal, in string type);

[src]

/**
   * Test whether the principal associated with the window's document has the
   * permission to perform a given action.  System principals will always
   * have permissions granted.
   * This function will perform a pref lookup to permissions.default.<type>
   * if the specific permission type is part of the whitelist for that functionality.
   */

uint32_t testPermissionFromWindow (in mozIDOMWindow window, in string type);

[src]

/**
   * Test whether a website has permission to perform the given action.
   * This requires an exact hostname match, subdomains are not a match.
   * This function will perform a pref lookup to permissions.default.<type>
   * if the specific permission type is part of the whitelist for that functionality.
   * @param uri     the uri to be tested
   * @param type    a case-sensitive ASCII string, identifying the consumer
   * @param return  see add(), param permission. returns UNKNOWN_ACTION when
   *                there is no stored permission for this uri and / or type.
   */

uint32_t testExactPermission (in nsIURI uri, in string type);

[src]

/**
   * See testExactPermission() above.
   * System principals will always have permissions granted.
   * This function will perform a pref lookup to permissions.default.<type>
   * if the specific permission type is part of the whitelist for that functionality.
   */

uint32_t testExactPermissionFromPrincipal (in nsIPrincipal principal, in string type);

[src]

/**
   * Test whether a website has permission to perform the given action
   * ignoring active sessions.
   * System principals will always have permissions granted.
   * This function will perform a pref lookup to permissions.default.<type>
   * if the specific permission type is part of the whitelist for that functionality.
   *
   * @param principal the principal
   * @param type      a case-sensitive ASCII string, identifying the consumer
   * @param return    see add(), param permission. returns UNKNOWN_ACTION when
   *                  there is no stored permission for this uri and / or type.
   */

uint32_t testExactPermanentPermission (in nsIPrincipal principal, in string type);

[src]

/**
   * Get the permission object associated with the given URI and action.
   * @param uri The URI
   * @param type      A case-sensitive ASCII string identifying the consumer
   * @param exactHost If true, only the specific host will be matched,
   *                  @see testExactPermission. If false, subdomains will
   *                  also be searched, @see testPermission.
   * @returns The matching permission object, or null if no matching object
   *          was found. No matching object is equivalent to UNKNOWN_ACTION.
   * @note Clients in general should prefer the test* methods unless they
   *       need to know the specific stored details.
   * @note This method will always return null for the system principal.
   */

nsIPermission getPermissionObjectForURI (in nsIURI uri, in string type, in boolean exactHost);

[src]

/**
   * Get the permission object associated with the given principal and action.
   * @param principal The principal
   * @param type      A case-sensitive ASCII string identifying the consumer
   * @param exactHost If true, only the specific host will be matched,
   *                  @see testExactPermission. If false, subdomains will
   *                  also be searched, @see testPermission.
   * @returns The matching permission object, or null if no matching object
   *          was found. No matching object is equivalent to UNKNOWN_ACTION.
   * @note Clients in general should prefer the test* methods unless they
   *       need to know the specific stored details.
   * @note This method will always return null for the system principal.
   */

nsIPermission getPermissionObject (in nsIPrincipal principal, in string type, in boolean exactHost);

[src]

/**
   * Allows enumeration of all stored permissions
   * @return an nsISimpleEnumerator interface that allows access to
   *         nsIPermission objects
   */

readonly attribute nsISimpleEnumerator enumerator;

[src]

/**
   * Remove all permissions that will match the origin pattern.
   */

void removePermissionsWithAttributes (in DOMString patternAsJSON);

[src]

/**
   * If the current permission is set to expire, reset the expiration time. If
   * there is no permission or the current permission does not expire, this
   * method will silently return.
   *
   * @param sessionExpiretime  an integer representation of when this permission
   *                           should be forgotten (milliseconds since
   *                           Jan 1 1970 0:00:00), if it is currently
   *                           EXPIRE_SESSION.
   * @param sessionExpiretime  an integer representation of when this permission
   *                           should be forgotten (milliseconds since
   *                           Jan 1 1970 0:00:00), if it is currently
   *                           EXPIRE_TIME.
   */

void updateExpireTime (in nsIPrincipal principal, in string type, in boolean exactHost, in uint64_t sessionExpireTime, in uint64_t persistentExpireTime);

[src]

/**
   * Broadcasts permissions for the given principal to all content processes.
   *
   * DO NOT USE THIS METHOD if you can avoid it. It was added in bug XXX to
   * handle the current temporary implementation of ServiceWorker debugging. It
   * will be removed when service worker debugging is fixed.
   *
   * @param aPrincipal The principal to broadcast permissions for.
   */

void broadcastPermissionsForPrincipalToAllContentProcesses (in nsIPrincipal aPrincipal);

[src]

/**
   * Add a callback which should be run when all permissions are available for
   * the given nsIPrincipal. This method invokes the callback runnable
   * synchronously when the permissions are already available. Otherwise the
   * callback will be run asynchronously in SystemGroup when all permissions
   * are available in the future.
   *
   * NOTE: This method will not request the permissions be sent by the parent
   * process. This should only be used to wait for permissions which may not
   * have arrived yet in order to ensure they are present.
   *
   * @param aPrincipal The principal to wait for permissions to be available for.
   * @param aRunnable  The runnable to run when permissions are available for the
   *                   given principal.
   */

void whenPermissionsAvailable (in nsIPrincipal aPrincipal, in nsIRunnable aRunnable);

[src]

/**
   * True if any "preload" permissions are present. This is used to avoid making
   * potentially expensive permissions checks in nsContentBlocker.
   */

[infallible] readonly attribute boolean hasPreloadPermissions;

Methods from Deref<Target = nsISupports>

[src]

Cast this nsISupports to one of its base interfaces.

[src]

void QueryInterface (in nsIIDRef uuid, [iid_is (uuid), retval] out nsQIResult result);

[src]

[noscript,notxpcom] nsrefcnt AddRef ();

[src]

[noscript,notxpcom] nsrefcnt Release ();

Trait Implementations

impl XpCom for nsIPermissionManager
[src]

IID: nsIID = nsID(1305163857, 60322, 20034, [178, 54, 130, 210, 89, 111, 202, 34])

[src]

Perform a QueryInterface call on this object, attempting to dynamically cast it to the requested interface type. Returns Some(RefPtr) if the cast succeeded, and None otherwise. Read more

impl RefCounted for nsIPermissionManager
[src]

[src]

Increment the reference count.

[src]

Decrement the reference count, potentially freeing backing memory.

impl Deref for nsIPermissionManager
[src]

The resulting type after dereferencing.

[src]

Dereferences the value.