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.
Method overview
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 |
Methods
getFaviconURLForPage()
Retrieve the URL of the favicon for the given page.
void getFaviconURLForPage( in nsIURI aPageURI, in nsIFaviconDataCallback aCallback );
Parameters
-
aPageURI
- URI of the page whose favicon's URL we're looking up.
-
aCallback
-
Once we have found the favicon's URL, we invoke this callback. Note that the callback's
aDataLen
will be 0,aData
will benull
, andaMimeType
will be empty -- onlyaURI
will be non-zero/null/empty.
getFaviconDataForPage()
Retrieves the favicon URI and data associated to the given page, if any.
void getFaviconURLForPage( in nsIURI aPageURI, in nsIFaviconDataCallback aCallback );
Parameters
-
aPageURI
- URI of the page whose favicon URI and data we're looking up.
-
aCallback
-
This callback is always invoked to notify the result of the lookup. The
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, andaMimeType
will be an empty string.
setAndFetchFaviconForPage()
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
);
Parameters
-
aPageURI
- URI of the page whose favicon is being set.
-
aFaviconURI
- URI of the favicon to associate with the page.
-
aForceReload
-
If
false
, we try to reload the favicon only if we do not have it or it has expired from the cache. Setting totrue
causes us to reload the favicon even if we have a usable copy. -
aFaviconLoadType
- Set to nsIFaviconService.FAVICON_LOAD_PRIVATE if the favicon is loaded from a private browsing window. Set to nsIFaviconService.FAVICON_LOAD_NON_PRIVATE otherwise
-
aCallback
Optional - Once we're done setting and/or fetching the favicon, we invoke this callback.
replaceFaviconData()
Sets 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);
Parameters
-
aFaviconURI
- URI of the favicon whose data is being set.
-
aData
- Binary contents of the favicon to save.
-
aDataLen
- Length of binary data
-
aMimeType
- MIME type of the data to store. This is important so that we know what to report when the favicon is used. You should always set this param unless you are clearing an icon.
-
aExpiration
Optional - Time in microseconds since the epoch when this favicon expires. Until this time, we won't try to load it again.
replaceFaviconDataFromDataURL()
Same 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);
Parameters
-
aFaviconURI
- URI of the favicon whose data is being set.
-
aDataURL
- String containing a data URL that represents the contents of the favicon to save.
-
aExpiration
Optional - Time in microseconds since the epoch when this favicon expires. Until this time, we won't try to load it again./dd>