Blog of Malte Kraus

home

Archive: SearchService modifizieren

16 Apr 2007

Ich habe gerade herausgefunden, wie ich mich nicht nur in einzelne Suchmaschinen, sondern in wirklich alles aus dem Original-Suchservice nach Belieben modifizieren kann :)

var ss = Cc["@mozilla.org/browser/search-service;1"]
           .getService(Ci.nsIBrowserSearchService);
var engine = ss.defaultEngine.wrappedJSObject;
var topLevel = engine.parent;
var proto = topLevel.SearchService.prototype;
var orig = proto.getEngines;
proto.getEngines = function() {
  this.wrappedJSObject = this;
  proto.getEngines = orig;
};
ss.getEngines({});
// jetzt kann man mit ss.wrappedJSObject auf interne
// Funktionen zugreifen, sie ersetzen usw. :-)
Das ermöglicht es mir, das Umbenennen von Suchmaschinen kompatibler zu gestalten und das Feature aus dem nächsten Eintrag einzubauen...