environment: Remove usage of _blockMethod; we've fixed both Clutter and GDK

See bug 597292.

https://bugzilla.gnome.org/show_bug.cgi?id=652597
This commit is contained in:
Colin Walters 2011-06-14 16:04:32 -04:00
parent 7def1a4aa5
commit 04d2b0d282

View File

@ -39,35 +39,6 @@ function _patchContainerClass(containerClass) {
}; };
} }
// Replace @method with something that throws an error instead
function _blockMethod(method, replacement, reason) {
let match = method.match(/^(.+)\.([^.]+)$/);
if (!match)
throw new Error('Bad method name "' + method + '"');
let proto = 'imports.gi.' + match[1] + '.prototype';
let property = match[2];
if (!global.set_property_mutable(proto, property, true))
throw new Error('Bad method name "' + method + '"');
// eval() is evil in general, but we know it's safe here since
// set_property_mutable() would have failed if proto was
// malformed.
let node = eval(proto);
let msg = 'Do not use "' + method + '".';
if (replacement)
msg += ' Use "' + replacement + '" instead.';
if (reason)
msg += ' (' + reason + ')';
node[property] = function() {
throw new Error(msg);
};
global.set_property_mutable(proto, property, false);
}
function init() { function init() {
// Add some bindings to the global JS namespace; (gjs keeps the web // Add some bindings to the global JS namespace; (gjs keeps the web
// browser convention of having that namespace be called 'window'.) // browser convention of having that namespace be called 'window'.)
@ -99,11 +70,6 @@ function init() {
return base; return base;
}; };
_blockMethod('Clutter.Event.get_state', 'Shell.get_event_state',
'gjs\'s handling of Clutter.ModifierType is broken. See bug 597292.');
_blockMethod('Gdk.Window.get_device_position', 'global.get_pointer',
'gjs\'s handling of Gdk.ModifierType is broken. See bug 597292.');
// Now close the back door to prevent extensions from trying to // Now close the back door to prevent extensions from trying to
// abuse it. We can't actually delete it since // abuse it. We can't actually delete it since
// Shell.Global.prototype itself is read-only. // Shell.Global.prototype itself is read-only.