Today Google changed the way userscripts are installed in Chrome. No longer can you just click on a link that contains one, confirm a couple dialog boxes and have it installed. Now you have to download the script with Save As..., open the Finder/Explorer window that contains it, open the Extensions window in Chrome, then drag the script to the extensions window. IOW, a big PITA.
Presumably the alternative is to package as a Chrome extension and get it on the Chrome webstore. However, I can't find any information anywhere that suggests you can package a userscript as an extension. Is this possible? If yes, any new limitations, links to docs, or other tips?
Two things first:
This new behavior of Chrome seems too restricting and draconian for userscripts. If you agree, please make your displeasure known to Google. (Userscripts are not quite as dangerous, or powerful, as full-fledged extensions.)
Rather than trying to package extensions (which seems like a low benefit-to-hassle activity), Chrome provides two mechanisms to (selectively) disable this new annoyance:
Configure Chrome to start with the --enable-easy-off-store-extension-install
parameter.
Add configuration keys to allow installations from specific sites:
For example, add this entry to the Windows registry:
Software\Policies\Google\Chrome\ExtensionInstallSources\1 = "http://userscripts.org/*"
To allow easy installation from that useful script clearinghouse.
Packaging a userscript as an extension (Verified on the latest release, version 20.0.1132.57 and subject to change):
Create a script folder and a manifest for your userscript, as in the "Controlling the Script and name" section of this answer.
From the Chrome Extensions page, activate Developer mode:
Click Pack Extension.
Enter the folder path, created in step 1, and click Pack Extension:
Note that the new extension file (HelloWorld.crx
) and key file (HelloWorld.pem
) are created in the parent directory (C:\MyChromeScripts\
).
Now the extension can be installed like any other, or uploaded to the Chrome Web Store.