mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-22 08:27:31 +09:00
Move Add-on SDK source to toolkit/jetpack
This commit is contained in:
parent
0a03067ee3
commit
23b67db438
993 changed files with 484 additions and 100663 deletions
49
toolkit/jetpack/sdk/places/favicon.js
Normal file
49
toolkit/jetpack/sdk/places/favicon.js
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
"use strict";
|
||||
|
||||
module.metadata = {
|
||||
"stability": "unstable",
|
||||
"engines": {
|
||||
"Firefox": "*",
|
||||
"SeaMonkey": "*"
|
||||
}
|
||||
};
|
||||
|
||||
const { Cc, Ci, Cu } = require("chrome");
|
||||
const { defer, reject } = require("../core/promise");
|
||||
const FaviconService = Cc["@mozilla.org/browser/favicon-service;1"].
|
||||
getService(Ci.nsIFaviconService);
|
||||
const AsyncFavicons = FaviconService.QueryInterface(Ci.mozIAsyncFavicons);
|
||||
const { isValidURI } = require("../url");
|
||||
const { newURI, getURL } = require("../url/utils");
|
||||
|
||||
/**
|
||||
* Takes an object of several possible types and
|
||||
* returns a promise that resolves to the page's favicon URI.
|
||||
* @param {String|Tab} object
|
||||
* @param {Function} (callback)
|
||||
* @returns {Promise}
|
||||
*/
|
||||
|
||||
function getFavicon (object, callback) {
|
||||
let url = getURL(object);
|
||||
let deferred = defer();
|
||||
|
||||
if (url && isValidURI(url)) {
|
||||
AsyncFavicons.getFaviconURLForPage(newURI(url), function (aURI) {
|
||||
if (aURI && aURI.spec)
|
||||
deferred.resolve(aURI.spec.toString());
|
||||
else
|
||||
deferred.reject(null);
|
||||
});
|
||||
} else {
|
||||
deferred.reject(null);
|
||||
}
|
||||
|
||||
if (callback) deferred.promise.then(callback, callback);
|
||||
return deferred.promise;
|
||||
}
|
||||
exports.getFavicon = getFavicon;
|
||||
Loading…
Add table
Add a link
Reference in a new issue