Recommended size of icon for Google Chrome Extension

To elaborate on ExpertSystem's answer, here is an example manifest excerpt with all of the image sizes:

  "browser_action": {
    "default_icon": {
      "19": "images/icon19.png",
      "38": "images/icon38.png"
    },
    "default_popup": "popup.html"
  },
  "icons": { "16": "images/icon16.png",
           "48": "images/icon48.png",
          "128": "images/icon128.png" }, ...

Notice how the 19/38 icons are for the browser action, and the 16/48/128 are at the icons level.

I think it is best therefore to create the image as a vector graphic (e.g. svg file) and then save to a bitmap (e.g. png file) for each of the sizes.


Both are correct ! They are for different sections/features:

The former refers to the browser-action icon (displayed on the top-right corner of your browser-window, next to the address bar). It is only displayed if your extension registers a browser-action.

The latter refers to icons used throughout the extension and browser, as is explained quite clearly in the link you provide:
(emphasis mine)

One or more icons that represent the extension, app, or theme. You should always provide a 128x128 icon; it's used during installation and by the Chrome Web Store. Extensions should also provide a 48x48 icon, which is used in the extensions management page (chrome://extensions). You can also specify a 16x16 icon to be used as the favicon for an extension's pages. The 16x16 icon is also displayed in the experimental extension infobar feature.


BTW, that second link mentions icon as the property name, which was replaced in Manifest v2 by default_icon.
("Migration to Manifest v2" guide)