[uuid(fb9ddeb9-26f9-46b8-85d5-3978aaee05aa)]
interface nsIPrincipal : nsISerializable
Constants
Values of capabilities for each principal. Order is significant: if an operation is performed on a set of capabilities, the minimum is computed.
const
short
ENABLE_DENIED = 1
const
short
ENABLE_UNKNOWN = 2
const
short
ENABLE_WITH_USER_PERMISSION = 3
const
short
ENABLE_GRANTED = 4
Attributes
The certificate associated with this principal, if any. If there isn't one, this will return null. Getting this attribute never throws.
readonly attribute
nsISupports
certificate
The domain URI to which this principal pertains. This is congruent with HTMLDocument.domain, and may be null. Setting this has no effect on the URI.
attribute
nsIURI
domain
The fingerprint ID of this principal's certificate. Throws if there is no certificate associated with this principal.
readonly attribute
AUTF8String
fingerprint
Whether this principal is associated with a certificate.
readonly attribute
boolean
hasCertificate
Returns a hash value for the principal.
readonly attribute
unsigned long
hashValue
The origin of this principal's domain, if non-null, or its codebase URI otherwise. An origin is defined as: scheme + host + port.
readonly attribute
string
origin
The pretty name for the certificate. This sort of (but not really) identifies the subject of the certificate (the entity that stands behind the certificate). Note that this may be empty; prefer to get the certificate itself and get this information from it, since that may provide more information. Throws if there is no certificate associated with this principal.
readonly attribute
AUTF8String
prettyName
The domain security policy of the principal.
attribute
voidPtr
securityPolicy
The subject name for the certificate. This actually identifies the subject of the certificate. This may well not be a string that would mean much to a typical user on its own (e.g. it may have a number of different names all concatenated together with some information on what they mean in between). Throws if there is no certificate associated with this principal.
readonly attribute
AUTF8String
subjectName
The codebase URI to which this principal pertains. This is generally the document URI.
readonly attribute
nsIURI
URI
Methods
short
canEnableCapability(in string capability)
void
disableCapability(in string capability, inout voidPtr annotation)
void
enableCapability(in string capability, inout voidPtr annotation)
Returns whether the other principal is equivalent to this principal. Principals are considered equal if they are the same principal, they have the same origin, or have the same certificate fingerprint ID
boolean
equals(in nsIPrincipal other)
Returns the JS equivalent of the principal. @see JSPrincipals.h
JSPrincipals
getJSPrincipals(in JSContext cx)
Returns the security preferences associated with this principal. prefBranch will be set to the pref branch to which these preferences pertain. id is a pseudo-unique identifier, pertaining to either the fingerprint or the origin. subjectName is a name that identifies the entity this principal represents (may be empty). grantedList and deniedList are space-separated lists of capabilities which were explicitly granted or denied by a pref.
void
getPreferences(out string prefBranch, out string id, out string subjectName, out string grantedList, out string deniedList)
boolean
isCapabilityEnabled(in string capability, in voidPtr annotation)
void
revertCapability(in string capability, inout voidPtr annotation)
void
setCanEnableCapability(in string capability, in short canEnable)
Returns whether the other principal is equal to or weaker than this principal. Principals are equal if they are the same object, they have the same origin, or they have the same certificate ID. Thus a principal subsumes itself if it is equal to itself. The system principal subsumes itself and all other principals except the non-principal. The non-principal is not equal to itself or any other principal, and therefore does not subsume itself. Both codebase and certificate principals are subsumed by the system principal, but no codebase or certificate principal yet subsumes any other codebase or certificate principal. This may change in a future release; note that nsIPrincipal is unfrozen, not slated to be frozen.
boolean
subsumes(in nsIPrincipal other)
Compare to: