Browser extensions - Icon action

Browser extensions - Icon action

Β·

2 min read

So far, we have had a couple of articles around popup extensions. These typically thrive on the icon click action.

But what about our new tab experience? When clicking on that icon, nothing happens.

Let's fix that.

Note: If you like to work along with this article, use the following GitHub branch as your starting point.

We want a new tab to open when the user clicks the toolbar icon.

Browser extension icon action

This action, funny enough, is not defined in the manifest. Instead, we have to log a manual action in a background script.

As we don't use one for our new tab, let's add the background.js file inside your public folder.

Then open up your manifest.json and register the background script as a service worker (version 3).

While here, we also need to define an empty action object. This will ensure we can use actions.

{
    "action": {},
  "background": {
    "service_worker": "background.js"
  }
}

Now head back to the background script. We will need to register an action for the browserAction.

chrome.action.onClicked.addListener(() => {
  chrome.tabs.create({ url: './new-tab.html', active: true });
});

We register an on-click handler on the action attribute (the icon). When the user clicks this icon, we navigate them to a new tab, with our new-tab.html as the source. Since this is a relative link, this will work.

When the user clicks the icon, they navigate to a new tab with our default page.

You can find the completed code samples in the following GitHub branch.

Thank you for reading, and let's connect!

Thank you for reading my blog. Feel free to subscribe to my email newsletter and connect on Facebook or Twitter

Did you find this article valuable?

Support Daily Dev Tips by becoming a sponsor. Any amount is appreciated!