From ebae24cacc63ab5720c6eba9118dc2792d0764b3 Mon Sep 17 00:00:00 2001
From: Jonas Jenwald <jonas.jenwald@gmail.com>
Date: Sat, 18 Mar 2017 11:14:02 +0100
Subject: [PATCH] Upstream the changes from bug 1345294 - nsIPrefBranch should
 have methods to get/set unicode strings

Note that in order to not break compatibility for the Firefox addon, the preprocessor is used.

Re: [bug 1345294](https://bugzilla.mozilla.org/show_bug.cgi?id=1345294) and also [this commit](https://hg.mozilla.org/mozilla-central/rev/5a8192a650e9).
---
 extensions/firefox/content/PdfStreamConverter.jsm |  7 ++++++-
 extensions/firefox/content/PdfjsChromeUtils.jsm   | 14 ++++++++++----
 2 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/extensions/firefox/content/PdfStreamConverter.jsm b/extensions/firefox/content/PdfStreamConverter.jsm
index dd052a1e8..9ff5d4dc8 100644
--- a/extensions/firefox/content/PdfStreamConverter.jsm
+++ b/extensions/firefox/content/PdfStreamConverter.jsm
@@ -93,7 +93,12 @@ function getIntPref(pref, def) {
 
 function getStringPref(pref, def) {
   try {
-    return Services.prefs.getComplexValue(pref, Ci.nsISupportsString).data;
+//#if !MOZCENTRAL
+    if (!Services.prefs.getStringPref) {
+      return Services.prefs.getComplexValue(pref, Ci.nsISupportsString).data;
+    }
+//#endif
+    return Services.prefs.getStringPref(pref);
   } catch (ex) {
     return def;
   }
diff --git a/extensions/firefox/content/PdfjsChromeUtils.jsm b/extensions/firefox/content/PdfjsChromeUtils.jsm
index 1d6c3f8af..f6e7e44c7 100644
--- a/extensions/firefox/content/PdfjsChromeUtils.jsm
+++ b/extensions/firefox/content/PdfjsChromeUtils.jsm
@@ -273,10 +273,16 @@ var PdfjsChromeUtils = {
 
   _setStringPref(aPrefName, aPrefValue) {
     this._ensurePreferenceAllowed(aPrefName);
-    let str = Cc["@mozilla.org/supports-string;1"]
-                .createInstance(Ci.nsISupportsString);
-    str.data = aPrefValue;
-    Services.prefs.setComplexValue(aPrefName, Ci.nsISupportsString, str);
+//#if !MOZCENTRAL
+    if (!Services.prefs.setStringPref) {
+      let str = Cc["@mozilla.org/supports-string;1"]
+                  .createInstance(Ci.nsISupportsString);
+      str.data = aPrefValue;
+      Services.prefs.setComplexValue(aPrefName, Ci.nsISupportsString, str);
+      return;
+    }
+//#endif
+    Services.prefs.setStringPref(aPrefName, aPrefValue);
   },
 
   /*