diff --git a/chrome/content/zotero/bindings/styled-textbox.xml b/chrome/content/zotero/bindings/styled-textbox.xml
index 9cb967fa8..6b23deecb 100644
--- a/chrome/content/zotero/bindings/styled-textbox.xml
+++ b/chrome/content/zotero/bindings/styled-textbox.xml
@@ -123,6 +123,11 @@
var self = this;
this._eventHandler = function (event) {
+ // Necessary in Fx32+
+ if (event.wrappedJSObject) {
+ event = event.wrappedJSObject;
+ }
+
//Zotero.debug(event.type);
switch (event.type) {
case 'keydown':
@@ -418,7 +423,13 @@
if (!SJOW.zoteroInit) {
SJOW.zoteroInit = function(editor) {
- self._editor = editor;
+ // Necessary in Fx32+
+ if (editor.wrappedJSObject) {
+ self._editor = editor.wrappedJSObject;
+ }
+ else {
+ self._editor = editor;
+ }
if (self._value) {
self.value = self._value;
}
@@ -430,13 +441,17 @@
// Add CSS rules to notes
if (self.mode == 'note') {
+ let fontSize = Zotero.Prefs.get('note.fontSize');
+ // Fix empty old font prefs before a value was enforced
+ if (fontSize < 6) {
+ fontSize = 11;
+ }
var css = "body#zotero-tinymce-note.mceContentBody, "
+ "body#zotero-tinymce-note.mceContentBody p, "
+ "body#zotero-tinymce-note.mceContentBody th, "
+ "body#zotero-tinymce-note.mceContentBody td, "
+ "body#zotero-tinymce-note.mceContentBody pre { "
- + "font-size: "
- + Zotero.Prefs.get('note.fontSize') + "px; "
+ + "font-size: " + fontSize + "px; "
+ "} "
+ "body#zotero-tinymce-note.mceContentBody, "
+ "body#zotero-tinymce-note.mceContentBody p { "
diff --git a/chrome/content/zotero/browser.js b/chrome/content/zotero/browser.js
index 5e6ae997e..af9fcecf2 100644
--- a/chrome/content/zotero/browser.js
+++ b/chrome/content/zotero/browser.js
@@ -102,15 +102,45 @@ var Zotero_Browser = new function() {
* Initialize some variables and prepare event listeners for when chrome is done loading
*/
function init() {
- if (!Zotero || Zotero.skipLoading || !window.hasOwnProperty("gBrowser")) {
+ if (!window.hasOwnProperty("gBrowser")) {
return;
}
- window.addEventListener("load",
- function(e) { Zotero_Browser.chromeLoad(e) }, false);
+ var zoteroInitDone;
+ if (!Zotero || Zotero.skipLoading) {
+ // Zotero either failed to load or is reloading in Connector mode
+ // In case of the latter, listen for the 'zotero-loaded' event (once) and retry
+ var zoteroInitDone_deferred = Q.defer();
+ var obs = Components.classes["@mozilla.org/observer-service;1"]
+ .getService(Components.interfaces.nsIObserverService);
+ var observer = {
+ "observe":function() {
+ obs.removeObserver(observer, 'zotero-loaded')
+ zoteroInitDone_deferred.resolve();
+ }
+ };
+ obs.addObserver(observer, 'zotero-loaded', false);
+
+ zoteroInitDone = zoteroInitDone_deferred.promise;
+ } else {
+ zoteroInitDone = Q();
+ }
- ZoteroPane_Local.addReloadListener(reload);
- reload();
+ var chromeLoaded = Q.defer();
+ window.addEventListener("load", function(e) { chromeLoaded.resolve() }, false);
+
+ // Wait for Zotero to init and chrome to load before proceeding
+ Q.all([
+ zoteroInitDone.then(function() {
+ ZoteroPane_Local.addReloadListener(reload);
+ reload();
+ }),
+ chromeLoaded.promise
+ ])
+ .then(function() {
+ Zotero_Browser.chromeLoad()
+ })
+ .done();
}
/**
@@ -542,8 +572,8 @@ var Zotero_Browser = new function() {
if(!returnValue) {
Zotero_Browser.progress.show();
Zotero_Browser.progress.changeHeadline(Zotero.getString("ingester.scrapeError"));
- // Include link to Known Translator Issues page
- var url = "http://www.zotero.org/documentation/known_translator_issues";
+ // Include link to translator troubleshooting page
+ var url = "https://www.zotero.org/support/troubleshooting_translator_issues";
var linkText = ''
+ Zotero.getString('ingester.scrapeErrorDescription.linkText') + '';
Zotero_Browser.progress.addDescription(Zotero.getString("ingester.scrapeErrorDescription", linkText));
diff --git a/chrome/content/zotero/charsetMenu.js b/chrome/content/zotero/charsetMenu.js
index 0296e4430..29ced2678 100644
--- a/chrome/content/zotero/charsetMenu.js
+++ b/chrome/content/zotero/charsetMenu.js
@@ -42,40 +42,76 @@ var Zotero_Charset_Menu = new function() {
var charsetSeparator = document.createElement("menuseparator");
charsetPopup.appendChild(charsetSeparator);
- var charsetConverter = Components.classes["@mozilla.org/charset-converter-manager;1"].
- getService(Components.interfaces.nsICharsetConverterManager);
- var charsets = charsetConverter.getEncoderList();
-
- // add charsets to popup in order
- while(charsets.hasMore()) {
- var charset = charsets.getNext();
- try {
- var label = charsetConverter.getCharsetTitle(charset);
- } catch(e) {
- continue;
+ var charsets = [];
+
+ if(Zotero.platformMajorVersion >= 32) {
+ Components.utils.import("resource://gre/modules/CharsetMenu.jsm");
+ var cmData = CharsetMenu.getData();
+ for each(var charsetList in [cmData.pinnedCharsets, cmData.otherCharsets]) {
+ for each(var charsetInfo in charsetList) {
+ if(charsetInfo.value == "UTF-8") {
+ charsets.push({
+ "label":"Unicode (UTF-8)",
+ "value":"UTF-8"
+ });
+ } else {
+ charsets.push({
+ "label":charsetInfo.label,
+ "value":charsetInfo.value
+ });
+ }
+ }
}
-
- var isUTF16 = charset.length >= 6 && charset.substr(0, 6) == "UTF-16";
-
- // Show UTF-16 element appropriately depending on exportMenu
- if(isUTF16 && exportMenu == (charset == "UTF-16") ||
- (!exportMenu && charset == "UTF-32LE")) {
- continue;
- } else if(charset == "x-mac-roman") {
- // use the IANA name
- charset = "macintosh";
- } else if(!exportMenu && charset == "UTF-32BE") {
- label = "Unicode (UTF-32)";
- charset = "UTF-32";
+ charsets = charsets.concat([
+ {"label":"UTF-16LE", "value":"UTF-16LE"},
+ {"label":"UTF-16BE", "value":"UTF-16BE"},
+ {"label":"Western (IBM-850)", "value":"IBM850"},
+ {"label":"Western (MacRoman)", "value":"macintosh"}
+ ]);
+ } else {
+ var charsetConverter = Components.classes["@mozilla.org/charset-converter-manager;1"].
+ getService(Components.interfaces.nsICharsetConverterManager);
+ var ccCharsets = charsetConverter.getEncoderList();
+ // add charsets to popup in order
+ while(ccCharsets.hasMore()) {
+ var charset = ccCharsets.getNext();
+ try {
+ var label = charsetConverter.getCharsetTitle(charset);
+ } catch(e) {
+ continue;
+ }
+
+ var isUTF16 = charset.length >= 6 && charset.substr(0, 6) == "UTF-16";
+
+ // Show UTF-16 element appropriately depending on exportMenu
+ if(isUTF16 && exportMenu == (charset == "UTF-16") ||
+ (!exportMenu && charset == "UTF-32LE")) {
+ continue;
+ } else if(charset == "x-mac-roman") {
+ // use the IANA name
+ charset = "macintosh";
+ } else if(!exportMenu && charset == "UTF-32BE") {
+ label = "Unicode (UTF-32)";
+ charset = "UTF-32";
+ }
+ charsets.push({
+ "label":label,
+ "value":charset
+ });
}
-
+ }
+
+ for(var i=0; i 7 &&
+ if(isUTF16 || (label.length >= 7 &&
label.substr(0, 7) == "Western")) {
charsetPopup.insertBefore(itemNode, charsetSeparator);
} else if(charset == "UTF-8") {
diff --git a/chrome/content/zotero/errorReport.xul b/chrome/content/zotero/errorReport.xul
index eff8c9196..82e65158f 100644
--- a/chrome/content/zotero/errorReport.xul
+++ b/chrome/content/zotero/errorReport.xul
@@ -6,7 +6,8 @@
+ id="zotero-error-report" title="&zotero.errorReport.title;"
+ width="550" height="450">