Mozdev
Adding support for Private Browsing (Firefox 3.1)
authorWladimir Palant <trev@adblockplus.org>
Sun Nov 09 13:34:45 2008 +0100 (15 months ago)
changeset 12321208d5106147
parent 12313f5fed70009f
child 12334bb619841b46
Adding support for Private Browsing (Firefox 3.1)
src/chrome/content/filterStorage.js
src/chrome/content/prefs.js
     1.1 --- a/src/chrome/content/filterStorage.js	Sun Nov 09 11:40:50 2008 +0100
     1.2 +++ b/src/chrome/content/filterStorage.js	Sun Nov 09 13:34:45 2008 +0100
     1.3 @@ -281,7 +281,7 @@
     1.4     */
     1.5    increaseHitCount: function(filter)
     1.6    {
     1.7 -    if (!prefs.savestats || !(filter instanceof ActiveFilter))
     1.8 +    if (!prefs.savestats || prefs.privateBrowsing || !(filter instanceof ActiveFilter))
     1.9        return;
    1.10  
    1.11      filter.hitCount++;
     2.1 --- a/src/chrome/content/prefs.js	Sun Nov 09 11:40:50 2008 +0100
     2.2 +++ b/src/chrome/content/prefs.js	Sun Nov 09 13:34:45 2008 +0100
     2.3 @@ -39,6 +39,7 @@
     2.4    lastVersion: null,
     2.5    initialized: false,
     2.6    disableObserver: false,
     2.7 +  privateBrowsing: false,
     2.8    branch: prefService.getBranch(prefRoot),
     2.9    prefList: [],
    2.10    listeners: [],
    2.11 @@ -53,10 +54,11 @@
    2.12        dump("Adblock Plus: exception registering pref observer: " + e + "\n");
    2.13      }
    2.14  
    2.15 +    var observerService = Components.classes["@mozilla.org/observer-service;1"]
    2.16 +                                    .getService(Components.interfaces.nsIObserverService);
    2.17 +
    2.18      // Shutdown observer registration
    2.19      try {
    2.20 -      var observerService = Components.classes["@mozilla.org/observer-service;1"]
    2.21 -                                      .getService(Components.interfaces.nsIObserverService);
    2.22        observerService.addObserver(this, "profile-before-change", false);
    2.23        observerService.addObserver(this, "profile-after-change", false);
    2.24      }
    2.25 @@ -64,6 +66,18 @@
    2.26        dump("Adblock Plus: exception registering profile observer: " + e + "\n");
    2.27      }
    2.28  
    2.29 +    // Add Private Browsing observer
    2.30 +    if ("nsIPrivateBrowsingService" in Components.interfaces)
    2.31 +    {
    2.32 +      try
    2.33 +      {
    2.34 +        this.privateBrowsing = Components.classes["@mozilla.org/privatebrowsing;1"]
    2.35 +                                         .getService(Components.interfaces.nsIPrivateBrowsingService)
    2.36 +                                         .privateBrowsingEnabled;
    2.37 +        observerService.addObserver(this, "private-browsing", false);
    2.38 +      } catch(e) {}
    2.39 +    }
    2.40 +
    2.41      var doInit = true;
    2.42      if ("@mozilla.org/profile/manager;1" in Components.classes) {
    2.43        try {
    2.44 @@ -217,6 +231,13 @@
    2.45        filterStorage.saveToDisk();
    2.46        this.initialized = false;
    2.47      }
    2.48 +    else if (topic == "private-browsing")
    2.49 +    {
    2.50 +      if (prefName == "enter")
    2.51 +        this.privateBrowsing = true;
    2.52 +      else if (prefName == "exit")
    2.53 +        this.privateBrowsing = false;
    2.54 +    }
    2.55      else if (this.initialized && !this.disableObserver)
    2.56        this.reload();
    2.57    },