Ikona favicon (skrót od „ulubiona ikona”) to mała ikona wyświetlana na pasku adresu przeglądarki. Favikony są zwykle używane do rozpoznawania i rozróżniania stron internetowych. Z tego artykułu dowiesz się, jak pobrać ikonę witryny w rozszerzeniu Manifest V3.
Otwieranie favicony witryny
Aby pobrać ikonę witryny, musisz utworzyć taki adres URL:
chrome-extension://EXTENSION_ID/_favicon/?pageUrl=EXAMPLE_URL&size=FAV_SIZE
- EXTENSION_ID
- Identyfikator rozszerzenia.
- EXAMPLE_URL
- Adres URL strony internetowej favikony.
- FAV_SIZE
- Rozmiar favikony. Najczęstszy rozmiar to 16 x 16 pikseli.
Aby utworzyć ten URL w rozszerzeniu do Chrome, wykonaj te czynności:
Krok 1. Zaktualizuj plik manifestu
Najpierw musisz poprosić o uprawnienie "favicon" w pliku manifestu.
{
  "name": "Favicon API in a popup",
  "manifest_version": 3,
  ...
  "permissions": ["favicon"],
  ...
}
Dodatkowo podczas pobierania favikon w skryptach treści folder "_favicon/*" musi być zadeklarowany jako zasób dostępny w internecie. Na przykład:
{
  "name": "Favicon API in content scripts",
  "manifest_version": 3,
  "content_scripts": [
    {
      "matches": ["<all_urls>"],
      "js": ["content.js"]
    }
  ],
  "permissions": ["favicon"],
  "web_accessible_resources": [
    {
      "resources": ["_favicon/*"],
      "matches": ["<all_urls>"],
      "extension_ids": ["*"]
    }
  ]
  ...
}
Krok 2. Utwórz adres URL
Funkcja ta używa parametru runtime.getURL() do utworzenia pełnego adresu URL wskazującego na folder "_favicon/". Następnie zwraca nowy ciąg znaków reprezentujący adres URL z kilkoma parametrami zapytania. Na koniec rozszerzenie dodaje obraz do treści. 
function faviconURL(u) {
  const url = new URL(chrome.runtime.getURL("/_favicon/"));
  url.searchParams.set("pageUrl", u);
  url.searchParams.set("size", "32");
  return url.toString();
}
const img = document.createElement('img');
img.src = faviconURL("https://www.google.com") 
document.body.appendChild(img);
W tym przykładzie adres URL www.google.com ikony favicon o wymiarach 32 piksele zawiera losowy identyfikator rozszerzenia:
chrome-extension://eghkbfdcoeikaepkldhfgphlaiojonpc/_favicon/?pageUrl=https%3A%2F%2Fwww.google.com&size=32
Przykłady rozszerzeń
W repozytorium chrome-extension-samples znajdziesz 2 przykłady pliku favicons.ico: