Well, I needed to add few extensions to the browser and i ended with this...
It generates a working chrome extension with only a context menu that acts as 'Search with <your search engine>'.
You'll call the script with only 2 args: a_description and a partial URL
as in extgen.pl Cpan_search http://search.cpan.org/search?query=
Then you point chrome to chrome://extensions/, check Developer Mode and choose Load an unpacked extension and browse to early created folder containing the extension.
Here is the code:
#!/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 i
+n: $!";
my $manifest = '{
"manifest_version": 2,
"description": "'.$descr.'",
"background": {
"scripts": ["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.create({title: "'.$descr.'", contexts:["selection"
+], onclick: customfunc});';
print JSCRIPT $background;
close JSCRIPT;
UPDATE 2023 see a working manifest v3 working code needed since 2023: Re: [OT] migrating from scripts to service_worker in js perl generated extensions for chrome -- solved
There are no rules, there are no thumbs..
Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.