Martii / greasemonkey

Greasemonkey is a user script manager for Firefox.
http://userscripts.org/users/marti
Other
7 stars 2 forks source link

Greasemonkey HEAD + Tab Mix Plus incompatibility #12

Closed Martii closed 6 years ago

Martii commented 13 years ago
Mozilla/5.0 (X11; Linux x86_64; rv:6.0) Gecko/20100101 Firefox/6.0
Greasemonkey HEAD
Tab Mix Plus 0.3.8.6

Greasemonkey has introduced a conflict with Tab Mix Plus when trying to open links in new tabs. It is unclear which add-on is responsible but it has been experienced by myself and at least one other at:

Anonymous wrote:
This version and the August 23 nightly have a bug that stops firefox 6 from being able to open links in a new tab when you middle click on them. DIsabling this or reverting to the previous version restores the functionality.
Anonymous wrote:
Same as Anonymous (23 August, 2011 16:58)

Opening links in new tabs (middle click) dont work in firefox 6. Downgrade to 0.9.8 solves problem for me.
Roland Spencer reviewed:
in version 0.9.10 and the August 23rd nightly, there is a bug which causes middle clicking of links to no longer function at all. Disabling GM or reverting to earlier versions (0.9.8 or the August 12th nightly) fixes the issue.

Temporary workaround is to disable TMP or revert to an earlier GM version.

See also: TMP forum for cross-stream reporting.

Martii commented 13 years ago

Reported upstream at greasemonkey#1406

Martii commented 13 years ago

Comment upstream

Issue first appears in greasemonkey@d6dd73a
Martii commented 13 years ago

Comment cross-stream

@makondo
I've returned false all the time in TMPs contentLinks.js and this seems to resolve the middle clicking and Ctrl+click issues with GM HEAD and TMP release.
function TMP_isGreasemonkeyScript(event, target) {
  if (event.button == 2)
    return false;

  if ("GM_BrowserUI" in window && GM_getEnabled()) {
    var url = target.getAttribute("href");
    if (url && url.match(/\.user\.js(\?|$)/i))
      return false; // return true;
  }

  return false;
}
I believe that this test is no longer necessary in the current GM HEAD and nightly builds from Anthony. Please confirm.

Thanks,
- Marti -

See also greasemonkey#1406
Martii commented 13 years ago

Comment upstream

Comment cross-stream
@makondo
I've returned false all the time in TMPs contentLinks.js and this seems to resolve the middle clicking and Ctrl+click issues with GM HEAD and TMP release.
function TMP_isGreasemonkeyScript(event, target) {
  if (event.button == 2)
    return false;

  if ("GM_BrowserUI" in window && GM_getEnabled()) {
    var url = target.getAttribute("href");
    if (url && url.match(/\.user\.js(\?|$)/i))
      return false; // return true;
  }

  return false;
}
I believe that this test is no longer necessary in the current GM HEAD and nightly builds from Anthony. Please confirm.

Thanks,
- Marti -

See also greasemonkey#1406
@arantius Please confirm as well. Modified tabmixplus 0.3.8.6 with version bump to 8.0a2 (portions of TMP don't work in this alpha btw) can be found here.
Martii commented 13 years ago
arantius wrote:
Tentatively WONTFIXing this, because the error is purely inside TMP, not our code. I'm trying to reach out to their developer.
arantius wrote:
Confirmed with TMP developer, fix will be there.

Will close shortly after TMP releases a fix on AMO.

Additional commit found at greasemonkey@3c49385 (GM 0.9.11) to "workaround" this issue. This is a temporary fix since the beta dev build of TMP appears to not have any kind fix as of yet.

Martii commented 13 years ago

Comment cross-stream

@makondo and onemen, Why exactly is TMP intercepting QSP parms on user.js files?

About 6 months ago I discovered that a user.js with a QSP wasn't opening in a new window even in previous GM and TMP versions but I didn't put two and two together that TMP was doing this until upstream GM moved to an object. The suggested workaround given here:
I don't know if this was posted before or not since I haven't searched this thread, but the easiest fix for the compatibility issue between GM and TMP is to change line 449 in contentLinks.js from:
  if ("GM_BrowserUI" in window && GM_getEnabled()) {
to:
  if ("GM_BrowserUI" in window && Application.prefs.getValue("greasemonkey.enabled", false)) {
would be a little better however the GM workaround will eventually drop off when TMP chooses a different test. I can see if I can re-recommend an API specific to other add-on developers to Anthony however Moz is currently taking a lot of steps to eliminate the pollution to prevent add-on incompatibility just like this and may eventually reject TMP updates due to this. I do like TMP and I would like to throw around some ideas about how to resolve this but I need the question above answered first. Thanks, - Marti - See also: