nsISupports
Last changed in Gecko 11.0 (Firefox 11.0 / Thunderbird 11.0 / SeaMonkey 2.8)nsIFaviconService
handles this interface, so you do not need to directly create a new service. Simply QueryInterface()
the nsIFaviconService
to this interface. As an alternative, you can just use PlacesUtils.favicons
from JavaScript.
void getFaviconURLForPage(in nsIURI aPageURI, in nsIFaviconDataCallback aCallback); |
void getFaviconDataForPage(in nsIURI aPageURI, in nsIFaviconDataCallback aCallback); |
void setAndFetchFaviconForPage(in nsIURI aPageURI, in nsIURI aFaviconURI, in boolean aForceReload, in unsigned long aFaviconLoadType, [optional] in nsIFaviconDataCallback aCallback); |
void replaceFaviconData(in nsIURI aFaviconURI, [const,array,size_is(aDataLen)] in octet aData, in unsigned long aDataLen, in AUTF8String aMimeType, [optional] in PRTime aExpiration); |
void replaceFaviconDataFromDataURL(in nsIURI aFaviconURI, in AString aDataURL, [optional] in PRTime aExpiration |
Retrieve the URL of the favicon for the given page.
void getFaviconURLForPage( in nsIURI aPageURI, in nsIFaviconDataCallback aCallback );
aPageURI
aCallback
aDataLen
will be 0, aData
will be null
, and aMimeType
will be empty -- only aURI
will be non-zero/null/empty.Retrieves the favicon URI and data associated to the given page, if any.
void getFaviconURLForPage( in nsIURI aPageURI, in nsIFaviconDataCallback aCallback );
aPageURI
aCallback
aURI
parameter will be the favicon URI, or null when no favicon is associated with the page or an error occurred while fetching it. If aURI is not null, the other parameters may contain the favicon data. However, if no favicon data is currently associated with the favicon URI, aDataLen
will be 0, aData
will be an empty array, and aMimeType
will be an empty string.Declares that a given page uses a favicon with the given URI and attempts to fetch and save the icon data by loading the favicon URI through a asynchronous network request.
If the icon data already exists, we will not try to reload the icon unless aForceReload
is true
. Similarly, if the icon is in the failed favicon cache we will not do anything unless aForceReload
is true
, in which case we'll try to reload the favicon.
This function will only save favicons for "good" URIs, as defined by what gets added to history or is a bookmark. For "bad" URIs, this function will succeed but do nothing. This function will also ignore the error page favicon URI (see FAVICON_ERRORPAGE_URL
in nsIFaviconService.idl).
Icons that fail to load will automatically be added to the failed favicon cache, and this function will not save favicons for non-bookmarked URIs when history is disabled.
nsIFaviconService.setAndLoadFaviconForPage()
void setAndFetchFaviconForPage(
in nsIURI aPageURI,
in nsIURI aFaviconURI,
in boolean aForceReload,
in unsigned long afaviconLoadType,
in nsIFaviconDataCallback aCallback Optional
);
aPageURI
aFaviconURI
aForceReload
false
, we try to reload the favicon only if we do not have it or it has expired from the cache. Setting to true
causes us to reload the favicon even if we have a usable copy.aFaviconLoadType
aCallback
OptionalSets the data for a given favicon URI either by replacing existing data in the database or taking the place of otherwise fetched icon data when calling setAndFetchFaviconForPage later.
Favicon data for favicon URIs that are not associated with a page URI via setAndFetchFaviconForPage will be stored in memory, but may be expired at any time, so you should make an effort to associate favicon URIs with page URIs as soon as possible.
It's better to not use this function for chrome: icon URIs since you can reference the chrome image yourself. getFaviconLinkForIcon/Page will ignore any associated data if the favicon URI is "chrome:" and just return the same chrome URI.
This function does NOT send out notifications that the data has changed. Pages using this favicons that are visible in history or bookmarks views will keep the old icon until they have been refreshed by other means.
void replaceFaviconData( in nsIURI aFaviconURI, [const,array,size_is(aDataLen)] in octet aData, in unsigned long aDataLen, in AUTF8String aMimeType, [optional] in PRTime aExpiration);
aFaviconURI
aData
aDataLen
aMimeType
aExpiration
OptionalSame as replaceFaviconData()
but the data is provided by a string containing a data URL.
Favicon data for favicon URIs that are not associated with a page URI via setAndFetchFaviconForPage will be stored in memory, but may be expired at any time, so you should make an effort to associate favicon URIs with page URIs as soon as possible.
It's better to not use this function for chrome: icon URIs since you can reference the chrome image yourself. getFaviconLinkForIcon/Page will ignore any associated data if the favicon URI is "chrome:" and just return the same chrome URI.
This function does NOT send out notifications that the data has changed. Pages using this favicons that are visible in history or bookmarks views will keep the old icon until they have been refreshed by other means.
void replaceFaviconDataFromDataURL( in nsIURI aFaviconURI, in AString aDataURL, [optional] in PRTime aExpiration);
aFaviconURI
aDataURL
aExpiration
Optional