chrome.action

āĻŦāĻ°ā§āĻŖāύāĻž

Google Chrome āϟ⧁āϞāĻŦāĻžāϰ⧇ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ⧇āϰ āφāχāĻ•āύ āύāĻŋāϝāĻŧāĻ¨ā§āĻ¤ā§āϰāĻŖ āĻ•āϰāϤ⧇ chrome.action API āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤

āĻ…ā§āϝāĻžāĻ•āĻļāύ āφāχāĻ•āύāϗ⧁āϞāĻŋ āĻ…āĻŽā§āύāĻŋāĻŦāĻ•ā§āϏ⧇āϰ āĻĒāĻžāĻļ⧇ āĻŦā§āϰāĻžāωāϜāĻžāϰ āϟ⧁āϞāĻŦāĻžāϰ⧇ āĻĒā§āϰāĻĻāĻ°ā§āĻļāĻŋāϤ āĻšāϝāĻŧ⧎ āχāύāĻ¸ā§āϟāϞ⧇āĻļāύ⧇āϰ āĻĒāϰ⧇, āĻāϗ⧁āϞāĻŋ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ āĻŽā§‡āύ⧁āϤ⧇ āωāĻĒāĻ¸ā§āĻĨāĻŋāϤ āĻšāϝāĻŧ (āϧāĻžāρāϧāĻž āĻ…āĻ‚āĻļ āφāχāĻ•āύ)āĨ¤ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰāĻž āϟ⧁āϞāĻŦāĻžāϰ⧇ āφāĻĒāύāĻžāϰ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ āφāχāĻ•āύ āĻĒāĻŋāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤

āĻĒā§āϰāĻžāĻĒā§āϝāϤāĻž

Chrome 88+ MV3+

āωāĻĻā§āĻ­āĻžāϏāĻŋāϤ

āĻāχ API āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āϕ⧀āϗ⧁āϞāĻŋ āĻ…āĻŦāĻļā§āϝāχ āĻŽā§āϝāĻžāύāĻŋāĻĢ⧇āĻ¸ā§āĻŸā§‡ āĻ˜ā§‹āώāĻŖāĻž āĻ•āϰāϤ⧇ āĻšāĻŦ⧇⧎

"action"

chrome.action API āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇, 3 -āĻāϰ āĻāĻ•āϟāĻŋ "manifest_version" āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰ⧁āύ āĻāĻŦāĻ‚ āφāĻĒāύāĻžāϰ āĻŽā§āϝāĻžāύāĻŋāĻĢ⧇āĻ¸ā§āϟ āĻĢāĻžāχāϞ⧇ "action" āϕ⧀ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āĻ•āϰ⧁āύāĨ¤

{
  "name": "Action Extension",
  ...
  "action": {
    "default_icon": {              // optional
      "16": "images/icon16.png",   // optional
      "24": "images/icon24.png",   // optional
      "32": "images/icon32.png"    // optional
    },
    "default_title": "Click Me",   // optional, shown in tooltip
    "default_popup": "popup.html"  // optional
  },
  ...
}

"action" āϕ⧀ (āĻāϰ āĻŦāĻžāĻšā§āϚāĻžāĻĻ⧇āϰ āϏāĻžāĻĨ⧇) āϐāĻšā§āĻ›āĻŋāĻ•āĨ¤ āϝāĻ–āύ āĻāϟāĻŋ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āĻ•āϰāĻž āĻšāϝāĻŧ āύāĻž, āϤāĻ–āύāĻ“ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ⧇āϰ āĻŽā§‡āύ⧁āϤ⧇ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻĻ⧇āĻ“āϝāĻŧāĻžāϰ āϜāĻ¨ā§āϝ āφāĻĒāύāĻžāϰ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ āϟ⧁āϞāĻŦāĻžāϰ⧇ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϝāĻŧāĨ¤ āĻāχ āĻ•āĻžāϰāϪ⧇, āφāĻŽāϰāĻž āϏ⧁āĻĒāĻžāϰāĻŋāĻļ āĻ•āϰāĻŋ āϝ⧇ āφāĻĒāύāĻŋ āϏāĻ°ā§āĻŦāĻĻāĻž āĻ…āĻ¨ā§āϤāϤ "action" āĻāĻŦāĻ‚ "default_icon" āϕ⧀āϗ⧁āϞāĻŋ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āĻ•āϰ⧁āύ⧎

āϧāĻžāϰāĻŖāĻž āĻāĻŦāĻ‚ āĻŦā§āϝāĻŦāĻšāĻžāϰ

UI āĻāϰ āĻ…āĻ‚āĻļ

āφāχāĻ•āύ

āφāχāĻ•āύāϟāĻŋ āφāĻĒāύāĻžāϰ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ⧇āϰ āϟ⧁āϞāĻŦāĻžāϰ⧇ āĻĒā§āϰāϧāĻžāύ āϚāĻŋāĻ¤ā§āϰ, āĻāĻŦāĻ‚ āφāĻĒāύāĻžāϰ āĻŽā§āϝāĻžāύāĻŋāĻĢ⧇āĻ¸ā§āĻŸā§‡āϰ "action" āϕ⧀-āϤ⧇ "default_icon" āϕ⧀ āĻĻā§āĻŦāĻžāϰāĻž āϏ⧇āϟ āĻ•āϰāĻž āĻšāϝāĻŧ⧎ āφāχāĻ•āύ 16 āĻĄāĻŋāĻ­āĻžāχāϏ-āĻ¸ā§āĻŦāĻžāϧ⧀āύ āĻĒāĻŋāĻ•ā§āϏ⧇āϞ (DIPs) āϚāĻ“āĻĄāĻŧāĻž āĻāĻŦāĻ‚ āϞāĻŽā§āĻŦāĻž āĻšāϤ⧇ āĻšāĻŦ⧇āĨ¤

"default_icon" āϕ⧀ āĻšāϞ āϚāĻŋāĻ¤ā§āϰ āĻĒāĻžāĻĨ⧇āϰ āφāĻ•āĻžāϰ⧇āϰ āĻāĻ•āϟāĻŋ āĻ…āĻ­āĻŋāϧāĻžāύāĨ¤ āϕ⧋āύ āϚāĻŋāĻ¤ā§āϰ āĻ¸ā§āϕ⧇āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϤāĻž āϚāϝāĻŧāύ āĻ•āϰāϤ⧇ Chrome āĻāχ āφāχāĻ•āύāϗ⧁āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇⧎ āϝāĻĻāĻŋ āĻāĻ•āϟāĻŋ āϏāĻ āĻŋāĻ• āĻŽāĻŋāϞ āϖ⧁āρāĻœā§‡ āύāĻž āĻĒāĻžāĻ“āϝāĻŧāĻž āϝāĻžāϝāĻŧ, Chrome āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āĻ•āĻžāϛ⧇āϰ āωāĻĒāϞāĻŦā§āϧāϟāĻŋ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻāϟāĻŋāϕ⧇ āϚāĻŋāĻ¤ā§āϰ⧇āϰ āϏāĻžāĻĨ⧇ āĻŽāĻžāύāĻžāύāϏāχ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ¸ā§āϕ⧇āϞ āĻ•āϰ⧇, āϝāĻž āĻ›āĻŦāĻŋāϰ āϗ⧁āĻŖāĻŽāĻžāύāϕ⧇ āĻĒā§āϰāĻ­āĻžāĻŦāĻŋāϤ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āϝ⧇āĻšā§‡āϤ⧁ 1.5x āĻŦāĻž 1.2x āĻāϰ āĻŽāϤ⧋ āĻ•āĻŽ-āϏāĻžāϧāĻžāϰāĻŖ āĻ¸ā§āϕ⧇āϞ āĻĢā§āϝāĻžāĻ•ā§āϟāϰ āϏāĻš āĻĄāĻŋāĻ­āĻžāχāϏāϗ⧁āϞāĻŋ āφāϰāĻ“ āϏāĻžāϧāĻžāϰāĻŖ āĻšāϝāĻŧ⧇ āωāĻ āϛ⧇, āφāĻŽāϰāĻž āφāĻĒāύāĻžāϕ⧇ āφāĻĒāύāĻžāϰ āφāχāĻ•āύāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āĻāĻ•āĻžāϧāĻŋāĻ• āĻŽāĻžāĻĒ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰāϤ⧇ āωāĻ¤ā§āϏāĻžāĻšāĻŋāϤ āĻ•āϰāĻŋ⧎ āĻāϟāĻŋ āϏāĻŽā§āĻ­āĻžāĻŦā§āϝ āφāχāĻ•āύ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ⧇āϰ āφāĻ•āĻžāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ⧇āϰ āĻŦāĻŋāϰ⧁āĻĻā§āϧ⧇ āφāĻĒāύāĻžāϰ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύāϕ⧇ āĻ­āĻŦāĻŋāĻˇā§āϝāϤ⧇ āĻĒā§āϰāĻŽāĻžāĻŖ āĻ•āϰ⧇āĨ¤ āϝāĻžāχāĻšā§‹āĻ•, āϝāĻĻāĻŋ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻāĻ•āϟāĻŋ āĻāĻ•āĻ• āĻŽāĻžāĻĒ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰāĻž āĻšāϝāĻŧ, "default_icon" āϕ⧀ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚-āĻāĻ“ āϏ⧇āϟ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇ āĻāĻ•āϟāĻŋ āĻ…āĻ­āĻŋāϧāĻžāύ⧇āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āĻāĻ•āϟāĻŋ āφāχāĻ•āύ⧇āϰ āĻĒāĻžāĻĨ⧇āϰ āϏāĻžāĻĨ⧇āĨ¤

āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ āĻ­āĻŋāĻ¨ā§āύ āχāĻŽā§‡āϜ āĻĒāĻžāĻĨ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰ⧇ āĻŦāĻž HTML āĻ•ā§āϝāĻžāύāĻ­āĻžāϏ āĻāϞāĻŋāĻŽā§‡āĻ¨ā§āϟ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āĻ—āϤāĻŋāĻļā§€āϞ-āωāĻ¤ā§āĻĒāĻ¨ā§āύ āφāχāĻ•āύ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇ āφāĻĒāύāĻžāϰ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ⧇āϰ āφāχāĻ•āύāϟāĻŋ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽā§āϝāĻžāϟāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āϏ⧇āϟ āĻ•āϰāϤ⧇ action.setIcon() āĻ āĻ•āϞ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ, āĻ…āĻĨāĻŦāĻž āϝāĻĻāĻŋ āϕ⧋āύ⧋ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ āĻĒāϰāĻŋāώ⧇āĻŦāĻž āĻ•āĻ°ā§āĻŽā§€, āĻ…āĻĢāĻ¸ā§āĻ•ā§āϰāĻŋāύ āĻ•ā§āϝāĻžāύāĻ­āĻžāϏ API āĻĨ⧇āϕ⧇ āϏ⧇āϟ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤

const canvas = new OffscreenCanvas(16, 16);
const context = canvas.getContext('2d');
context.clearRect(0, 0, 16, 16);
context.fillStyle = '#00FF00';  // Green
context.fillRect(0, 0, 16, 16);
const imageData = context.getImageData(0, 0, 16, 16);
chrome.action.setIcon({imageData: imageData}, () => { /* ... */ });

āĻĒā§āϝāĻžāĻ•āĻĄ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ (āĻāĻ•āϟāĻŋ .crx āĻĢāĻžāχāϞ āĻĨ⧇āϕ⧇ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻž), āĻ›āĻŦāĻŋāϗ⧁āϞāĻŋ āĻŦ⧇āĻļāĻŋāϰāĻ­āĻžāĻ— āĻĢāĻ°ā§āĻŽā§āϝāĻžāĻŸā§‡ āĻšāϤ⧇ āĻĒāĻžāϰ⧇ āϝāĻž āĻŦā§āϞāĻŋāĻ™ā§āĻ• āϰ⧇āĻ¨ā§āĻĄāĻžāϰāĻŋāĻ‚ āχāĻžā§āϜāĻŋāύ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇, āϝāĻžāϰ āĻŽāĻ§ā§āϝ⧇ PNG, JPEG, BMP, ICO āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āϰāϝāĻŧ⧇āϛ⧇⧎ SVG āϏāĻŽāĻ°ā§āĻĨāĻŋāϤ āύāϝāĻŧāĨ¤ āφāύāĻĒā§āϝāĻžāĻ• āĻ•āϰāĻž āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύāϗ⧁āϞāĻŋāϕ⧇ āĻ…āĻŦāĻļā§āϝāχ PNG āĻ›āĻŦāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤

āϟ⧁āϞāϟāĻŋāĻĒ (āĻļāĻŋāϰ⧋āύāĻžāĻŽ)

āϟ⧁āϞāϟāĻŋāĻĒ, āĻŦāĻž āĻļāĻŋāϰ⧋āύāĻžāĻŽ, āĻĒā§āϰāĻĻāĻ°ā§āĻļāĻŋāϤ āĻšāϝāĻŧ āϝāĻ–āύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āϤāĻžāĻĻ⧇āϰ āĻŽāĻžāωāϏ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāĻžāϰ āϟ⧁āϞāĻŦāĻžāϰ⧇ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ⧇āϰ āφāχāĻ•āύ⧇āϰ āωāĻĒāϰ āϧāϰ⧇ āϰāĻžāϖ⧇āĨ¤ āĻŦā§‹āϤāĻžāĻŽāϟāĻŋ āĻĢā§‹āĻ•āĻžāϏ āĻ•āϰāϞ⧇ āĻāϟāĻŋ āĻ¸ā§āĻ•ā§āϰāĻŋāύ āϰāĻŋāĻĄāĻžāϰāĻĻ⧇āϰ āĻĻā§āĻŦāĻžāϰāĻž āωāĻšā§āϚāĻžāϰāĻŋāϤ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏāϝ⧋āĻ—ā§āϝ āĻĒāĻžāĻ ā§āϝ⧇āϰ āĻŽāĻ§ā§āϝ⧇āĻ“ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āĻĨāĻžāϕ⧇āĨ¤

āĻĄāĻŋāĻĢāĻ˛ā§āϟ āϟ⧁āϞāϟāĻŋāĻĒāϟāĻŋ manifest.json āĻ "action" āϕ⧀-āĻāϰ "default_title" āĻ•ā§āώ⧇āĻ¤ā§āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϏ⧇āϟ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ āφāĻĒāύāĻŋ action.setTitle() āĻ āĻ•āϞ āĻ•āϰ⧇ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāĻ—āϤāĻ­āĻžāĻŦ⧇ āĻāϟāĻŋ āϏ⧇āϟ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤

āĻŦā§āϝāĻžāϜ

āĻ•ā§āϰāĻŋāϝāĻŧāĻžāϗ⧁āϞāĻŋ āϐāĻšā§āĻ›āĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻāĻ•āϟāĻŋ "āĻŦā§āϝāĻžāϜ" āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ — āφāχāĻ•āύ⧇āϰ āωāĻĒāϰ āĻ¸ā§āϤāϰāϝ⧁āĻ•ā§āϤ āĻ•āĻŋāϛ⧁ āĻĒāĻžāĻ ā§āϝāĨ¤ āĻāϟāĻŋ āφāĻĒāύāĻžāϕ⧇ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ⧇āϰ āĻ…āĻŦāĻ¸ā§āĻĨāĻž, āϝ⧇āĻŽāύ āĻāĻ•āϟāĻŋ āĻ•āĻžāωāĻ¨ā§āϟāĻžāϰ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻ…āĻ˛ā§āĻĒ āĻĒāϰāĻŋāĻŽāĻžāĻŖ āϤāĻĨā§āϝ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āĻ…ā§āϝāĻžāĻ•āĻļāύ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāϤ⧇ āĻĻ⧇āϝāĻŧāĨ¤ āĻŦā§āϝāĻžāϜāϟāĻŋāϤ⧇ āĻāĻ•āϟāĻŋ āĻĒāĻžāĻ ā§āϝ āωāĻĒāĻžāĻĻāĻžāύ āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āĻĒāϟāĻ­ā§‚āĻŽāĻŋāϰ āϰāĻ™ āϰāϝāĻŧ⧇āϛ⧇⧎ āϝ⧇āĻšā§‡āϤ⧁ āĻ¸ā§āĻĨāĻžāύ āϏ⧀āĻŽāĻŋāϤ, āφāĻŽāϰāĻž āϏ⧁āĻĒāĻžāϰāĻŋāĻļ āĻ•āϰāĻŋ āϝ⧇ āĻŦā§āϝāĻžāϜ āĻĒāĻžāĻ ā§āϝ āϚāĻžāϰ āĻŦāĻž āϤāĻžāϰ āĻ•āĻŽ āĻ…āĻ•ā§āώāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤

āĻāĻ•āϟāĻŋ āĻŦā§āϝāĻžāϜ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇, āĻ•āĻ°ā§āĻŽāϏ⧂āĻšā§€āϤ⧇ āĻāϟāĻŋ āϏ⧇āϟ āĻ•āϰ⧁āύ action.setBadgeBackgroundColor() āĻāĻŦāĻ‚ action.setBadgeText() āĻ•āϞ āĻ•āϰ⧇āĨ¤ āĻŽā§āϝāĻžāύāĻŋāĻĢ⧇āĻ¸ā§āĻŸā§‡ āϕ⧋āύ⧋ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻŦā§āϝāĻžāϜ āϏ⧇āϟāĻŋāĻ‚ āύ⧇āχāĨ¤ āĻŦā§āϝāĻžāĻœā§‡āϰ āϰāϙ⧇āϰ āĻŽāĻžāύ 0 āĻĨ⧇āϕ⧇ 255 āĻāϰ āĻŽāĻ§ā§āϝ⧇ āϚāĻžāϰāϟāĻŋ āĻĒā§‚āĻ°ā§āĻŖāϏāĻ‚āĻ–ā§āϝāĻžāϰ āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāϰ⧇ āĻšāϤ⧇ āĻĒāĻžāϰ⧇ āϝāĻž āĻŦā§āϝāĻžāĻœā§‡āϰ RGBA āϰāĻ™ āĻŦāĻž āĻāĻ•āϟāĻŋ CSS āϰāϙ⧇āϰ āĻŽāĻžāύ āϏāĻš āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤

chrome.action.setBadgeBackgroundColor(
  {color: [0, 255, 0, 0]},  // Green
  () => { /* ... */ },
);

chrome.action.setBadgeBackgroundColor(
  {color: '#00FF00'},  // Also green
  () => { /* ... */ },
);

chrome.action.setBadgeBackgroundColor(
  {color: 'green'},  // Also, also green
  () => { /* ... */ },
);

āϝāĻ–āύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āϟ⧁āϞāĻŦāĻžāϰ⧇ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ⧇āϰ āĻ…ā§āϝāĻžāĻ•āĻļāύ āĻŦā§‹āϤāĻžāĻŽā§‡ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰ⧇āύ āϤāĻ–āύ āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāĻ•āĻļāύ⧇āϰ āĻĒāĻĒāφāĻĒ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϝāĻŧāĨ¤ āĻĒāĻĒāφāĻĒ⧇ āφāĻĒāύāĻžāϰ āĻĒāĻ›āĻ¨ā§āĻĻ⧇āϰ āϝ⧇āϕ⧋āύ⧋ HTML āĻŦāĻŋāώāϝāĻŧāĻŦāĻ¸ā§āϤ⧁ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇ āĻāĻŦāĻ‚ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻāϰ āĻŦāĻŋāώāϝāĻŧāĻŦāĻ¸ā§āϤ⧁āϰ āϏāĻžāĻĨ⧇ āĻŽāĻžāύāĻžāύāϏāχ āφāĻ•āĻžāϰ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāĻŦ⧇āĨ¤ āĻĒāĻĒāφāĻĒ⧇āϰ āφāĻ•āĻžāϰ āĻ…āĻŦāĻļā§āϝāχ 25x25 āĻāĻŦāĻ‚ 800x600 āĻĒāĻŋāĻ•ā§āϏ⧇āϞ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āĻšāϤ⧇ āĻšāĻŦ⧇āĨ¤

āĻĒāĻĒāφāĻĒāϟāĻŋ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ•āĻ­āĻžāĻŦ⧇ manifest.json āĻĢāĻžāχāϞ⧇āϰ "action" āϕ⧀-āϤ⧇ "default_popup" āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ āĻĻā§āĻŦāĻžāϰāĻž āϏ⧇āϟ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ āϝāĻĻāĻŋ āωāĻĒāĻ¸ā§āĻĨāĻŋāϤ āĻĨāĻžāϕ⧇, āĻāχ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝāϟāĻŋ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋāϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋ āφāĻĒ⧇āĻ•ā§āώāĻŋāĻ• āĻĒāĻĨ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻŦ⧇āĨ¤ āĻāϟāĻŋ action.setPopup() āĻĒāĻĻā§āϧāϤāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āĻ­āĻŋāĻ¨ā§āύ āφāĻĒ⧇āĻ•ā§āώāĻŋāĻ• āĻĒāĻĨ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ—āϤāĻŋāĻļā§€āϞāĻ­āĻžāĻŦ⧇ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āϕ⧇āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ

āĻĒā§āϰāϤāĻŋ āĻŸā§āϝāĻžāĻŦ āĻ…āĻŦāĻ¸ā§āĻĨāĻž

āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻŸā§āϝāĻžāĻŦ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ āĻ…ā§āϝāĻžāĻ•āĻļāύ⧇āϰ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻāĻ•āϟāĻŋ āĻĒ⧃āĻĨāĻ• āĻŸā§āϝāĻžāĻŦ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻŽāĻžāύ āϏ⧇āϟ āĻ•āϰāϤ⧇, action API āĻāϰ āϏ⧇āϟāĻŋāĻ‚ āĻĒāĻĻā§āϧāϤāĻŋāϤ⧇ tabId āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻŸā§āϝāĻžāĻŦ⧇āϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻžāϜ āĻĒāĻžāĻ ā§āϝ āϏ⧇āϟ āĻ•āϰāϤ⧇, āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤāϗ⧁āϞāĻŋāϰ āĻŽāϤ⧋ āĻ•āĻŋāϛ⧁ āĻ•āϰ⧁āύ:

function getTabId() { /* ... */}
function getTabBadge() { /* ... */}

chrome.action.setBadgeText(
  {
    text: getTabBadge(tabId),
    tabId: getTabId(),
  },
  () => { ... }
);

āϝāĻĻāĻŋ tabId āĻĒā§āϰāĻĒāĻžāĻ°ā§āϟāĻŋ āĻŦāĻžāĻĻ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϝāĻŧ, āϏ⧇āϟāĻŋāĻ‚āϟāĻŋāϕ⧇ āĻāĻ•āϟāĻŋ āĻ—ā§āϞ⧋āĻŦāĻžāϞ āϏ⧇āϟāĻŋāĻ‚ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻŦāĻŋāĻŦ⧇āϚāύāĻž āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ āĻŸā§āϝāĻžāĻŦ-āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āϏ⧇āϟāĻŋāĻ‚āϏ āĻŦāĻŋāĻļā§āĻŦāĻŦā§āϝāĻžāĻĒā§€ āϏ⧇āϟāĻŋāĻ‚āϏ⧇āϰ āĻšā§‡āϝāĻŧ⧇ āĻ…āĻ—ā§āϰāĻžāϧāĻŋāĻ•āĻžāϰ āύ⧇āϝāĻŧāĨ¤

āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻ…āĻŦāĻ¸ā§āĻĨāĻž

āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇, āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻŸā§āϝāĻžāĻŦ⧇ āϟ⧁āϞāĻŦāĻžāϰ āĻ…ā§āϝāĻžāĻ•āĻļāύ āϏāĻ•ā§āϰāĻŋāϝāĻŧ (āĻ•ā§āϞāĻŋāĻ•āϝ⧋āĻ—ā§āϝ) āĻĨāĻžāϕ⧇āĨ¤ āφāĻĒāύāĻŋ āĻŽā§āϝāĻžāύāĻŋāĻĢ⧇āĻ¸ā§āĻŸā§‡āϰ action āϕ⧀-āϤ⧇ default_state āĻĒā§āϰāĻĒāĻžāĻ°ā§āϟāĻŋ āϏ⧇āϟ āĻ•āϰ⧇ āĻāχ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ āϝāĻĻāĻŋ default_state "disabled" āϤ⧇ āϏ⧇āϟ āĻ•āϰāĻž āĻĨāĻžāϕ⧇, āϤāĻŦ⧇ āĻ•ā§āϰāĻŋāϝāĻŧāĻžāϟāĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇ āύāĻŋāĻˇā§āĻ•ā§āϰāĻŋāϝāĻŧ āĻĨāĻžāϕ⧇ āĻāĻŦāĻ‚ āĻ•ā§āϞāĻŋāĻ•āϝ⧋āĻ—ā§āϝ āĻšāϤ⧇ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽā§āϝāĻžāϟāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻ•āϰāĻž āφāĻŦāĻļā§āϝāϕ⧎ āϝāĻĻāĻŋ default_state "enabled" (āĻĄāĻŋāĻĢāĻ˛ā§āϟ) āϤ⧇ āϏ⧇āϟ āĻ•āϰāĻž āĻĨāĻžāϕ⧇, āϤāĻžāĻšāϞ⧇ āĻ…ā§āϝāĻžāĻ•āĻļāύāϟāĻŋ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻ•āϰāĻž āĻšāϝāĻŧ āĻāĻŦāĻ‚ āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰāĻž āϝāĻžāϝāĻŧāĨ¤

āφāĻĒāύāĻŋ action.enable() āĻāĻŦāĻ‚ action.disable() āĻĒāĻĻā§āϧāϤāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ•āĻ°ā§āĻŽāϏ⧂āĻšā§€āĻ­āĻžāĻŦ⧇ āĻ¸ā§āĻŸā§‡āϟ āύāĻŋāϝāĻŧāĻ¨ā§āĻ¤ā§āϰāĻŖ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ āĻāϟāĻŋ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻĒāĻĒāφāĻĒ (āϝāĻĻāĻŋ āĻĨāĻžāϕ⧇) āĻŦāĻž action.onClicked āχāϭ⧇āĻ¨ā§āϟ āφāĻĒāύāĻžāϰ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ⧇ āĻĒāĻžāĻ āĻžāύ⧋ āĻšāϝāĻŧ āĻ•āĻŋāύāĻž āϤāĻž āĻĒā§āϰāĻ­āĻžāĻŦāĻŋāϤ āĻ•āϰ⧇; āĻāϟāĻŋ āϟ⧁āϞāĻŦāĻžāϰ⧇ āĻ•āĻ°ā§āĻŽā§‡āϰ āωāĻĒāĻ¸ā§āĻĨāĻŋāϤāĻŋ āĻĒā§āϰāĻ­āĻžāĻŦāĻŋāϤ āĻ•āϰ⧇ āύāĻžāĨ¤

āωāĻĻāĻžāĻšāϰāĻŖ

āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āωāĻĻāĻžāĻšāϰāĻŖāϗ⧁āϞāĻŋ āĻ•āĻŋāϛ⧁ āϏāĻžāϧāĻžāϰāĻŖ āωāĻĒāĻžāϝāĻŧ āĻĻ⧇āĻ–āĻžāϝāĻŧ āϝ⧇āϗ⧁āϞāĻŋ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύāϗ⧁āϞāĻŋāϤ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšāϝāĻŧ⧎ āĻāχ APIāϟāĻŋ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰāϤ⧇, chrome-extension-samples repository āĻĨ⧇āϕ⧇ Action API āωāĻĻāĻžāĻšāϰāĻŖāϟāĻŋ āχāύāĻ¸ā§āϟāϞ āĻ•āϰ⧁āύ⧎

āĻāĻ•āϟāĻŋ āĻĒāĻĒāφāĻĒ āĻĻ⧇āĻ–āĻžāύ

āϝāĻ–āύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ⧇āϰ āĻ…ā§āϝāĻžāĻ•āĻļāύ⧇ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰ⧇āύ āϤāĻ–āύ āĻāĻ•āϟāĻŋ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻĒāĻĒāφāĻĒ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰāĻž āϏāĻžāϧāĻžāϰāĻŖāĨ¤ āφāĻĒāύāĻžāϰ āύāĻŋāϜāĻ¸ā§āĻŦ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ⧇ āĻāϟāĻŋ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āĻ•āϰāϤ⧇, āφāĻĒāύāĻžāϰ manifest.json āĻ āĻĒāĻĒāφāĻĒ āĻ˜ā§‹āώāĻŖāĻž āĻ•āϰ⧁āύ āĻāĻŦāĻ‚ Chrome-āĻāϰ āĻĒāĻĒāφāĻĒ⧇ āϝ⧇ āϏāĻžāĻŽāĻ—ā§āϰ⧀ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰāĻž āωāϚāĻŋāϤ āϤāĻž āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰ⧁āύ⧎

// manifest.json
{
  "name": "Action popup demo",
  "version": "1.0",
  "manifest_version": 3,
  "action": {
    "default_title": "Click to view a popup",
    "default_popup": "popup.html"
  }
}
<!-- popup.html -->
<!DOCTYPE html>
<html>
<head>
  <style>
    html {
      min-height: 5em;
      min-width: 10em;
      background: salmon;
    }
  </style>
</head>
<body>
  <p>Hello, world!</p>
</body>
</html>

āĻ•ā§āϞāĻŋāϕ⧇ āĻāĻ•āϟāĻŋ āĻŦāĻŋāώāϝāĻŧāĻŦāĻ¸ā§āϤ⧁ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āχāύāĻœā§‡āĻ•ā§āϟ āĻ•āϰ⧁āύ

āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻšāϞ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ⧇āϰ āĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϤāĻžāĻĻ⧇āϰ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ• āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝāϟāĻŋ āĻĒā§āϰāĻ•āĻžāĻļ āĻ•āϰāĻžāĨ¤ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āωāĻĻāĻžāĻšāϰāĻŖ āĻāχ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ. āϝāĻ–āύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āĻ…ā§āϝāĻžāĻ•āĻļāύ⧇ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰ⧇āύ, āϤāĻ–āύ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ āĻŦāĻ°ā§āϤāĻŽāĻžāύ āĻĒ⧃āĻˇā§āĻ āĻžāϝāĻŧ āĻāĻ•āϟāĻŋ āĻŦāĻŋāώāϝāĻŧāĻŦāĻ¸ā§āϤ⧁ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āχāύāĻœā§‡āĻ•ā§āϟ āĻ•āϰ⧇āĨ¤ āĻŦāĻŋāώāϝāĻŧāĻŦāĻ¸ā§āϤ⧁ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āϤāĻžāϰāĻĒāϰ āϏāĻŦāĻ•āĻŋāϛ⧁ āĻĒā§āϰāĻ¤ā§āϝāĻžāĻļāĻŋāϤ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇āϛ⧇ āϤāĻž āϝāĻžāϚāĻžāχ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āϏāϤāĻ°ā§āĻ•āϤāĻž āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰ⧇āĨ¤

// manifest.json
{
  "name": "Action script injection demo",
  "version": "1.0",
  "manifest_version": 3,
  "action": {
    "default_title": "Click to show an alert"
  },
  "permissions": ["activeTab", "scripting"],
  "background": {
    "service_worker": "background.js"
  }
}
// background.js
chrome.action.onClicked.addListener((tab) => {
  chrome.scripting.executeScript({
    target: {tabId: tab.id},
    files: ['content.js']
  });
});
// content.js
alert('Hello, world!');

āĻ˜ā§‹āώāĻŖāĻžāĻŽā§‚āϞāĻ• āĻŦāĻŋāώāϝāĻŧāĻŦāĻ¸ā§āϤ⧁ āϏāĻš āĻ•āĻ°ā§āĻŽ āĻ…āύ⧁āĻ•āϰāĻŖ āĻ•āϰ⧁āύ

āĻāχ āωāĻĻāĻžāĻšāϰāĻŖāϟāĻŋ āĻĻ⧇āĻ–āĻžāϝāĻŧ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻāĻ•āϟāĻŋ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ⧇āϰ āĻŦā§āϝāĻžāĻ•āĻ—ā§āϰāĻžāωāĻ¨ā§āĻĄ āϞāϜāĻŋāĻ• (a) āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇ āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāĻ•āĻļāύāϕ⧇ āĻ…āĻ•ā§āώāĻŽ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āĻāĻŦāĻ‚ (b) āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āϏāĻžāχāĻŸā§‡ āĻ…ā§āϝāĻžāĻ•āĻļāύ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻ•āϰāϤ⧇ declarative Content āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

// service-worker.js

// Wrap in an onInstalled callback to avoid unnecessary work
// every time the service worker is run
chrome.runtime.onInstalled.addListener(() => {
  // Page actions are disabled by default and enabled on select tabs
  chrome.action.disable();

  // Clear all rules to ensure only our expected rules are set
  chrome.declarativeContent.onPageChanged.removeRules(undefined, () => {
    // Declare a rule to enable the action on example.com pages
    let exampleRule = {
      conditions: [
        new chrome.declarativeContent.PageStateMatcher({
          pageUrl: {hostSuffix: '.example.com'},
        })
      ],
      actions: [new chrome.declarativeContent.ShowAction()],
    };

    // Finally, apply our new array of rules
    let rules = [exampleRule];
    chrome.declarativeContent.onPageChanged.addRules(rules);
  });
});

āĻĒā§āϰāĻ•āĻžāϰāϭ⧇āĻĻ

OpenPopupOptions

Chrome 99+

āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ

  • āωāχāĻ¨ā§āĻĄā§‹ āφāχāĻĄāĻŋ

    āϏāĻ‚āĻ–ā§āϝāĻž āϐāĻšā§āĻ›āĻŋāĻ•

    āĻ…ā§āϝāĻžāĻ•āĻļāύ āĻĒāĻĒāφāĻĒ āĻ–ā§‹āϞāĻžāϰ āϜāĻ¨ā§āϝ āωāχāĻ¨ā§āĻĄā§‹āϰ āφāχāĻĄāĻŋāĨ¤ āĻ…āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĨāĻžāĻ•āϞ⧇ āĻŦāĻ°ā§āϤāĻŽāĻžāύ⧇ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āωāχāĻ¨ā§āĻĄā§‹āϤ⧇ āĻĄāĻŋāĻĢāĻ˛ā§āϟāĨ¤

TabDetails

āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ

  • āĻŸā§āϝāĻžāĻŦāφāχāĻĄāĻŋ

    āϏāĻ‚āĻ–ā§āϝāĻž āϐāĻšā§āĻ›āĻŋāĻ•

    āĻ•ā§āϝ⧋āϝāĻŧāĻžāϰ⧀ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻŸā§āϝāĻžāĻŦ⧇āϰ āφāχāĻĄāĻŋ āϝāĻĻāĻŋ āϕ⧋āύ āĻŸā§āϝāĻžāĻŦ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰāĻž āύāĻž āĻĨāĻžāϕ⧇, āĻ…-āĻŸā§āϝāĻžāĻŦ-āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻĢ⧇āϰāϤ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϝāĻŧāĨ¤

UserSettings

Chrome 91+

āĻāĻ•āϟāĻŋ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ⧇āϰ āĻ•ā§āϰāĻŋāϝāĻŧāĻž āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀-āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āϏ⧇āϟāĻŋāĻ‚āϏ⧇āϰ āϏāĻ‚āĻ—ā§āϰāĻšā§ˇ

āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ

  • isOnToolbar

    āĻŦ⧁āϞāĻŋāϝāĻŧāĻžāύ

    āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ⧇āϰ āĻ…ā§āϝāĻžāĻ•āĻļāύ āφāχāĻ•āύ āĻŦā§āϰāĻžāωāϜāĻžāϰ āωāχāĻ¨ā§āĻĄā§‹āĻœā§‡āϰ āĻļā§€āĻ°ā§āώ-āĻ¸ā§āϤāϰ⧇āϰ āϟ⧁āϞāĻŦāĻžāϰ⧇ āĻĻ⧃āĻļā§āϝāĻŽāĻžāύ āĻ•āĻŋāύāĻž (āĻ…āĻ°ā§āĻĨāĻžā§Ž, āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰ āĻĻā§āĻŦāĻžāϰāĻž āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύāϟāĻŋ 'āĻĒāĻŋāύ' āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ āĻ•āĻŋāύāĻž)āĨ¤

UserSettingsChange

Chrome 130+

āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ

  • isOnToolbar

    āĻŦ⧁āϞāĻŋāϝāĻŧāĻžāύ āϐāĻšā§āĻ›āĻŋāĻ•

    āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ⧇āϰ āĻ…ā§āϝāĻžāĻ•āĻļāύ āφāχāĻ•āύ āĻŦā§āϰāĻžāωāϜāĻžāϰ āωāχāĻ¨ā§āĻĄā§‹āĻœā§‡āϰ āĻļā§€āĻ°ā§āώ-āĻ¸ā§āϤāϰ⧇āϰ āϟ⧁āϞāĻŦāĻžāϰ⧇ āĻĻ⧃āĻļā§āϝāĻŽāĻžāύ āĻ•āĻŋāύāĻž (āĻ…āĻ°ā§āĻĨāĻžā§Ž, āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰ āĻĻā§āĻŦāĻžāϰāĻž āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύāϟāĻŋ 'āĻĒāĻŋāύ' āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ āĻ•āĻŋāύāĻž)āĨ¤

āĻĒāĻĻā§āϧāϤāĻŋ

disable()

chrome.action.disable(
  tabId?: number,
)
: Promise<void>

āĻāĻ•āϟāĻŋ āĻŸā§āϝāĻžāĻŦ⧇āϰ āϜāĻ¨ā§āϝ āĻ•āĻ°ā§āĻŽ āύāĻŋāĻˇā§āĻ•ā§āϰāĻŋāϝāĻŧ āĻ•āϰ⧇āĨ¤

āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ

  • āĻŸā§āϝāĻžāĻŦāφāχāĻĄāĻŋ

    āϏāĻ‚āĻ–ā§āϝāĻž āϐāĻšā§āĻ›āĻŋāĻ•

    āĻŸā§āϝāĻžāĻŦ⧇āϰ āφāχāĻĄāĻŋ āϝāĻžāϰ āϜāĻ¨ā§āϝ āφāĻĒāύāĻŋ āĻ…ā§āϝāĻžāĻ•āĻļāύāϟāĻŋ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāϤ⧇ āϚāĻžāύāĨ¤

āϰāĻŋāϟāĻžāĻ°ā§āύāϏ

  • āĻĒā§āϰāϤāĻŋāĻļā§āϰ⧁āϤāĻŋ <void>

enable()

chrome.action.enable(
  tabId?: number,
)
: Promise<void>

āĻāĻ•āϟāĻŋ āĻŸā§āϝāĻžāĻŦ⧇āϰ āϜāĻ¨ā§āϝ āĻ…ā§āϝāĻžāĻ•āĻļāύ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻ•āϰ⧇āĨ¤ āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇, āĻ•āĻ°ā§āĻŽ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻ•āϰāĻž āĻšāϝāĻŧ.

āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ

  • āĻŸā§āϝāĻžāĻŦāφāχāĻĄāĻŋ

    āϏāĻ‚āĻ–ā§āϝāĻž āϐāĻšā§āĻ›āĻŋāĻ•

    āĻŸā§āϝāĻžāĻŦ⧇āϰ āφāχāĻĄāĻŋ āϝāĻžāϰ āϜāĻ¨ā§āϝ āφāĻĒāύāĻŋ āĻ…ā§āϝāĻžāĻ•āĻļāύāϟāĻŋ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāϤ⧇ āϚāĻžāύāĨ¤

āϰāĻŋāϟāĻžāĻ°ā§āύāϏ

  • āĻĒā§āϰāϤāĻŋāĻļā§āϰ⧁āϤāĻŋ <void>

getBadgeBackgroundColor()

chrome.action.getBadgeBackgroundColor(
  details: TabDetails,
)
: Promise<extensionTypes.ColorArray>

āĻ•āĻ°ā§āĻŽā§‡āϰ āĻĒāϟāĻ­ā§‚āĻŽāĻŋāϰ āϰāĻ™ āĻĒāĻžāϝāĻŧāĨ¤

āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ

āϰāĻŋāϟāĻžāĻ°ā§āύāϏ

getBadgeText()

chrome.action.getBadgeText(
  details: TabDetails,
)
: Promise<string>

āĻ•āĻ°ā§āĻŽā§‡āϰ āĻŦā§āϝāĻžāϜ āĻĒāĻžāĻ ā§āϝ āĻĒāĻžāϝāĻŧāĨ¤ āϝāĻĻāĻŋ āϕ⧋āύ⧋ āĻŸā§āϝāĻžāĻŦ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰāĻž āύāĻž āĻĨāĻžāϕ⧇, āĻ…-āĻŸā§āϝāĻžāĻŦ-āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻŦā§āϝāĻžāϜ āĻŸā§‡āĻ•ā§āϏāϟ āĻĢ⧇āϰāϤ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϝāĻŧāĨ¤ DisplayActionCountAsBadgeText āϏāĻ•ā§āώāĻŽ āĻ•āϰāĻž āĻĨāĻžāĻ•āϞ⧇, declarativeNetRequestFeedback āĻ…āύ⧁āĻŽāϤāĻŋ āωāĻĒāĻ¸ā§āĻĨāĻŋāϤ āύāĻž āĻĨāĻžāĻ•āϞ⧇ āĻŦāĻž āĻŸā§āϝāĻžāĻŦ-āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻŦā§āϝāĻžāϜ āĻŸā§‡āĻ•ā§āϏāϟ āĻĻ⧇āĻ“āϝāĻŧāĻž āύāĻž āĻĨāĻžāĻ•āϞ⧇ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻĨāĻžāύāϧāĻžāϰāĻ• āĻĒāĻžāĻ ā§āϝ āĻĢ⧇āϰāϤ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāĻŦ⧇āĨ¤

āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ

āϰāĻŋāϟāĻžāĻ°ā§āύāϏ

  • āĻĒā§āϰāϤāĻŋāĻļā§āϰ⧁āϤāĻŋ<string>

getBadgeTextColor()

Chrome 110+
chrome.action.getBadgeTextColor(
  details: TabDetails,
)
: Promise<extensionTypes.ColorArray>

āĻ•āĻ°ā§āĻŽā§‡āϰ āĻĒāĻžāĻ ā§āϝ āϰāĻ™ āĻĒāĻžāϝāĻŧāĨ¤

āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ

āϰāĻŋāϟāĻžāĻ°ā§āύāϏ

getPopup()

chrome.action.getPopup(
  details: TabDetails,
)
: Promise<string>

āĻāχ āĻ•ā§āϰāĻŋāϝāĻŧāĻžāĻ•āϞāĻžāĻĒ⧇āϰ āϜāĻ¨ā§āϝ āĻĒāĻĒāφāĻĒ āĻšāĻŋāϏāĻžāĻŦ⧇ html āύāĻĨāĻŋ āϏ⧇āϟ āĻ•āϰ⧇āĨ¤

āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ

āϰāĻŋāϟāĻžāĻ°ā§āύāϏ

  • āĻĒā§āϰāϤāĻŋāĻļā§āϰ⧁āϤāĻŋ<string>

getTitle()

chrome.action.getTitle(
  details: TabDetails,
)
: Promise<string>

āĻ•āĻ°ā§āĻŽā§‡āϰ āĻļāĻŋāϰ⧋āύāĻžāĻŽ āĻĒāĻžāϝāĻŧāĨ¤

āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ

āϰāĻŋāϟāĻžāĻ°ā§āύāϏ

  • āĻĒā§āϰāϤāĻŋāĻļā§āϰ⧁āϤāĻŋ<string>

getUserSettings()

Chrome 91+
chrome.action.getUserSettings(): Promise<UserSettings>

āĻāĻ•āϟāĻŋ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ⧇āϰ āĻ•ā§āϰāĻŋāϝāĻŧāĻž āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀-āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āϏ⧇āϟāĻŋāĻ‚āϏ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤

āϰāĻŋāϟāĻžāĻ°ā§āύāϏ

isEnabled()

Chrome 110+
chrome.action.isEnabled(
  tabId?: number,
)
: Promise<boolean>

āϕ⧋āύ⧋ āĻŸā§āϝāĻžāĻŦ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ āĻ…ā§āϝāĻžāĻ•āĻļāύ āϏāĻ•ā§āώāĻŽ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ āĻ•āĻŋāύāĻž āϤāĻž āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇ (āĻŦāĻž āĻŦāĻŋāĻļā§āĻŦāĻŦā§āϝāĻžāĻĒā§€ āϝāĻĻāĻŋ āϕ⧋āύ⧋ tabId āĻĻ⧇āĻ“āϝāĻŧāĻž āύāĻž āĻĨāĻžāϕ⧇)āĨ¤ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ declarativeContent āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻ•āϰāĻž āĻ•āĻ°ā§āĻŽ āϏāĻ°ā§āĻŦāĻĻāĻž āĻŽāĻŋāĻĨā§āϝāĻž āĻĢ⧇āϰāϤ āĻĻ⧇āϝāĻŧāĨ¤

āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ

  • āĻŸā§āϝāĻžāĻŦāφāχāĻĄāĻŋ

    āϏāĻ‚āĻ–ā§āϝāĻž āϐāĻšā§āĻ›āĻŋāĻ•

    āĻŸā§āϝāĻžāĻŦ⧇āϰ āφāχāĻĄāĻŋ āϝāĻžāϰ āϜāĻ¨ā§āϝ āφāĻĒāύāĻŋ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻ¸ā§āĻĨāĻŋāϤāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāϤ⧇ āϚāĻžāύ⧎

āϰāĻŋāϟāĻžāĻ°ā§āύāϏ

  • āĻĒā§āϰāϤāĻŋāĻļā§āϰ⧁āϤāĻŋ<āĻŦ⧁āϞāĻŋāϝāĻŧāĻžāύ>

openPopup()

Chrome 127+
chrome.action.openPopup(
  options?: OpenPopupOptions,
)
: Promise<void>

āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ⧇āϰ āĻĒāĻĒāφāĻĒ āĻ–ā§‹āϞ⧇āĨ¤ Chrome 118 āĻāĻŦāĻ‚ Chrome 126-āĻāϰ āĻŽāĻ§ā§āϝ⧇, āĻāϟāĻŋ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻĒāϞāĻŋāϏāĻŋ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻž āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āωāĻĒāϞāĻŦā§āϧ⧎

āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ

  • āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ

    OpenPopupOptions āϐāĻšā§āĻ›āĻŋāĻ•

    āĻĒāĻĒāφāĻĒ āĻ–ā§‹āϞāĻžāϰ āϜāĻ¨ā§āϝ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāϗ⧁āϞāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰ⧇⧎

āϰāĻŋāϟāĻžāĻ°ā§āύāϏ

  • āĻĒā§āϰāϤāĻŋāĻļā§āϰ⧁āϤāĻŋ <void>

setBadgeBackgroundColor()

chrome.action.setBadgeBackgroundColor(
  details: object,
)
: Promise<void>

āĻŦā§āϝāĻžāĻœā§‡āϰ āϜāĻ¨ā§āϝ āĻĒāϟāĻ­ā§‚āĻŽāĻŋāϰ āϰāĻ™ āϏ⧇āϟ āĻ•āϰ⧇āĨ¤

āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ

  • āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ

    āĻŦāĻ¸ā§āϤ⧁

    • āϰāĻ™

      āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ | āĻ•āĻžāϞāĻžāϰāĻ…ā§āϝāĻžāϰ⧇

      [0,255] āĻĒāϰāĻŋāϏāϰ⧇ āϚāĻžāϰāϟāĻŋ āĻĒā§‚āĻ°ā§āĻŖāϏāĻ‚āĻ–ā§āϝāĻžāϰ āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāϰ⧇ āϝāĻž āĻŦā§āϝāĻžāĻœā§‡āϰ RGBA āϰāĻ™ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻ…āĻ¸ā§āĻŦāĻšā§āĻ› āϞāĻžāϞ āĻšāϞ [255, 0, 0, 255] āĨ¤ āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ āĻāĻ•āϟāĻŋ CSS āĻŽāĻžāύ āϏāĻš āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āĻšāϤ⧇ āĻĒāĻžāϰ⧇, āĻ…āĻ¸ā§āĻŦāĻšā§āĻ› āϞāĻžāϞ #FF0000 āĻŦāĻž #F00 āĨ¤

    • āĻŸā§āϝāĻžāĻŦāφāχāĻĄāĻŋ

      āϏāĻ‚āĻ–ā§āϝāĻž āϐāĻšā§āĻ›āĻŋāĻ•

      āϝāĻ–āύ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻŸā§āϝāĻžāĻŦ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰāĻž āĻšāϝāĻŧ āϤāĻ–āύ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āϏ⧀āĻŽāĻŋāϤ āĻ•āϰ⧇āĨ¤ āĻŸā§āϝāĻžāĻŦ āĻŦāĻ¨ā§āϧ āĻšāϝāĻŧ⧇ āϗ⧇āϞ⧇ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āϰāĻŋāϏ⧇āϟ āĻšāϝāĻŧāĨ¤

āϰāĻŋāϟāĻžāĻ°ā§āύāϏ

  • āĻĒā§āϰāϤāĻŋāĻļā§āϰ⧁āϤāĻŋ <void>

setBadgeText()

chrome.action.setBadgeText(
  details: object,
)
: Promise<void>

āĻ•āĻ°ā§āĻŽā§‡āϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻžāϜ āĻĒāĻžāĻ ā§āϝ āϏ⧇āϟ āĻ•āϰ⧇āĨ¤ āĻŦā§āϝāĻžāϜāϟāĻŋ āφāχāĻ•āύ⧇āϰ āωāĻĒāϰ⧇ āĻĒā§āϰāĻĻāĻ°ā§āĻļāĻŋāϤ āĻšāϝāĻŧāĨ¤

āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ

  • āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ

    āĻŦāĻ¸ā§āϤ⧁

    • āĻŸā§āϝāĻžāĻŦāφāχāĻĄāĻŋ

      āϏāĻ‚āĻ–ā§āϝāĻž āϐāĻšā§āĻ›āĻŋāĻ•

      āϝāĻ–āύ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻŸā§āϝāĻžāĻŦ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰāĻž āĻšāϝāĻŧ āϤāĻ–āύ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āϏ⧀āĻŽāĻŋāϤ āĻ•āϰ⧇āĨ¤ āĻŸā§āϝāĻžāĻŦ āĻŦāĻ¨ā§āϧ āĻšāϝāĻŧ⧇ āϗ⧇āϞ⧇ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āϰāĻŋāϏ⧇āϟ āĻšāϝāĻŧāĨ¤

    • āĻĒāĻžāĻ ā§āϝ

      āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āϐāĻšā§āĻ›āĻŋāĻ•

      āϝ⧇āϕ⧋āύ āϏāĻ‚āĻ–ā§āϝāĻ• āĻ…āĻ•ā§āώāϰ āĻĒāĻžāϏ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻ¸ā§āĻĒ⧇āϏ⧇ āĻŽāĻžāĻ¤ā§āϰ āϚāĻžāϰāϟāĻŋ āĻĢāĻŋāϟ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āϝāĻĻāĻŋ āĻāĻ•āϟāĻŋ āĻ–āĻžāϞāĻŋ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ ( '' ) āĻĒāĻžāϏ āĻ•āϰāĻž āĻšāϝāĻŧ, āĻŦā§āϝāĻžāϜ āĻĒāĻžāĻ ā§āϝāϟāĻŋ āϏāĻžāĻĢ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ āϝāĻĻāĻŋ tabId āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰāĻž āĻĨāĻžāϕ⧇ āĻāĻŦāĻ‚ text āύāĻžāϞ āĻĨāĻžāϕ⧇, āϤāĻžāĻšāϞ⧇ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻŸā§āϝāĻžāĻŦ⧇āϰ āϜāĻ¨ā§āϝ āĻŸā§‡āĻ•ā§āϏāϟ āϏāĻžāĻĢ āĻ•āϰāĻž āĻšāϝāĻŧ āĻāĻŦāĻ‚ āĻ—ā§āϞ⧋āĻŦāĻžāϞ āĻŦā§āϝāĻžāϜ āĻŸā§‡āĻ•ā§āϏāĻŸā§‡ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻšāϝāĻŧāĨ¤

āϰāĻŋāϟāĻžāĻ°ā§āύāϏ

  • āĻĒā§āϰāϤāĻŋāĻļā§āϰ⧁āϤāĻŋ <void>

setBadgeTextColor()

Chrome 110+
chrome.action.setBadgeTextColor(
  details: object,
)
: Promise<void>

āĻŦā§āϝāĻžāĻœā§‡āϰ āϜāĻ¨ā§āϝ āĻĒāĻžāĻ ā§āϝ⧇āϰ āϰāĻ™ āϏ⧇āϟ āĻ•āϰ⧇āĨ¤

āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ

  • āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ

    āĻŦāĻ¸ā§āϤ⧁

    • āϰāĻ™

      āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ | āĻ•āĻžāϞāĻžāϰāĻ…ā§āϝāĻžāϰ⧇

      [0,255] āĻĒāϰāĻŋāϏāϰ⧇ āϚāĻžāϰāϟāĻŋ āĻĒā§‚āĻ°ā§āĻŖāϏāĻ‚āĻ–ā§āϝāĻžāϰ āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāϰ⧇ āϝāĻž āĻŦā§āϝāĻžāĻœā§‡āϰ RGBA āϰāĻ™ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻ…āĻ¸ā§āĻŦāĻšā§āĻ› āϞāĻžāϞ āĻšāϞ [255, 0, 0, 255] āĨ¤ āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ āĻāĻ•āϟāĻŋ CSS āĻŽāĻžāύ āϏāĻš āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āĻšāϤ⧇ āĻĒāĻžāϰ⧇, āĻ…āĻ¸ā§āĻŦāĻšā§āĻ› āϞāĻžāϞ #FF0000 āĻŦāĻž #F00 āĨ¤ āĻāχ āĻŽāĻžāύāϟāĻŋ āϏ⧇āϟ āύāĻž āĻ•āϰāĻžāϰ āĻĢāϞ⧇ āĻāĻ•āϟāĻŋ āϰāĻ™ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰāĻž āĻšāĻŦ⧇ āϝāĻž āĻŦā§āϝāĻžāĻœā§‡āϰ āĻĒāϟāĻ­ā§‚āĻŽāĻŋāϰ āϰāϙ⧇āϰ āϏāĻžāĻĨ⧇ āĻŦ⧈āĻĒāϰ⧀āĻ¤ā§āϝ āĻšāĻŦ⧇ āϝāĻžāϤ⧇ āĻĒāĻžāĻ ā§āϝāϟāĻŋ āĻĻ⧃āĻļā§āϝāĻŽāĻžāύ āĻšāĻŦ⧇āĨ¤ 0 āĻāϰ āϏāĻŽāϤ⧁āĻ˛ā§āϝ āφāϞāĻĢāĻž āĻŽāĻžāύ āϏāĻš āϰāĻ™āϗ⧁āϞāĻŋ āϏ⧇āϟ āĻ•āϰāĻž āĻšāĻŦ⧇ āύāĻž āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āĻ¤ā§āϰ⧁āϟāĻŋ āĻĢāĻŋāϰāĻŋāϝāĻŧ⧇ āĻĻ⧇āĻŦ⧇āĨ¤

    • āĻŸā§āϝāĻžāĻŦāφāχāĻĄāĻŋ

      āϏāĻ‚āĻ–ā§āϝāĻž āϐāĻšā§āĻ›āĻŋāĻ•

      āϝāĻ–āύ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻŸā§āϝāĻžāĻŦ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰāĻž āĻšāϝāĻŧ āϤāĻ–āύ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āϏ⧀āĻŽāĻŋāϤ āĻ•āϰ⧇āĨ¤ āĻŸā§āϝāĻžāĻŦ āĻŦāĻ¨ā§āϧ āĻšāϝāĻŧ⧇ āϗ⧇āϞ⧇ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āϰāĻŋāϏ⧇āϟ āĻšāϝāĻŧāĨ¤

āϰāĻŋāϟāĻžāĻ°ā§āύāϏ

  • āĻĒā§āϰāϤāĻŋāĻļā§āϰ⧁āϤāĻŋ <void>

setIcon()

chrome.action.setIcon(
  details: object,
)
: Promise<void>

āĻ•āĻ°ā§āĻŽā§‡āϰ āϜāĻ¨ā§āϝ āφāχāĻ•āύ āϏ⧇āϟ āĻ•āϰ⧇āĨ¤ āφāχāĻ•āύāϟāĻŋāϕ⧇ āĻāĻ•āϟāĻŋ āχāĻŽā§‡āϜ āĻĢāĻžāχāϞ⧇āϰ āĻĒāĻžāĻĨ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻŦāĻž āĻāĻ•āϟāĻŋ āĻ•ā§āϝāĻžāύāĻ­āĻžāϏ āωāĻĒāĻžāĻĻāĻžāύ āĻĨ⧇āϕ⧇ āĻĒāĻŋāĻ•ā§āϏ⧇āϞ āĻĄā§‡āϟāĻž āĻšāĻŋāϏāĻžāĻŦ⧇ āĻŦāĻž āϝ⧇āϕ⧋āύ āĻāĻ•āϟāĻŋāϰ āĻ…āĻ­āĻŋāϧāĻžāύ āĻšāĻŋāϏāĻžāĻŦ⧇ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻšāϝāĻŧ āĻĒāĻĨ āĻŦāĻž imageData āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰāĻž āφāĻŦāĻļā§āϝāĻ•āĨ¤

āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ

  • āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ

    āĻŦāĻ¸ā§āϤ⧁

    • imageData

      āχāĻŽā§‡āϜāĻĄā§‡āϟāĻž | āĻŦāĻ¸ā§āϤ⧁ āϐāĻšā§āĻ›āĻŋāĻ•

      āĻšāϝāĻŧ āĻāĻ•āϟāĻŋ ImageData āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻŦāĻž āĻāĻ•āϟāĻŋ āĻ…āĻ­āĻŋāϧāĻžāύ {size -> ImageData} āĻĒā§āϰāϤāĻŋāύāĻŋāϧāĻŋāĻ¤ā§āĻŦāĻ•āĻžāϰ⧀ āφāχāĻ•āύ āϏ⧇āϟ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇⧎ āϝāĻĻāĻŋ āφāχāĻ•āύāϟāĻŋ āĻāĻ•āϟāĻŋ āĻ…āĻ­āĻŋāϧāĻžāύ āĻšāĻŋāϏāĻžāĻŦ⧇ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰāĻž āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ āĻĒāĻ°ā§āĻĻāĻžāϰ āĻĒāĻŋāĻ•ā§āϏ⧇āϞ āϘāύāĻ¤ā§āĻŦ⧇āϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇ āĻĒā§āϰāĻ•ā§ƒāϤ āϚāĻŋāĻ¤ā§āϰāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāĻŦ⧇āĨ¤ āϝāĻĻāĻŋ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻ•ā§āϰ⧀āύ āĻ¸ā§āĻĒ⧇āϏ āχāωāύāĻŋāĻŸā§‡ āĻĢāĻŋāϟ āĻ•āϰāĻž āĻ›āĻŦāĻŋāϰ āĻĒāĻŋāĻ•ā§āϏ⧇āϞ⧇āϰ āϏāĻ‚āĻ–ā§āϝāĻž scale āϏāĻŽāĻžāύ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ āϏāĻžāχāϜ scale * n āϏāĻš āĻ›āĻŦāĻŋ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰāĻž āĻšāĻŦ⧇, āϝ⧇āĻ–āĻžāύ⧇ UI āφāχāĻ•āύ⧇āϰ āφāĻ•āĻžāϰ nāĨ¤ āĻ…āĻ¨ā§āϤāϤ āĻāĻ•āϟāĻŋ āĻ›āĻŦāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰāĻž āφāĻŦāĻļā§āϝāĻ•āĨ¤ āĻŽāύ⧇ āϰāĻžāĻ–āĻŦ⧇āύ āϝ⧇ 'details.imageData = foo' 'details.imageData = {'16': foo}' āĻāϰ āϏāĻŽāϤ⧁āĻ˛ā§āϝāĨ¤

    • āĻĒāĻĨ

      āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ | āĻŦāĻ¸ā§āϤ⧁ āϐāĻšā§āĻ›āĻŋāĻ•

      āĻšāϝāĻŧ āĻāĻ•āϟāĻŋ āφāĻĒ⧇āĻ•ā§āώāĻŋāĻ• āχāĻŽā§‡āϜ āĻĒāĻžāĻĨ āĻŦāĻž āĻāĻ•āϟāĻŋ āĻ…āĻ­āĻŋāϧāĻžāύ {size -> āφāĻĒ⧇āĻ•ā§āώāĻŋāĻ• āχāĻŽā§‡āϜ āĻĒāĻžāĻĨ} āφāχāĻ•āύ āϏ⧇āϟ āĻ•āϰāϤ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇⧎ āϝāĻĻāĻŋ āφāχāĻ•āύāϟāĻŋ āĻāĻ•āϟāĻŋ āĻ…āĻ­āĻŋāϧāĻžāύ āĻšāĻŋāϏāĻžāĻŦ⧇ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰāĻž āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ āĻĒāĻ°ā§āĻĻāĻžāϰ āĻĒāĻŋāĻ•ā§āϏ⧇āϞ āϘāύāĻ¤ā§āĻŦ⧇āϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇ āĻĒā§āϰāĻ•ā§ƒāϤ āϚāĻŋāĻ¤ā§āϰāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāĻŦ⧇āĨ¤ āϝāĻĻāĻŋ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻ•ā§āϰ⧀āύ āĻ¸ā§āĻĒ⧇āϏ āχāωāύāĻŋāĻŸā§‡ āĻĢāĻŋāϟ āĻ•āϰāĻž āĻ›āĻŦāĻŋāϰ āĻĒāĻŋāĻ•ā§āϏ⧇āϞ⧇āϰ āϏāĻ‚āĻ–ā§āϝāĻž scale āϏāĻŽāĻžāύ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ āϏāĻžāχāϜ scale * n āϏāĻš āĻ›āĻŦāĻŋ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰāĻž āĻšāĻŦ⧇, āϝ⧇āĻ–āĻžāύ⧇ UI āφāχāĻ•āύ⧇āϰ āφāĻ•āĻžāϰ nāĨ¤ āĻ…āĻ¨ā§āϤāϤ āĻāĻ•āϟāĻŋ āĻ›āĻŦāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰāĻž āφāĻŦāĻļā§āϝāĻ•āĨ¤ āĻŽāύ⧇ āϰāĻžāĻ–āĻŦ⧇āύ āϝ⧇ 'details.path = foo' 'details.path = {'16': foo}' āĻāϰ āϏāĻŽāϤ⧁āĻ˛ā§āϝ

    • āĻŸā§āϝāĻžāĻŦāφāχāĻĄāĻŋ

      āϏāĻ‚āĻ–ā§āϝāĻž āϐāĻšā§āĻ›āĻŋāĻ•

      āϝāĻ–āύ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻŸā§āϝāĻžāĻŦ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰāĻž āĻšāϝāĻŧ āϤāĻ–āύ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āϏ⧀āĻŽāĻŋāϤ āĻ•āϰ⧇āĨ¤ āĻŸā§āϝāĻžāĻŦ āĻŦāĻ¨ā§āϧ āĻšāϝāĻŧ⧇ āϗ⧇āϞ⧇ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āϰāĻŋāϏ⧇āϟ āĻšāϝāĻŧāĨ¤

āϰāĻŋāϟāĻžāĻ°ā§āύāϏ

  • āĻĒā§āϰāϤāĻŋāĻļā§āϰ⧁āϤāĻŋ <void>

    Chrome 96+

setPopup()

chrome.action.setPopup(
  details: object,
)
: Promise<void>

āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āϝāĻ–āύ āĻ…ā§āϝāĻžāĻ•āĻļāύ⧇āϰ āφāχāĻ•āύ⧇ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰ⧇ āϤāĻ–āύ HTML āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āϟāϕ⧇ āĻĒāĻĒāφāĻĒ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻ–ā§‹āϞāĻžāϰ āϜāĻ¨ā§āϝ āϏ⧇āϟ āĻ•āϰ⧇āĨ¤

āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ

  • āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ

    āĻŦāĻ¸ā§āϤ⧁

    • āĻĒāĻĒāφāĻĒ

      āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚

      āĻāĻ•āϟāĻŋ āĻĒāĻĒāφāĻĒ⧇ āĻĻ⧇āĻ–āĻžāύ⧋āϰ āϜāĻ¨ā§āϝ HTML āĻĢāĻžāχāϞ⧇āϰ āφāĻĒ⧇āĻ•ā§āώāĻŋāĻ• āĻĒāĻĨāĨ¤ āϝāĻĻāĻŋ āĻ–āĻžāϞāĻŋ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ ( '' ) āϤ⧇ āϏ⧇āϟ āĻ•āϰāĻž āĻšāϝāĻŧ āϤāĻŦ⧇ āϕ⧋āύ⧋ āĻĒāĻĒāφāĻĒ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϝāĻŧ āύāĻžāĨ¤

    • āĻŸā§āϝāĻžāĻŦāφāχāĻĄāĻŋ

      āϏāĻ‚āĻ–ā§āϝāĻž āϐāĻšā§āĻ›āĻŋāĻ•

      āϝāĻ–āύ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻŸā§āϝāĻžāĻŦ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰāĻž āĻšāϝāĻŧ āϤāĻ–āύ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āϏ⧀āĻŽāĻŋāϤ āĻ•āϰ⧇āĨ¤ āĻŸā§āϝāĻžāĻŦ āĻŦāĻ¨ā§āϧ āĻšāϝāĻŧ⧇ āϗ⧇āϞ⧇ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āϰāĻŋāϏ⧇āϟ āĻšāϝāĻŧāĨ¤

āϰāĻŋāϟāĻžāĻ°ā§āύāϏ

  • āĻĒā§āϰāϤāĻŋāĻļā§āϰ⧁āϤāĻŋ <void>

setTitle()

chrome.action.setTitle(
  details: object,
)
: Promise<void>

āĻ•āĻ°ā§āĻŽā§‡āϰ āĻļāĻŋāϰ⧋āύāĻžāĻŽ āϏ⧇āϟ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ āϟ⧁āϞāϟāĻŋāĻĒ⧇ āĻĻ⧇āĻ–āĻžāϝāĻŧāĨ¤

āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ

  • āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ

    āĻŦāĻ¸ā§āϤ⧁

    • āĻŸā§āϝāĻžāĻŦāφāχāĻĄāĻŋ

      āϏāĻ‚āĻ–ā§āϝāĻž āϐāĻšā§āĻ›āĻŋāĻ•

      āϝāĻ–āύ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻŸā§āϝāĻžāĻŦ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰāĻž āĻšāϝāĻŧ āϤāĻ–āύ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āϏ⧀āĻŽāĻŋāϤ āĻ•āϰ⧇āĨ¤ āĻŸā§āϝāĻžāĻŦ āĻŦāĻ¨ā§āϧ āĻšāϝāĻŧ⧇ āϗ⧇āϞ⧇ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āϰāĻŋāϏ⧇āϟ āĻšāϝāĻŧāĨ¤

    • āĻļāĻŋāϰ⧋āύāĻžāĻŽ

      āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚

      āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚āϟāĻŋ āĻŽāĻžāωāϏ āĻ“āĻ­āĻžāϰ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻ…ā§āϝāĻžāĻ•āĻļāύāϟāĻŋ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰāĻž āωāϚāĻŋāϤāĨ¤

āϰāĻŋāϟāĻžāĻ°ā§āύāϏ

  • āĻĒā§āϰāϤāĻŋāĻļā§āϰ⧁āϤāĻŋ <void>

āϘāϟāύāĻž

onClicked

chrome.action.onClicked.addListener(
  callback: function,
)

āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāĻ•āĻļāύ āφāχāĻ•āύ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰāĻž āĻšāϞ⧇ āĻŦāĻšāĻŋāĻ¸ā§āĻ•āĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ āĻ…ā§āϝāĻžāĻ•āĻļāύ⧇ āĻĒāĻĒāφāĻĒ āĻĨāĻžāĻ•āϞ⧇ āĻāχ āχāϭ⧇āĻ¨ā§āϟāϟāĻŋ āϚāĻžāϞ⧁ āĻšāĻŦ⧇ āύāĻžāĨ¤

āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ

  • āĻ•āϞāĻŦā§āϝāĻžāĻ•

    āĻĢāĻžāĻ‚āĻļāύ

    callback āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰāϟāĻŋ āĻāϰ āĻŽāϤ⧋ āĻĻ⧇āĻ–āĻžāĻšā§āϛ⧇:

    (tab: tabs.Tab) => void

    • āĻŸā§āϝāĻžāĻŦ

onUserSettingsChanged

Chrome 130+
chrome.action.onUserSettingsChanged.addListener(
  callback: function,
)

āĻāĻ•āϟāĻŋ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ⧇āϰ āĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ⧇āϰ āϏāĻžāĻĨ⧇ āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀-āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āϏ⧇āϟāĻŋāĻ‚āϏ āϝāĻ–āύ āĻŦāϰāĻ–āĻžāĻ¸ā§āϤ āĻšāϝāĻŧ⧎

āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ