mix
mix

Reputation: 7151

Can a greasemonkey-type userscript be packaged as a Chrome extension?

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?

Upvotes: 28

Views: 14878

Answers (2)

Brock Adams
Brock Adams

Reputation: 93473

Two things first:

  1. 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.)

  2. 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:

    1. Configure Chrome to start with the --enable-easy-off-store-extension-install parameter.

    2. 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):

  1. Create a script folder and a manifest for your userscript, as in the "Controlling the Script and name" section of this answer.

  2. From the Chrome Extensions page, activate Developer mode: dev mode

  3. Click Pack Extension. pack extension

  4. Enter the folder path, created in step 1, and click Pack Extension: pack ext, enter fields

  5. Note that the new extension file (HelloWorld.crx) and key file (HelloWorld.pem) are created in the parent directory (C:\MyChromeScripts\). pack results

  6. Now the extension can be installed like any other, or uploaded to the Chrome Web Store.

Upvotes: 28

Jason Hall
Jason Hall

Reputation: 20920

You could use a Chrome extension like Tampermonkey to run/manage your userscripts without having to install them as extensions themselves.

(I've never used it so I can't say if it's any good, it's reviewed well though)

Upvotes: 7

Related Questions