Manifest version 2 is deprecated, and support will be removed in 2023. See https://developer.chrome.com/blog/mv2-transition/ for more details. #### #!/usr/bin/perl use strict; use warnings; # supporting manifest v 3 # https://developer.chrome.com/blog/mv2-transition/ # https://developer.chrome.com/docs/extensions/mv3/migrating_to_service_workers/ # January 2023: The Chrome browser will no longer run Manifest V2 extensions. # Developers may no longer push updates to existing Manifest V2 extensions. my $version = 2; my $folder = $ARGV[0]; my $url = $ARGV[1]; die "$0 Directory_Name URL" unless $ARGV[1]; (my $descr = $folder) =~ s/_+/ /g; my $longname = 'Perl genarated extension - '.$descr; mkdir $folder or die "Cannot create $folder: $!"; chdir $folder or die "Cannot enter $folder: $!"; # the manifest open MANIF, '>', 'manifest.json' or die "Cannot open a file to write in: $!"; my $manifest = '{ "manifest_version": 3, "description": "'.$descr.'", "background": { "service_worker": "background.js"}, "name": "'.$longname.'", "permissions": [ "contextMenus", "tabs" ], "version": "1.0" }'; print MANIF $manifest; close MANIF; # the jscript open JSCRIPT, '>', 'background.js' or die "Cannot open a file to write in: $!"; my $background ='function customfunc(info) { var searchstring = info.selectionText; chrome.tabs.create({url: "'.$url.'" + searchstring}) } chrome.contextMenus.onClicked.addListener(function(info, tab) { if (info.menuItemId == "'.$descr.'") });'; print JSCRIPT $background; close JSCRIPT; #### 16c26 < "manifest_version": 2, --- > "manifest_version": 3, 19c29 < "scripts": ["background.js"]}, --- > "service_worker": "background.js"}, 33c43,47 < chrome.contextMenus.create({title: "'.$descr.'", contexts:["selection"], onclick: customfunc});'; --- > > chrome.contextMenus.onClicked.addListener(function(info, tab) { > if (info.menuItemId == "'.$descr.'") > });'; > 35c49 < close JSCRIPT; \ No newline at end of file --- > close JSCRIPT;