tag:blogger.com,1999:blog-116454602024-03-07T03:39:41.180-08:00GreasespotThe weblog about greasemonkeybootshttp://www.blogger.com/profile/03885281513124696960noreply@blogger.comBlogger144125tag:blogger.com,1999:blog-11645460.post-56063377781631558802023-12-02T12:40:00.000-08:002023-12-03T09:04:36.178-08:00Greasemonkey 4.12 Release<p> The entire list of bugs handled in this release is also available via the <a href="https://github.com/greasemonkey/greasemonkey/milestone/94?closed=1">4.12 milestone</a>
on GitHub. If you are using this version and notice problems, it's best to let us know at <a href="http://groups.google.com/group/greasemonkey-dev">greasemonkey-dev</a> (and be clear that it's with this version).<br />
<br />New features:<br />
</p><ul><li>Ability to edit text @resource files. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2733">#2733</a>)<br /></li><li>Support for Firefox on Android. (<a href="https://github.com/greasemonkey/greasemonkey/issues/3173">#3173</a>)</li></ul><p>Fixed bugs:</p><ul style="text-align: left;"><li>Code highlighting for newer Javascript features. (<a href="https://github.com/greasemonkey/greasemonkey/issues/3115">#3115</a>)</li><li>An invalid user @match could break opening the monkey menu. (<a href="https://github.com/greasemonkey/greasemonkey/issues/3171">#3171</a>)<br /></li><li>Add a scroll bar when too many menu commands are registered to fit on one screen. (<a href="https://github.com/greasemonkey/greasemonkey/issues/3177">#3177</a>)<br /></li></ul>arantiushttp://www.blogger.com/profile/14641102142645956202noreply@blogger.com0tag:blogger.com,1999:blog-11645460.post-29133324591082207272021-01-27T17:00:00.001-08:002021-01-27T17:00:30.679-08:00Greasemonkey 4.11 ReleaseThe entire list of bugs handled in this release is also available via the <a href="https://github.com/greasemonkey/greasemonkey/milestone/93">4.11 milestone</a>
on GitHub. If you are using this version and notice problems, it's best to let us know at <a href="http://groups.google.com/group/greasemonkey-dev">greasemonkey-dev</a> (and be clear that it's with this version).<br />
<br />New features:<br />
<ul>
<li>Support translation for <tt>@name</tt> and <tt>@description</tt> of user scripts. (<a href="https://github.com/greasemonkey/greasemonkey/issues/3089">#3089</a>)
<li>First party support for <tt>GM.registerMenuCommand</tt>. (<a href="https://github.com/greasemonkey/greasemonkey/issues/3078">#3078</a>)
</ul>
arantiushttp://www.blogger.com/profile/14641102142645956202noreply@blogger.com0tag:blogger.com,1999:blog-11645460.post-14475231652928571512020-10-04T08:19:00.000-07:002020-10-04T08:19:02.127-07:00Greasemonkey 4.10 ReleaseThe entire list of bugs handled in this release is also available via the <a href="https://github.com/greasemonkey/greasemonkey/milestone/92">4.10 milestone</a>
on GitHub. (Due to a small human error (and the fact that they don't let you re-use version numbers), the version available from addons.mozilla.org is called "4.10.0" -- this is the same version.) If you are using this version and notice problems, it's best to let us know at <a href="http://groups.google.com/group/greasemonkey-dev">greasemonkey-dev</a> (and be clear that it's with this version).<br />
<br />New features:<br />
<ul>
<li>Accessibility enhancements: Appropriate metadata for and a script editor compatible with screen readers. (<a href="https://github.com/greasemonkey/greasemonkey/pull/3058">#3058</a>, <a href="https://github.com/greasemonkey/greasemonkey/pull/3059">#3059</a>, <a href="https://github.com/greasemonkey/greasemonkey/pull/3060">#3060</a>)
</ul>
Fixed bugs:<br />
<ul>
<li>GM_xmlHttpRequest(): status is null when readyState < 4. (<a href="https://github.com/greasemonkey/greasemonkey/issues/3068">#3068</a>)</li>
</ul>
arantiushttp://www.blogger.com/profile/14641102142645956202noreply@blogger.com0tag:blogger.com,1999:blog-11645460.post-3221123435704826582019-06-12T09:45:00.003-07:002019-06-12T09:45:49.593-07:00Greasemonkey 4.9 ReleaseThe entire list of bugs handled in this release is also available via the <a href="https://github.com/greasemonkey/greasemonkey/milestone/91">4.9 milestone</a>
on GitHub. If you are using this version and notice problems, it's best to let us know at <a href="http://groups.google.com/group/greasemonkey-dev">greasemonkey-dev</a> (and be clear that it's with this version).<br />
<br />
Fixed bugs:<br />
<ul>
<li>Error handling scripts with certain names (bug added in v4.8). (<a href="https://github.com/greasemonkey/greasemonkey/issues/3035">#3035</a>)</li>
</ul>
arantiushttp://www.blogger.com/profile/14641102142645956202noreply@blogger.com0tag:blogger.com,1999:blog-11645460.post-74371829126506719822019-05-08T07:31:00.000-07:002019-05-08T07:31:34.060-07:00Greasemonkey 4.8 ReleaseThe entire list of bugs handled in this release is also available via the <a href="https://github.com/greasemonkey/greasemonkey/milestone/90">4.8 milestone</a>
on GitHub. If you are using this version and notice problems, it's best to let us know at <a href="http://groups.google.com/group/greasemonkey-dev">greasemonkey-dev</a> (and be clear that it's with this version).<br />
<br />
Fixed bugs:<br />
<ul>
<li>Don't re-enable scripts when saving in editor. (<a href="https://github.com/greasemonkey/greasemonkey/pull/3008">#3008</a>)</li>
<li>"New user script" doesn't open a new tab. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2994">#2994</a>)</li>
<li>Log err.message instead of <unavailable> err object. (<a href="https://github.com/greasemonkey/greasemonkey/pull/2939">#2939</a>)</li>
</ul>
arantiushttp://www.blogger.com/profile/14641102142645956202noreply@blogger.com0tag:blogger.com,1999:blog-11645460.post-39298239385644270192018-08-28T07:34:00.001-07:002018-08-28T07:34:31.153-07:00Greasemonkey 4.7 ReleaseThe entire list of bugs handled in this release is also available via the <a href="https://github.com/greasemonkey/greasemonkey/milestone/89">4.6 milestone</a>
on GitHub. If you are using this version and notice problems, it's best to let us know at <a href="http://groups.google.com/group/greasemonkey-dev">greasemonkey-dev</a> (and be clear that it's with this version).<br />
<br />New features:<br />
<ul>
<li>Automatic update support (<a href="https://github.com/greasemonkey/greasemonkey/issues/2531">#2531</a>) </li>
<li>Per-user include/exclude/match settings (<a href="https://github.com/greasemonkey/greasemonkey/issues/2728">#2728</a>)</li>
</ul>
<b>Warning!</b> For the first time, automatic updates will destroy local edits made since install time. After that point, we track both install time and edit time and will not overwrite edits-since-install with new automatic updates. Unfortunately we weren't tracking this information until the feature was added.arantiushttp://www.blogger.com/profile/14641102142645956202noreply@blogger.com0tag:blogger.com,1999:blog-11645460.post-3248531978033586452018-07-12T12:04:00.006-07:002018-07-12T12:04:39.648-07:00Greasemonkey 4.6 ReleaseThe entire list of bugs handled in this release is also available via the <a href="https://github.com/greasemonkey/greasemonkey/milestone/88">4.6 milestone</a>
on GitHub. If you are using this version and notice problems, it's best to let us know at <a href="http://groups.google.com/group/greasemonkey-dev">greasemonkey-dev</a> (and be clear that it's with this version).<br />
<br />
Fixed bugs:<br />
<ul>
<li>Repair GM.xmlHttpRequest() when fetching XML content. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2980">#2980</a>) </li>
</ul>
New features:<br />
<ul>
<li>Added translations in several languages. </li>
<li>Users may specify global exclude patterns, where no user scripts will run. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2843">#2843</a>)</li>
</ul>
arantiushttp://www.blogger.com/profile/14641102142645956202noreply@blogger.com0tag:blogger.com,1999:blog-11645460.post-58705496959826334962018-06-28T12:55:00.001-07:002018-07-12T12:05:01.282-07:00Greasemonkey 4.5 ReleaseThe entire list of bugs handled in this release is also available via the <a href="https://github.com/greasemonkey/greasemonkey/milestone/87">4.5 milestone</a>
on GitHub. If you are using this version and notice problems, it's best to let us know at <a href="http://groups.google.com/group/greasemonkey-dev">greasemonkey-dev</a> (and be clear that it's with this version).<br />
<br />
Fixed bugs:<br />
<ul>
<li>Better importing of partial or corrupted backups. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2966">#2966</a>)</li>
<li>Correctly display script data when switching from one to another. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2963">#2963</a>)</li>
<li>Correctly display uninstallation of even the last script. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2957">#2957</a>)</li>
<li>Correctly handle removal of an @icon from a script. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2910">#2910</a>) </li>
</ul>
New features:<br />
<ul>
<li>The script editor interactively downloads newly referenced remote resources, and more clearly handle download errors. (<span id="goog_756288607"></span><a href="https://github.com/greasemonkey/greasemonkey/pull/2858">#2858</a>, <a href="https://github.com/greasemonkey/greasemonkey/pull/2900">#2900</a>)</li>
</ul>
arantiushttp://www.blogger.com/profile/14641102142645956202noreply@blogger.com0tag:blogger.com,1999:blog-11645460.post-66726716213679442602018-06-28T12:50:00.003-07:002018-06-28T12:50:34.765-07:00Help Translate Greasemonkey Into Your LanguageSince our complete WebExtension rewrite, Greasemonkey has been available in only a few languages. Currently: English, Dutch, French, German, and Japanese. If you speak any additional language fluently, feel free to join <a href="https://crowdin.com/project/greasemonkey/invite?d=85a5k42555u673c3e4q4q42363u29393e4j49307o433p4n46373">our Crowdin project</a> and submit translations for that language. We'll be happy for the contribution!arantiushttp://www.blogger.com/profile/14641102142645956202noreply@blogger.com0tag:blogger.com,1999:blog-11645460.post-80917208125714161692018-05-23T07:10:00.001-07:002018-05-23T07:12:37.831-07:00Greasemonkey 4.4 ReleaseThe entire list of bugs handled in this release is also available via the <a href="https://github.com/greasemonkey/greasemonkey/issues?q=milestone%3A4.4">4.4 milestone</a>
on GitHub. If you are using this version and notice problems, it's best to let us know at <a href="http://groups.google.com/group/greasemonkey-dev">greasemonkey-dev</a> (and be clear that it's with this version).<br />
<br />
Fixed bugs:<br />
<ul>
<li>Scripts with icons or resources could sometimes fail to save, including when only the enabled/disabled status changes. (<a href="https://github.com/greasemonkey/greasemonkey/pull/2909">#2909</a>, <a href="https://github.com/greasemonkey/greasemonkey/issues/2943">#2943</a>)</li>
</ul>
New features:<br />
<ul>
<li>Script editor will prompt, when closing with unsaved edits. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2886">#2886</a>) </li>
<li>Support for backup and restore of installed scripts. (With <i>very</i> limited support for importing ViolentMonkey and TamperMonkey backups.) (<a href="https://github.com/greasemonkey/greasemonkey/issues/2747">#2747</a>)</li>
<li>Many improvements to the Monkey Menu. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2620">#2620</a>, <a href="https://github.com/greasemonkey/greasemonkey/issues/2809">#2809</a>, <a href="https://github.com/greasemonkey/greasemonkey/issues/2833">#2833</a>, <a href="https://github.com/greasemonkey/greasemonkey/pull/2913">#2913</a>)</li>
</ul>
This release version is actually "4.4.0" due to a user error with the Mozilla Add-ons site (and a subtle interface quirk it has).<br />
<ul>
</ul>
arantiushttp://www.blogger.com/profile/14641102142645956202noreply@blogger.com6tag:blogger.com,1999:blog-11645460.post-43067084897497166242018-03-16T11:15:00.000-07:002018-03-16T11:15:44.902-07:00Greasemonkey 4.3 ReleaseThe entire list of bugs handled in this release is also available via the <a href="https://github.com/greasemonkey/greasemonkey/issues?q=milestone%3A4.3">4.3 milestone</a>
on GitHub. If you are using this version and notice problems, it's best to let us know at <a href="http://groups.google.com/group/greasemonkey-dev">greasemonkey-dev</a> (and be clear that it's with this version).<br />
<br />
Fixed bugs:<br />
<ul>
<li>The <code><i>open_in_background</i></code> feature of <code>GM.openInTab()</code> works correctly. (<a href="https://github.com/greasemonkey/greasemonkey/pull/2672">#2672</a>)</li>
<li>Installation of user scripts works even from sites with strict Content Security Policies, like GitHub. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2631">#2631</a>)</li>
</ul>
New features:<br />
<ul>
<li>Even "forbidden" headers (e.g. Cookie, Host, User-Agent) may be specified when calling <span style="font-family: "Courier New", Courier, monospace;">GM.xmlHttpRequest()</span>. (<a href="https://github.com/greasemonkey/greasemonkey/pull/2723">#2723</a>)</li>
<li>Interface strings are translated into multiple languages. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2527">#2527</a>)</li>
<li>Greasemonkey will not install scripts while disabled. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2643">#2643</a>)</li>
<li>Monkey menu has new Firefox-native look and feel. (<a href="https://github.com/greasemonkey/greasemonkey/pull/2805">#2805</a>) </li>
<li>New scalable icon. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2739">#2739</a>)</li>
</ul>
arantiushttp://www.blogger.com/profile/14641102142645956202noreply@blogger.com0tag:blogger.com,1999:blog-11645460.post-17226661165729328902018-01-19T08:14:00.003-08:002018-01-19T08:14:50.166-08:00Greasemonkey 4.2 ReleaseThe entire list of bugs handled in this release is also available via the <a href="https://github.com/greasemonkey/greasemonkey/issues?q=milestone%3A4.2">4.2 milestone</a>
on GitHub. If you are using this version and notice problems, it's best to let us know at <a href="http://groups.google.com/group/greasemonkey-dev">greasemonkey-dev</a> (and be clear that it's with this version).<br />
<br />
Fixed bugs:<br />
<ul>
<li>Use of the magic TLD is now reflected correctly in the monkey menu user script list. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2795">#2795</a>)</li>
<li>Privileged API handlers will now refuse to continue without the appropriate @grant entry. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2777">#2777</a>)</li>
<li>Native <span style="font-family: "Courier New", Courier, monospace;">xmlHttpRequest</span> now handles URLs relative to the page correctly. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2771">#2771</a>)</li>
<li>When globally enabling/disabling Greasemonkey, this setting is saved across Firefox restarts. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2652">#2652</a>)</li>
</ul>
New features:<br />
<ul>
<li>Firefox for Android is marked compatible. </li>
<li>Improved keyboard accessibility of the Monkey Menu. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2794">#2794</a>)</li>
<li>Added a save button to the user script editor (Ctrl-S still works). (<a href="https://github.com/greasemonkey/greasemonkey/issues/2785">#2785</a>)</li>
<li>User scripts will execute on local <span style="font-family: "Courier New", Courier, monospace;">file:///</span>s. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2693">#2693</a>)</li>
<li>The script install dialog appears in a dialog, not a browser tab. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2641">#2641</a>)</li>
<li>When the <span style="font-family: "Courier New", Courier, monospace;">==UserScript==</span> block contains an unrecognized key, the entire key name is indicated in the warning message. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2684">#2684</a>)</li>
</ul>
arantiushttp://www.blogger.com/profile/14641102142645956202noreply@blogger.com0tag:blogger.com,1999:blog-11645460.post-58707973720353974162017-12-11T12:12:00.000-08:002017-12-12T13:17:07.479-08:00Greasemonkey 4.1 ReleaseThe entire list of bugs handled in this release is also available via the <a href="https://github.com/greasemonkey/greasemonkey/issues?q=milestone%3A4.1">4.1 milestone</a>
on GitHub. If you are using this version and notice problems, it's best to let us know at <a href="http://groups.google.com/group/greasemonkey-dev">greasemonkey-dev</a> or <a href="https://github.com/greasemonkey/greasemonkey/issues/new">log an issue</a> (and be clear that it's with this version).<br />
<br />
Fixed bugs:<br />
<ul>
<li>For GM.xmlHttpRequest, set the finalURL (<a href="https://github.com/greasemonkey/greasemonkey/issues/2692">#2692</a>) and support onprogress (<a href="https://github.com/greasemonkey/greasemonkey/issues/2712">#2712</a>).</li>
<li>Update @match handling to be consistent with pre-existing behavior. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2673">#2673</a>, <a href="https://github.com/greasemonkey/greasemonkey/issues/2715">#2715</a>)</li>
<li>Handle user scripts that end with a comment. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2670">#2670</a>)</li>
<li>Fix changing @noframes in the user script editor. (<a href="https://github.com/greasemonkey/greasemonkey/pull/2637">#2637</a>)</li>
</ul>
New features:<br />
<ul>
<li>The "save" action in the user script editor is platform natural. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2690">#2690</a>)</li>
<li>Add a "new script" feature, for creating a new user script from scratch. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2645">#2645</a>)</li>
<li>The script list in the monkey menu is split into "active" and "inactive" sections. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2585">#2585</a>)</li>
</ul>
arantiushttp://www.blogger.com/profile/14641102142645956202noreply@blogger.comtag:blogger.com,1999:blog-11645460.post-10909060176341060452017-09-20T13:57:00.005-07:002017-10-25T08:10:33.590-07:00Greasemonkey 4 AnnouncementGreasemonkey has been a Firefox extension for well over a decade, with <a href="https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/versions/?page=3#version-0.3.5">version 0.3.5</a> dating from 2005. We've grown and changed a lot over that time. With the <a href="https://blog.mozilla.org/addons/2017/02/16/the-road-to-firefox-57-compatibility-milestones/">upcoming Firefox 57 release</a>, we need to change even more. Mozilla is completely replacing the extension system in Firefox, to align with the budding <a href="https://www.w3.org/community/browserext/">Browser Extension</a> standard, based on/shared with Google Chrome.<br />
<br />
As a result, version 4 of Greasemonkey is a nearly complete re-write. Its interface and feature set have been rebuilt in order to best to work with coming Firefox versions. A variety of compromises have been made. We've elected to make a rare <b>backwards incompatible</b> change.<br />
<br />
If you are a regular user, please continue reading <a href="https://www.greasespot.net/2017/09/greasemonkey-4-for-users.html">Greasemonkey 4 For Users</a>.<br />
<br />
If you are a developer, please continue reading <a href="https://www.greasespot.net/2017/09/greasemonkey-4-for-script-authors.html">Greasemonkey 4 For Script Authors</a>.arantiushttp://www.blogger.com/profile/14641102142645956202noreply@blogger.com3tag:blogger.com,1999:blog-11645460.post-48287809233369570032017-09-20T13:57:00.004-07:002017-11-12T08:07:45.465-08:00Greasemonkey 4 For Script AuthorsAs mentioned in the <a href="https://www.greasespot.net/2017/09/greasemonkey-4-announcement.html">main post</a>, Greasemonkey 4 is changing to be compatible with the Browser Extension API. At its core, this set of APIs is completely asynchronous. Greasemonkey's old "<span style="font-family: "courier new" , "courier" , monospace;">GM_</span>" APIs are typically synchronous.<br />
<h3>
Why?</h3>
There exist other user script engines which have already done the work of bridging the gap. Greasemonkey has elected to move exclusively towards a more performant asynchronous model. Eventually in the future, such scripts will be faster.<br />
<br />
<h3>
What?</h3>
The <a href="https://wiki.greasespot.net/Main_Page">Greasespot Wiki</a> has been updated to explain Greasemonkey 4 in detail. Here's a quick summary.<br />
<br />
First, there is only an embedded editor. Browser Extensions have no access to the file system, so you can no longer author user scripts in your familiar text editor.<br />
<br />
There is only one object provided to user scripts now, named <span style="font-family: "courier new" , "courier" , monospace;">GM</span>. It has several properties. One of them is <span style="font-family: "courier new" , "courier" , monospace;">info</span> – the equivalent of the old <span style="font-family: "courier new" , "courier" , monospace;">GM_info</span>. There are also several methods of this object: <span style="font-family: "courier new" , "courier" , monospace;">getResourceUrl</span>, <span style="font-family: "courier new" , "courier" , monospace;">deleteValue</span>/<span style="font-family: "courier new" , "courier" , monospace;">getValue</span>/<span style="font-family: "courier new" , "courier" , monospace;">listValues</span>/<span style="font-family: "courier new" , "courier" , monospace;">setValue</span>, <span style="font-family: "courier new" , "courier" , monospace;">xmlHttpRequest</span>.<br />
<br />
To use these methods you still need <span style="font-family: "courier new" , "courier" , monospace;">@grant</span>, and use the new name, e.g.:<br />
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">// @grant GM.setValue</span></blockquote>
The new form has a dot, where the old form has an underscore. You may specify both <span style="font-family: "courier new" , "courier" , monospace;">@grant</span>s, if you'd like to be compatible with Greasemonkey 4 and other user script engines at the same time. As of today, there is <i>no support</i> for: <span style="font-family: "courier new" , "courier" , monospace;">GM_log</span> (use console.log), <span style="font-family: "courier new" , "courier" , monospace;">GM_addStyle</span>, <span style="font-family: "courier new" , "courier" , monospace;">GM_registerMenuCommand</span>, nor <span style="font-family: "courier new" , "courier" , monospace;">GM_getResourceText</span>.<br />
<br />
In general these methods work like their old counterparts, but their return values are <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise">Promise</a>s. The async and await keywords make asynchronous promises easy to work with. For example:<br />
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">// ==UserScript==<br />// @name GM set/get demo<br />// @grant GM.getValue<br />// @grant GM.setValue<br />// ==/UserScript==<br /><br />(async function() {<br />console.log('Starting the get/set demo ...');<br />let i = <b>await</b> GM.getValue('i', 0);<br />console.log(`This time, i was ${i}.`);<br />GM.setValue('i', i+1);<br />})();</span></blockquote>
Here the <span style="font-family: "courier new" , "courier" , monospace;">GM.getValue()</span> method actually returns a promise, but the <span style="font-family: "courier new" , "courier" , monospace;"><b>await</b></span> keyword transparently converts that to its resolved value, allowing us to write code just as if the value was directly returned – with neither callbacks nor promise resolution. See the documentation on <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/async_function">async</a> and <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await">await</a>.<br />
<br />
If you'd like your script to be compatible with Greasemonkey 4 and also Greasemonkey 3 (or other user script engines), we have provided a <a href="https://greasemonkey.github.io/gm4-polyfill/gm4-polyfill.js">polyfill</a>, which makes new-style API calls work on top of older engines. To use it: 1) keep your old-API @grant line, 2) add a new-API @grant line, 4) require the polyfill script, 4) switch your code to use new-API style (and probably async/await). So the above example might look like:<br />
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">// ==UserScript==<br />// @name GM set/get demo<br />// @require https://greasemonkey.github.io/gm4-polyfill/gm4-polyfill.js</span><span style="font-family: "courier new" , "courier" , monospace;"><span style="font-family: "courier new" , "courier" , monospace;">// @grant GM.getValue</span></span><span style="font-family: "courier new" , "courier" , monospace;"><span style="font-family: "courier new" , "courier" , monospace;"><span style="font-family: "courier new" , "courier" , monospace;"><br />// @grant GM_getValue</span></span></span><span style="font-family: "courier new" , "courier" , monospace;"><span style="font-family: "courier new" , "courier" , monospace;"><span style="font-family: "courier new" , "courier" , monospace;"><span style="font-family: "courier new" , "courier" , monospace;"><span style="font-family: "courier new" , "courier" , monospace;">// @grant GM.setValue</span></span><br />// @grant GM_setValue</span></span><br />// ==/UserScript==<br />...</span></blockquote>
With the exact same new-API style code as above. Such a script can be installed in either Greasemonkey 4 or Greasemonkey 3 (or TamperMonkey, or ViolentMonkey, etc.) and work as intended.<br />
<h3>
unsafeWindow</h3>
Due to the more limited abilities that the new extension system gives us, we are currently unable to make <span style="font-family: "courier new" , "courier" , monospace;">@grant none</span> scripts work in the same way. Most importantly, they have a different connection to <span style="font-family: "courier new" , "courier" , monospace;">unsafeWindow</span>. For the short term at least, it's a good idea to adopt <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Content_scripts#Sharing_objects_with_page_scripts">cloneInto and exportFunction</a>.<br />
<h3>
<b>Naming</b><b> </b></h3>
Do note that new style APIs have slightly different names. In short, a consistent naming style has been adopted: all words and acronyms get a consistent case. So what was before <span style="font-family: "courier new" , "courier" , monospace;">GM_getResourceU<b>RL</b></span> is now <span style="font-family: "courier new" , "courier" , monospace;">GM.getResourceU<b>rl</b></span>. What was <span style="font-family: "courier new" , "courier" , monospace;">GM_xml<b>h</b>ttpRequest</span> is now <span style="font-family: "courier new" , "courier" , monospace;">GM_xml<b>H</b>ttpRequest</span>. In the near future the <a href="http://wiki.greasespot.net/">Greasespot Wiki</a> will be updated with all details of the new APIs, including exact names with case.<br />
<h3>
<b>Feedback</b> </h3>
We welcome feedback, reach out via the <a href="https://groups.google.com/forum/#%21forum/greasemonkey-users">greasemonkey-users</a> discussion group. Please also keep in mind the volunteer nature of this open source project when doing so!arantiushttp://www.blogger.com/profile/14641102142645956202noreply@blogger.com4tag:blogger.com,1999:blog-11645460.post-23847797973863028072017-09-20T13:57:00.003-07:002017-10-25T08:42:25.252-07:00Greasemonkey 4 For UsersAs mentioned in the <a href="https://www.greasespot.net/2017/09/greasemonkey-4-announcement.html">main post</a>, Greasemonkey 4 is changing how it runs user scripts. Many user scripts will continue to run as expected, but this <b>will break</b> some scripts. If you rely on such scripts, you might want to install <a href="https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/">Violentmonkey</a> or <a href="https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/">Tampermonkey</a>, both of which provide better compatibility for existing scripts.<br />
<h3>
Scripts</h3>
If you'd prefer to stick with Greasemonkey, you'll need to wait for the script to be updated to be compatible. Find the original author of your script, and ask them to update for Greasemonkey 4 compatibility. Referencing this post may help. And please know that we'll continue working to improve further and further as time goes on!<br />
<h3>
Features</h3>
Due to the external deadline (when Firefox 57 comes, Greasemonkey 3 won't work anymore) not all features you're used to are available. For example: Firefox Sync and script auto update are missing. There are no per-script settings (custom include/exclude), and some of the UI is still quite basic. This as well will be improved in the future.<br />
<br />
We welcome feedback, reach out via the <a href="https://groups.google.com/forum/#%21forum/greasemonkey-users">greasemonkey-users</a> discussion group. Please also keep in mind the volunteer nature of this open source project when doing so!arantiushttp://www.blogger.com/profile/14641102142645956202noreply@blogger.com0tag:blogger.com,1999:blog-11645460.post-85192762983479012932017-09-19T07:08:00.000-07:002017-09-19T07:08:19.756-07:00Greasemonkey 3.12 ReleaseThe entire list of bugs handled in this release is also available via the <a href="https://github.com/greasemonkey/greasemonkey/issues?q=milestone%3A3.12">3.12 milestone</a>
on GitHub. Note that as always it takes some time for Mozilla to
review the new version. If you're interested in staying on the bleeding
edge, try installing the <a href="https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/versions/beta">development channel</a> beta release. If you are using this version and notice problems, it's best to <a href="https://github.com/greasemonkey/greasemonkey/issues/new">log an issue</a> or let us know at <a href="http://groups.google.com/group/greasemonkey-dev">greasemonkey-dev</a> (and be clear that it's with this version).<br />
<br />
Fixed bugs:<br />
<ul>
<li>Repair rare breakage in <span style="font-family: "Courier New",Courier,monospace;">GM_getValue</span>/<span style="font-family: "Courier New",Courier,monospace;">GM_setValue</span>. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2506">#2506</a>) </li>
</ul>
New features:<br />
<ul>
<li>Migrate existing scripts to a WebExtension (for Firefox 57+) compatible data storage location. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2551">#2551</a>)</li>
</ul>
arantiushttp://www.blogger.com/profile/14641102142645956202noreply@blogger.com0tag:blogger.com,1999:blog-11645460.post-73744528239904424092017-04-25T13:18:00.001-07:002017-04-25T13:18:38.890-07:00Greasemonkey 3.11 ReleaseThe entire list of bugs handled in this release is also available via the <a href="https://github.com/greasemonkey/greasemonkey/issues?q=milestone%3A3.11">3.10 milestone</a>
on GitHub. Note that as always it takes some time for Mozilla to
review the new version. If you're interested in staying on the bleeding
edge, try installing the <a href="https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/versions/beta">development channel</a> beta release. If you are using this version and notice problems, it's best to <a href="https://github.com/greasemonkey/greasemonkey/issues/new">log an issue</a> or let us know at <a href="http://groups.google.com/group/greasemonkey-dev">greasemonkey-dev</a> (and be clear that it's with this version).<br />
<br />
Fixed bugs:<br />
<ul>
<li>Repair broken language check. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2488">#2488</a>) </li>
<li>Compatibility with new strict process sandbox. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2485">#2485</a>)</li>
</ul>
arantiushttp://www.blogger.com/profile/14641102142645956202noreply@blogger.com2tag:blogger.com,1999:blog-11645460.post-43456642984775016302017-02-22T06:01:00.001-08:002017-02-22T06:07:04.768-08:00Greasemonkey 3.10 ReleaseThe entire list of bugs handled in this release is also available via the <a href="https://github.com/greasemonkey/greasemonkey/issues?utf8=%E2%9C%93&q=is%3Aclosed+milestone%3A3.10">3.10 milestone</a>
on GitHub. Note that as always it takes some time for Mozilla to
review the new version. If you're interested in staying on the bleeding
edge, try installing the <a href="https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/#install-beta">development channel</a> beta release. If you are using this version and notice problems, it's best to <a href="https://github.com/greasemonkey/greasemonkey/issues/new">log an issue</a> or let us know at <a href="http://groups.google.com/group/greasemonkey-dev">greasemonkey-dev</a> (and be clear that it's with this version).<br />
<br />
Fixed bugs:<br />
<ul>
<li><span class="linkifyplus">Fix compatibility with Firefox 54. (</span><a href="https://github.com/greasemonkey/greasemonkey/issues/2480">#2480</a>)</li>
</ul>
arantiushttp://www.blogger.com/profile/14641102142645956202noreply@blogger.com0tag:blogger.com,1999:blog-11645460.post-4955942588010515522016-08-19T06:17:00.004-07:002016-08-19T06:17:56.284-07:00Greasemonkey 3.9 ReleaseThe entire list of bugs handled in this release is also available via the <a href="https://github.com/greasemonkey/greasemonkey/issues?utf8=%E2%9C%93&q=is%3Aclosed+milestone%3A3.9">3.9 milestone</a>
on GitHub. Note that as always it takes some time for Mozilla to
review the new version. If you're interested in staying on the bleeding
edge, try installing the <a href="https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/#install-beta">development channel</a> beta release. If you are using this version and notice problems, it's best to <a href="https://github.com/greasemonkey/greasemonkey/issues/new">log an issue</a> or let us know at <a href="http://groups.google.com/group/greasemonkey-dev">greasemonkey-dev</a> (and be clear that it's with this version).<br />
<br />
Feature enhancements:<br />
<ul>
<li>Improve the performance of <span style="font-family: "Courier New",Courier,monospace;">GM_getValue</span>/<span style="font-family: "Courier New",Courier,monospace;">GM_setValue</span>. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2197">#2197</a>, <a href="https://github.com/greasemonkey/greasemonkey/issues/2025">#2025</a>) </li>
<li>Add a rich tooltip to the Greasemonkey toolbar button. (<a href="https://github.com/greasemonkey/greasemonkey/pull/2377">#2377</a>, <a href="https://github.com/greasemonkey/greasemonkey/pull/2418">#2418</a>) </li>
<li><span style="font-family: "Courier New",Courier,monospace;">GM_getResourceText</span> supports a second (responseType) parameter, for better compatibility with binary files. (<a href="https://github.com/greasemonkey/greasemonkey/pull/2376">#2376</a>)</li>
</ul>
Fixed bugs:<br />
<ul>
<li>Global exclude rules no longer require a Firefox restart to take effect. (<a href="https://github.com/greasemonkey/greasemonkey/pull/2410">#2410</a>) </li>
<li>A web page whose url ends in ".user.js" could fail to load. (<a href="https://github.com/greasemonkey/greasemonkey/pull/2407">#2407</a>) </li>
<li>A script whose name ends in ".db" could fail. (<a href="https://github.com/greasemonkey/greasemonkey/pull/2402">#2402</a>)</li>
</ul>
arantiushttp://www.blogger.com/profile/14641102142645956202noreply@blogger.com0tag:blogger.com,1999:blog-11645460.post-16484051037425705562016-04-28T06:23:00.000-07:002016-04-28T06:23:15.786-07:00Greasemonkey 3.8 ReleaseThe entire list of bugs handled in this release is also available via the <a href="https://github.com/greasemonkey/greasemonkey/issues?utf8=%E2%9C%93&q=is%3Aclosed+milestone%3A3.8">3.8 milestone</a>
on GitHub. Note that as always it takes some time for Mozilla to
review the new version. If you're interested in staying on the bleeding
edge, try installing the <a href="https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/#install-beta">development channel</a> beta release. If you are using this version and notice problems, it's best to <a href="https://github.com/greasemonkey/greasemonkey/issues/new">log an issue</a> or let us know at <a href="http://groups.google.com/group/greasemonkey-dev">greasemonkey-dev</a> (and be clear that it's with this version).<br />
<br />
Feature enhancements:<br />
<ul>
<li>Scripts can now detect whether they are operating in Private Mode or not. (<a href="https://github.com/greasemonkey/greasemonkey/pull/2199">#2199</a>)</li>
</ul>
Fixed bugs:<br />
<ul>
<li>Corrected a situation wherein some scripts could be executed twice. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2371">#2371</a>) </li>
<li>Improved reliability of Sync service. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2351">#2351</a>)</li>
<li>Improved handling of HTML pages served with <span style="font-family: "Courier New",Courier,monospace;">.user.js</span> URLs. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2280">#2280</a>)</li>
</ul>
arantiushttp://www.blogger.com/profile/14641102142645956202noreply@blogger.com0tag:blogger.com,1999:blog-11645460.post-89523443103682767772016-02-19T07:11:00.000-08:002016-02-20T06:56:45.939-08:00Greasemonkey 3.7 ReleaseThe entire list of bugs handled in this release is also available via the <a href="https://github.com/greasemonkey/greasemonkey/issues?utf8=%E2%9C%93&q=is%3Aclosed+milestone%3A3.7">3.7 milestone</a>
on GitHub. Note that as always it takes some time for Mozilla to
review the new version. If you're interested in staying on the bleeding
edge, try installing the <a href="https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/#install-beta">development channel</a> beta release. If you are using this version and notice problems, it's best to <a href="https://github.com/greasemonkey/greasemonkey/issues/new">log an issue</a> or let us know at <a href="http://groups.google.com/group/greasemonkey-dev">greasemonkey-dev</a> (and be clear that it's with this version).<br />
<br />
Feature enhancements:<br />
<ul>
<li>Added a (subtle) indicator for scripts that can not / will not download updates. (<a href="https://github.com/greasemonkey/greasemonkey/pull/2358">#2358</a>)</li>
</ul>
Fixed bugs:<br />
<ul>
<li>Using @resource URLs for images could fail to work in multi-process Firefox. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2341">#2341</a>)</li>
<li>Invalid metadata in the template prevented the "New Script" feature. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2336">#2336</a>)</li>
<li>Drag-and-drop install of a script could launch two install windows. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2292">#2292</a>)</li>
</ul>
arantiushttp://www.blogger.com/profile/14641102142645956202noreply@blogger.com0tag:blogger.com,1999:blog-11645460.post-33359919671466700582015-11-20T08:34:00.004-08:002015-11-20T08:34:18.942-08:00Greasemonkey 3.6 ReleaseThe entire list of bugs handled in this release is also available via the <a href="https://github.com/greasemonkey/greasemonkey/issues?utf8=%E2%9C%93&q=is%3Aclosed+milestone%3A3.6">3.6 milestone</a>
on GitHub. Note that as always it takes some time for Mozilla to
review the new version. If you're interested in staying on the bleeding
edge, try installing the <a href="https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/#install-beta">development channel</a> beta release. If you are using this version and notice problems, it's best to <a href="https://github.com/greasemonkey/greasemonkey/issues/new">log an issue</a> or let us know at <a href="http://groups.google.com/group/greasemonkey-dev">greasemonkey-dev</a> (and be clear that it's with this version).<br />
<br />
Feature enhancements:<br />
<ul>
<li>Better support for scripts with a very large number of <span style="font-family: "Courier New",Courier,monospace;">@include</span>/<span style="font-family: "Courier New",Courier,monospace;">@exclude</span>/<span style="font-family: "Courier New",Courier,monospace;">@match</span> rules. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2318">#2318</a>)</li>
<li>Display a notification to the user when there is a problem parsing an edited script. (<a href="https://github.com/greasemonkey/greasemonkey/pull/2319">#2319</a>)</li>
<li>In <span style="font-family: "Courier New",Courier,monospace;">GM_info</span> the serving URL for an <span style="font-family: "Courier New",Courier,monospace;">@resource</span> is listed. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2281">#2281</a>) </li>
<li>Added support for <span style="font-family: "Courier New",Courier,monospace;">@run-at document-idle</span>. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2109">#2109</a>)</li>
</ul>
Fixed bugs:<br />
<ul>
<li>Repair compatibility of <span style="font-family: "Courier New",Courier,monospace;">@resource</span> files and certain serving contexts for recent versions of Firefox. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2326">#2326</a>) </li>
<li>Correctly refresh files when changing (e.g.) <span style="font-family: "Courier New",Courier,monospace;">@require</span> lines in a script. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2311">#2311</a>) </li>
<li>Repaired binary behavior of <span style="font-family: "Courier New",Courier,monospace;">GM_xmlhttpRequest</span>. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2265">#2265</a>)</li>
</ul>
arantiushttp://www.blogger.com/profile/14641102142645956202noreply@blogger.com0tag:blogger.com,1999:blog-11645460.post-18692427654486172372015-10-20T07:05:00.000-07:002015-10-20T07:05:41.115-07:00Greasemonkey 3.5 ReleaseThe entire list of bugs handled in this release is also available via the <a href="https://github.com/greasemonkey/greasemonkey/issues?q=is%3Aissue+is%3Aclosed+milestone%3A3.5">3.5 milestone</a>
on GitHub. Note that as always it takes some time for Mozilla to
review the new version. If you're interested in staying on the bleeding
edge, try installing the <a href="https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/#install-beta">development channel</a> beta release. If you are using this version and notice problems, it's best to <a href="https://github.com/greasemonkey/greasemonkey/issues/new">log an issue</a> or let us know at <a href="http://groups.google.com/group/greasemonkey-dev">greasemonkey-dev</a> (and be clear that it's with this version).<br />
<br />
Feature enhancements:<br />
<ul>
<li>Restored "more" link in Add-ons Manager, add metadata support to fill it. (<a href="https://github.com/greasemonkey/greasemonkey/issues/1944">#1944</a>)</li>
<li>The Options window can (usually) be resized. (<a href="https://github.com/greasemonkey/greasemonkey/pull/2194">#2194</a>)</li>
<li>Allow scripting about:reader pages. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2195">#2195</a>) </li>
<li>Various performance/efficiency enhancements. (<a href="https://github.com/greasemonkey/greasemonkey/pull/2243">#2243</a>, <a href="https://github.com/greasemonkey/greasemonkey/pull/2259">#2259</a>)</li>
<li>Allow .cmd file as editor on Windows. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2271">#2271</a>)</li>
</ul>
Fixed bugs:<br />
<ul>
<li>The GM_getValue API behavior matches the documentation. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2151">#2151</a>) </li>
<li>Repaired the Greasemonkey menus. (<a href="https://github.com/greasemonkey/greasemonkey/issues/2270">#2270</a>, <a href="https://github.com/greasemonkey/greasemonkey/pull/2273">#2273</a>, <a href="https://github.com/greasemonkey/greasemonkey/issues/2276">#2276</a>)</li>
</ul>
arantiushttp://www.blogger.com/profile/14641102142645956202noreply@blogger.com0tag:blogger.com,1999:blog-11645460.post-2441237829262272112015-09-23T09:18:00.000-07:002015-09-23T09:18:21.292-07:00The Location Hack Is DeadFor most of Greasemonkey's history (since version 0.5 in 2005, until version 2.0 in 2014, still today if the script <span style="font-family: "Courier New",Courier,monospace;">@grant</span>s privileged APIs) scripts were guaranteed to operate in a restricted scope. Interacting with scripts on the page was difficult. The "location hack" was a technique designed to bridge this gap.<br />
<br />
As of Firefox 39.0.3 (due to a <a href="https://www.mozilla.org/en-US/security/advisories/mfsa2015-78/">security related</a> update) the location hack was broken. All the user scripts which relied on it broke along with that update.<br />
<br />
This post is just to get the word out that the location hack is no longer necessary. Read more at the wiki's <a href="http://wiki.greasespot.net/Content_Script_Injection">Content Script Injection</a> page, but the short answer is that if your script previously needed the location hack, you should be able to replace it with <span style="font-family: "Courier New",Courier,monospace;">window.eval()</span> and continue on your way.arantiushttp://www.blogger.com/profile/14641102142645956202noreply@blogger.com0