Chrome Extension Development

How I built and published my own Chrome Extensions using JSON and JavaScript.


Over the weekend I decided to solve a small problem I had when using the Google Chrome web browser.

Problem – Some pages don’t have clickable links to middle mouse button into a new tab when I want to do something else.

Reason – I like to open a new tab in the Chrome web browser whenever I research or have an idea, normally I do this with the middle mouse button to click a link on the page such as the “home” button/ image link.

Solution – Open up a new tab of the current page whenever you right click anywhere on a page and select it from the context menu.

My example

Google Chrome Web Store page – Open page in new tab

Github repo –

Helpful links –


Create a folder with 2 files and 4 pictures

File 1 – manifest.json

File 2 – background.js

Pictures – .png files – 16×16, 32×32, 48×48, 128×128


“manifest_version”: 3,
“name”: “Open page in new tab”,
“version”: “1.0”,

“description”: “Add a context menu item to load a new tab of the current page URL.”,
“icons”: {
“16”: “icon16.png”,
“32”: “icon32.png”,
“48”: “icon48.png”,
“128”: “icon128.png”
“background”: {
“service_worker”: “background.js”
“permissions”: [

//When installed, add context menu item “-Open page in new tab”

//Clicked “-Open page in new tab”

function newMenuItem() {
title: “-Open page in new tab”,
type: “normal”,

function newTab(info, tab) {
index: tab.index + 1,
url: tab.url //requires “tabs”

if (chrome.extension.lastError) {
console.log(“Got expected error: ” + chrome.extension.lastError.message);

Run extension

Go to Extensions management – chrome://extensions

Toggle the enable developer mode option

Click the load unpacked (navigate to folder)

You should now be able to right click on a normal website to show your context menu item


Register as a dev (pay 5 euros) –

Follow the steps for filling in the forms, including pictures, video and descriptions, etc.

Upload your folder as a .zip file

Wait for publish review

All done, try downloading the extension as a user once it has finished the review.