]> git.parisson.com Git - pdf.js.git/commitdiff
Merge branch 'refs/heads/master' into localStorage-fix
authorArtur Adib <arturadib@gmail.com>
Wed, 1 Feb 2012 17:08:40 +0000 (12:08 -0500)
committerArtur Adib <arturadib@gmail.com>
Wed, 1 Feb 2012 17:08:40 +0000 (12:08 -0500)
Conflicts:
web/viewer.js

1  2 
web/viewer.js

diff --cc web/viewer.js
index 11c0769a35229dfe0acc10c909e839a987f9ec06,04339ca66036d796b0b8f317b36391ea701061be..cc279cf67cd465bc185d51fd55983f61b804ffd8
@@@ -61,8 -62,33 +62,33 @@@ var RenderingQueue = (function Renderin
    return RenderingQueue;
  })();
  
+ var FirefoxCom = (function FirefoxComClosure() {
+   return {
+     /**
+      * Creates an event that hopefully the extension is listening for and will
+      * synchronously respond to.
+      * @param {String} action The action to trigger.
+      * @param {String} data Optional data to send.
+      * @return {*} The response.
+      */
+     request: function(action, data) {
+       var request = document.createTextNode('');
+       request.setUserData('action', action, null);
+       request.setUserData('data', data, null);
+       document.documentElement.appendChild(request);
+       var sender = document.createEvent('Events');
+       sender.initEvent('pdf.js.message', true, false);
+       request.dispatchEvent(sender);
+       var response = request.getUserData('response');
+       document.documentElement.removeChild(request);
+       return response;
+     }
+   };
+ })();
  // Settings Manager - This is a utility for saving settings
 -// First we see if localStorage is available, FF bug #495747
 +// First we see if localStorage is available
  // If not, we use FUEL in FF
  var Settings = (function SettingsClosure() {
    var isLocalStorageEnabled = (function localStorageEnabledTest() {
      } catch (e) {
        return false;
      }
 -    return true;
    })();
-   var extPrefix = 'extensions.uriloader@pdf.js';
-   var isExtension = location.protocol == 'chrome:' && !isLocalStorageEnabled;
-   var inPrivateBrowsing = false;
-   if (isExtension) {
-     var pbs = Components.classes['@mozilla.org/privatebrowsing;1']
-               .getService(Components.interfaces.nsIPrivateBrowsingService);
-     inPrivateBrowsing = pbs.privateBrowsingEnabled;
-   }
+   var isFirefoxExtension = PDFJS.isFirefoxExtension;
  
    function Settings(fingerprint) {
      var database = null;
  
    Settings.prototype = {
      set: function settingsSet(name, val) {
-       if (inPrivateBrowsing || !('file' in this))
++      if (!('file' in this))
 +        return false;
 +
        var file = this.file;
        file[name] = val;
-       if (isExtension)
-         Application.prefs.setValue(extPrefix + '.database',
-             JSON.stringify(this.database));
+       var database = JSON.stringify(this.database);
+       if (isFirefoxExtension)
+         FirefoxCom.request('setDatabase', database);
        else if (isLocalStorageEnabled)
-         localStorage.setItem('database', JSON.stringify(this.database));
+         localStorage.setItem('database', database);
      },
  
      get: function settingsGet(name, defaultValue) {
-       if (inPrivateBrowsing || !('file' in this))
++      if (!('file' in this))
 +        return defaultValue;
 +
        return this.file[name] || defaultValue;
      }
    };