#!/usr/bin/perl use strict; use warnings; my $folder = $ARGV[0]; my $url = $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 = 'chrome.runtime.onInstalled.addListener(function() { chrome.contextMenus.create({ title: "'.$descr.'", contexts: ["selection"], id: "'.$descr.'" }); }); chrome.contextMenus.onClicked.addListener(function (info, tab) { if (info.menuItemId === "'.$descr.'") { let getToSite = "'.$url.'" + info.selectionText chrome.tabs.create({index: tab.index + 1, url: getToSite, selected: true}); } })'; print JSCRIPT $background; close JSCRIPT; #### 16c16 < "manifest_version": 2, --- > "manifest_version": 3, 19c19 < "scripts": ["background.js"]}, --- > "service_worker": "background.js"}, 28,33c28,42 < my $background ='function customfunc(info) < { < var searchstring = info.selectionText; < chrome.tabs.create({url: "'.$url.'" + searchstring}) < } < chrome.contextMenus.create({title: "'.$descr.'", contexts:["selection"], onclick: customfunc});'; --- > my $background = 'chrome.runtime.onInstalled.addListener(function() { > chrome.contextMenus.create({ > title: "'.$descr.'", > contexts: ["selection"], > id: "'.$descr.'" > }); > }); > > chrome.contextMenus.onClicked.addListener(function (info, tab) { > if (info.menuItemId === "'.$descr.'") { > let getToSite = "'.$url.'" + info.selectionText > chrome.tabs.create({index: tab.index + 1, url: getToSite, selected: true}); > } > })'; > #### { "manifest_version": 3, "description": "Description", "background": { "service_worker": "background.js"}, "name": "Perl genarated extension - Description", "permissions": [ "contextMenus", "tabs" ], "version": "1.0", "icons": { "128": "favicon.png", "16": "favicon.png", "32": "favicon.png", "48": "favicon.png", "64": "favicon.png" } }