[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[or-cvs] [torbutton/master] Update hooked interfaces for FF3.5+FF3.6.



Author: Mike Perry <mikeperry-git@xxxxxxxxxx>
Date: Sat, 12 Dec 2009 16:59:07 -0800
Subject: Update hooked interfaces for FF3.5+FF3.6.
Commit: ab2527990fa9271e15aab82d8ca72ff9c23f9262

Should fix a nasty FF3.6 history deletion bug.
---
 src/components/ignore-history.js |   54 ++++++++++++++++++++++++++++++++-----
 1 files changed, 46 insertions(+), 8 deletions(-)

diff --git a/src/components/ignore-history.js b/src/components/ignore-history.js
index 8f5be79..730690e 100644
--- a/src/components/ignore-history.js
+++ b/src/components/ignore-history.js
@@ -15,22 +15,47 @@
 const kMODULE_NAME = "Ignore History";
 const kMODULE_CONTRACTID2 = "@mozilla.org/browser/global-history;2";
 const kMODULE_CONTRACTID3 = "@mozilla.org/browser/nav-history-service;1";
+const kMODULE_CONTRACTID3D = "@mozilla.org/browser/download-history;1";
 const kMODULE_CID = Components.ID("bc666d45-a9a1-4096-9511-f6db6f686881");
 
 /* Mozilla defined interfaces for FF3.0 and 2.0 */
 const kREAL_HISTORY_CID3 = "{88cecbb7-6c63-4b3b-8cd4-84f3b8228c69}";
 const kREAL_HISTORY_CID2 = "{59648a91-5a60-4122-8ff2-54b839c84aed}";
 
-// const kREAL_HISTORY = Components.classesByID[kREAL_HISTORY_CID];
-
 const kHistoryInterfaces2 = [ "nsIBrowserHistory", "nsIGlobalHistory2" ];
 
-const kHistoryInterfaces3 = [ "nsIBrowserHistory", "nsIGlobalHistory2", 
+const kHistoryInterfaces3 = [ "nsIBrowserHistory", "nsIGlobalHistory2",
                              "nsIAutoCompleteSearch", "nsIGlobalHistory3",
-                             "nsIDownloadHistory", "nsIBrowserHistory",
+                             "nsIDownloadHistory",
                              "nsIAutoCompleteSimpleResultListener",
                              "nsINavHistoryService" ];
 
+const kHistoryInterfaces35 = [ "nsIAutoCompleteSearch",
+                              "nsIBrowserHistory",
+                              "nsIObserver",
+                              "nsIGlobalHistory3",
+                              "nsIBrowserHistory_MOZILLA_1_9_1_ADDITIONS",
+                              "nsPIPlacesDatabase",
+                              "nsIDownloadHistory",
+                              "nsIGlobalHistory2",
+                              "nsINavHistoryService",
+                              "nsISupportsWeakReference",
+                              "nsIAutoCompleteSimpleResultListener",
+                              "nsICharsetResolver" ];
+
+const kHistoryInterfaces36 = [
+                              "nsICharsetResolver",
+                              "nsIGlobalHistory3",
+                              "nsIObserver",
+                              "nsPIPlacesDatabase",
+                              "nsIDownloadHistory",
+                              "nsIBrowserHistory",
+                              "nsIGlobalHistory2",
+                              "nsPIPlacesHistoryListenersNotifier",
+                              "nsISupportsWeakReference",
+                              "nsINavHistoryService"
+                              ];
+
 const Cr = Components.results;
 
 var appInfo = Components.classes["@mozilla.org/xre/app-info;1"]
@@ -52,7 +77,13 @@ function HistoryWrapper() {
   var versionChecker = Components.classes["@mozilla.org/xpcom/version-comparator;1"]
       .getService(Components.interfaces.nsIVersionComparator);
 
-  if(versionChecker.compare(appInfo.version, "3.0a1") >= 0) {
+  if(versionChecker.compare(appInfo.version, "3.6a1") >= 0) {
+    this._real_history = Components.classesByID[kREAL_HISTORY_CID3];
+    this._interfaces = kHistoryInterfaces36;
+  } else if(versionChecker.compare(appInfo.version, "3.5a1") >= 0) {
+    this._real_history = Components.classesByID[kREAL_HISTORY_CID3];
+    this._interfaces = kHistoryInterfaces35;
+  } else if(versionChecker.compare(appInfo.version, "3.0a1") >= 0) {
     this._real_history = Components.classesByID[kREAL_HISTORY_CID3];
     this._interfaces = kHistoryInterfaces3;
   } else {
@@ -139,7 +170,8 @@ HistoryWrapper.prototype =
     // damned service. how are there more than one?
     //  - http://developer.mozilla.org/en/docs/nsIGlobalHistory3
     var mimic = function(newObj, method) {
-       if(method == "getURIGeckoFlags" || method == "setURIGeckoFlags") {
+       if(method == "getURIGeckoFlags" || method == "setURIGeckoFlags"
+               || method == "hidePage") {
           // Hack to deal with unimplemented methods.
           // XXX: the API docs say to RETURN the not implemented error
           // for these functions as opposed to throw.. Also,
@@ -299,8 +331,14 @@ function (compMgr, fileSpec, location, type) {
       compMgr.registerFactoryLocation(kMODULE_CID,
               kMODULE_NAME,
               kMODULE_CONTRACTID3,
-              fileSpec, 
-              location, 
+              fileSpec,
+              location,
+              type);
+      compMgr.registerFactoryLocation(kMODULE_CID,
+              kMODULE_NAME,
+              kMODULE_CONTRACTID3D,
+              fileSpec,
+              location,
               type);
   }
 };
-- 
1.5.6.5