Optional
aInstancePtr: objectA run time mechanism for interface discovery.
NS_OK if the interface is supported by the associated instance, NS_NOINTERFACE if it is not.
aInstancePtr must not be null.
[in] A requested interface IID
[out] A pointer to an interface pointer to receive the result.
Whether or not a record for the given handler info object exists in the datastore. If the datastore is corrupt (or some other error is caught in the implementation), false will be returned.
whether or not a record exists
a handler info object
Whether or not there is a handler in the datastore or OS for the specified protocol type. If there is no handler in the datastore, falls back to a check for an OS handler.
whether or not a handler exists
scheme to check for support
Fill a handler info object with information from the datastore.
Note: because of the way the external helper app service currently mixes OS and user handler info in the same handler info object, this method takes an existing handler info object (probably retrieved from the OS) and "fills it in" with information from the datastore, overriding any existing properties on the object with properties from the datastore.
Ultimately, however, we're going to separate OS and user handler info into separate objects, at which point this method should be renamed to something like "get" or "retrieve", take a class and type (or perhaps a type whose class can be determined by querying the type, for example an nsIContentType which is also an nsIMIMEType or an nsIProtocolScheme), and return a handler info object representing only the user info.
Note: if you specify an override type, then the service will fill in the handler info object with information about that type instead of the type specified by the object's nsIHandlerInfo::type attribute.
This is useful when you are trying to retrieve information about a MIME type that doesn't exist in the datastore, but you have a file extension for that type, and nsIHandlerService::getTypeFromExtension returns another MIME type that does exist in the datastore and can handle that extension.
For example, the user clicks on a link, and the content has a MIME type that isn't in the datastore, but the link has a file extension, and that extension is associated with another MIME type in the datastore (perhaps an unofficial MIME type preceded an official one, like with image/x-png and image/png).
In that situation, you can call this method to fill in the handler info object with information about that other type by passing the other type as the aOverrideType parameter.
the handler info object
a type to use instead of aHandlerInfo::type
Note: if there is no information in the datastore about this type, this method throws NS_ERROR_NOT_AVAILABLE. Callers are encouraged to check exists() before calling fillHandlerInfo(), to prevent spamming the console with XPCOM exception errors.
This method only exists for nsOSHelperAppServiceChild using the ContentHandlerService implementation.
Returns an nsIMIMEInfo for the provided MIME type and extension obtained from an OS lookup. If no handler is found for the type and extension, returns a generic nsIMIMEInfo object. The MIME type and extension can be the empty string. When the type and extension don't map to the same handler, the semantics/resolution are platform specific. See the platform implementations for details.
A nsIMIMEInfo object. This function must return a MIMEInfo object if it can allocate one. The only justifiable reason for not returning one is an out-of-memory error.
The MIME type to get handler information for.
The filename extension to use either alone or with the MIME type to get handler information for. UTF-8 encoded.
Get the MIME type mapped to the given file extension in the datastore.
XXX If we ever support extension -> protocol scheme mappings, then this method should work for those as well.
Note: in general, you should use nsIMIMEService::getTypeFromExtension to get a MIME type from a file extension, as that method checks a variety of other sources besides just the datastore. Use this only when you want to specifically get only the mapping available in the datastore.
the MIME type, if any; otherwise returns an empty string ("").
the file extension
Remove the given handler info object from the datastore. Deletes all records associated with the object, including the preferred handler, info, and type records plus the entry in the list of types, if they exist. Otherwise, it does nothing and does not return an error.
the handler info object
Save the preferred action, preferred handler, possible handlers, and always ask properties of the given handler info object to the datastore. Updates an existing record or creates a new one if necessary.
Note: if preferred action is undefined or invalid, then we assume the default value nsIHandlerInfo::useHelperApp.
the handler info object
Generated using TypeDoc
Increases the reference count for this interface. The associated instance will not be deleted unless the reference count is returned to zero.
Returns
The resulting reference count.