From a90a5cba08fdf6c0ceb95101c275108a152a3aed Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 12 Jun 2024 07:35:37 +0200 Subject: Merging upstream version 127.0. Signed-off-by: Daniel Baumann --- .../places/tests/PlacesTestUtils.sys.mjs | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'toolkit/components/places/tests/PlacesTestUtils.sys.mjs') diff --git a/toolkit/components/places/tests/PlacesTestUtils.sys.mjs b/toolkit/components/places/tests/PlacesTestUtils.sys.mjs index 4e459d2e32..97dda6367f 100644 --- a/toolkit/components/places/tests/PlacesTestUtils.sys.mjs +++ b/toolkit/components/places/tests/PlacesTestUtils.sys.mjs @@ -156,6 +156,43 @@ export var PlacesTestUtils = Object.freeze({ await Promise.all(faviconPromises); }, + /* + * Helper function to call PlacesUtils.favicons.setFaviconForPage() and waits + * finishing setting. This function throws an error if the status of + * PlacesUtils.favicons.setFaviconForPage() is not success. + * + * @param {string or nsIURI} pageURI + * @param {string or nsIURI} faviconURI + * @param {string or nsIURI} faviconDataURL + * @param {Number} [optional] expiration + * @return {Promise} waits for finishing setting + */ + setFaviconForPage(pageURI, faviconURI, faviconDataURL, expiration = 0) { + return new Promise((resolve, reject) => { + lazy.PlacesUtils.favicons.setFaviconForPage( + pageURI instanceof Ci.nsIURI ? pageURI : Services.io.newURI(pageURI), + faviconURI instanceof Ci.nsIURI + ? faviconURI + : Services.io.newURI(faviconURI), + faviconDataURL instanceof Ci.nsIURI + ? faviconDataURL + : Services.io.newURI(faviconDataURL), + expiration, + status => { + if (Components.isSuccessCode(status)) { + resolve(status); + } else { + reject( + new Error( + `Failed to process setFaviconForPage(): status code = ${status}` + ) + ); + } + } + ); + }); + }, + /** * Clears any favicons stored in the database. */ -- cgit v1.2.3