update for new Greasemonkey
This commit is contained in:
parent
b31af73100
commit
e4ae635760
@ -668,6 +668,33 @@ TreeStyleTabWindowHelper.overrideExtensionsAfterBrowserInit = function TSTWH_ove
|
||||
// Greasemonkey
|
||||
// https://addons.mozilla.org/firefox/addon/748
|
||||
if (sv.getTreePref('compatibility.Greasemonkey')) {
|
||||
try {
|
||||
let hitchModule = Components.utils.import('resource://greasemonkey/util/hitch.js', {});
|
||||
let hitch = hitchModule.hitch;
|
||||
if (hitch.toSource().indexOf('TreeStyleTabService') < 0) {
|
||||
hitchModule.hitch = function(aObject, aMethod) {
|
||||
if (typeof aMethod == 'function' &&
|
||||
aMethod.toSource().indexOf('function openInTab') > -1) {
|
||||
let originalOpenInTab = aMethod;
|
||||
/**
|
||||
* This function must be replaced on scripts in "chrome:" URL, like this.
|
||||
* Otherwise the original openInTab() will raise violation error.
|
||||
* Don't move this hack into JS code modules with "resource:" URL.
|
||||
*/
|
||||
aMethod = function openInTab(aSafeContentWindow, aChromeWindow, aURL, aLoadInBackgtound) {
|
||||
if (aChromeWindow.TreeStyleTabService)
|
||||
aChromeWindow.TreeStyleTabService.readyToOpenChildTabNow(aSafeContentWindow);
|
||||
return originalOpenInTab.apply(this, arguments);
|
||||
};
|
||||
}
|
||||
return hitch.apply(this, arguments);
|
||||
};
|
||||
}
|
||||
}
|
||||
catch(e) {
|
||||
dump(e+'\n');
|
||||
|
||||
// hacks for old versions
|
||||
if ('GM_BrowserUI' in window && 'openInTab' in GM_BrowserUI) {
|
||||
eval('GM_BrowserUI.openInTab = '+
|
||||
GM_BrowserUI.openInTab.toSource().replace(
|
||||
@ -678,7 +705,7 @@ TreeStyleTabWindowHelper.overrideExtensionsAfterBrowserInit = function TSTWH_ove
|
||||
}
|
||||
else if ('@greasemonkey.mozdev.org/greasemonkey-service;1' in Components.classes) {
|
||||
let service = Components.classes['@greasemonkey.mozdev.org/greasemonkey-service;1'].getService().wrappedJSObject;
|
||||
if (service) {
|
||||
if (service && service.__proto__._openInTab) {
|
||||
let _openInTab = service.__proto__._openInTab;
|
||||
if (_openInTab.toSource().indexOf('TreeStyleTabService') < 0) {
|
||||
service.__proto__._openInTab = function() {
|
||||
@ -691,6 +718,7 @@ TreeStyleTabWindowHelper.overrideExtensionsAfterBrowserInit = function TSTWH_ove
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// SBM Counter
|
||||
// http://miniturbo.org/products/sbmcounter/
|
||||
|
Loading…
Reference in New Issue
Block a user