Saturday, November 1, 2008

Greasemonkey in Chromium

Evan and I have been hacking on Greasemonkey support for Chromium in our 20% time. It's been fun. Actually, it was Evan who started the work... after months of pestering me, he got frustrated and started hacking.

Implementation is more interesting than in Firefox because of Chromium's sandbox. The renderer processes are where scripts must be executed, but the renderers are not allowed to read the scripts from disk. So we set it up so that the privileged "browser" process reads the scripts into shared memory and broadcasts them to the renderers. It also watches for changes on disk and rebroadcasts when changes occur.

Note that like everything else in Chromium nightlies, Greasemonkey support is considered experimental and may change, break, or disappear from build to build. That said, this is something a lot of us on Chromium are excited about, and look forward to continuing to improve.

4 comments:

Anonymous said...

I am sure you may have seen Chickenfoot - a Firefox extension from MII - which uses many features of Greasemonkey.

I foresee a lot of potential for Chickenfoot in the time to come. Therefore, I would like to see a further enhanced Chickenfoot like extension in Chrome browser.

It would be nice and wise if the efforts in Chromium are more collaborative and thus converging.

Thanks for your great innovative works !

p m b c a n AT G m a i l

Johan Sundström said...

Some of us wanting to adopt Chromium are very much anticipating this, too (to the ridiculous point where it is as essential as AdBlock+ or more :-).

On-disc-changes broadcasting sounds interesting and like taking dynamic change to levels only dreamed of in Mozilla land.

Anonymous said...

Learn to play well with GreaseMetal? ;)

Anonymous said...

I could care less about "Chickenfoot" or crappy Firefox.

I just want to see Greasemonkey support added natively to Chromium, Chromium is a million times faster than Firefox, and the only thing Chromium is missing is Greasemonkey support.

Chickenfoot can die off with Firefox, but please add Greasemonkey support to Chromium, and please add support for:


GM_registerMenuCommand
GM_getValue
GM_listValues
GM_deleteValue
GM_setValue
GM_xmlhttpRequest