For more than two years, I have been using Firefox. And Greasemonkey. Then, last week, came Google Chrome. It was at the moment I tried the new browser that I suddenly noticed I could no more live without userscripts (especially, AutoPagerize). So I started looking into the source code of Google Chrome, and found out a way to implement a userscript runtime. And that's Greasemetal. It is now available from the link below.
Technically, Greasemetal executes userscripts in the following steps.
- setup a local web server that sends userscripts to Google Chrome
- launch Google Chrome specifying the browser to connect its AutomationProxy (an interprocess communication channel of the web browser implemented for automated UI tests) to Greasemetal
- periodically execute JavaScript in each browser tab that inserts <script> tags to download necessary userscripts from the local web server
As can be seen, since the entire userscript is run at the browser level, there is no support for
GM_* functions (they require userscripts to be executed under a previleged environment for security reasons). In other word, some userscripts that rely on Greasemonkey-specific features would not work on Greasemetal. Userscripts compatible with Safari (or Opera) would mostly work.
The userscripts I checked and found compatible are;
This is the first release of Greasemetal, and it still lacks a number of features (especially the UI for managing userscripts). I hope I can release the next version early (hopefully a code-signed version), but if you find any bugs or have any suggestions, please let me know (although I am afraid I might not be able to answer to compatibility problems of each userscripts). Anyway, have fun!