www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | Submodules | README | LICENSE

commit 8d48b1de5413c06b6b9e0e25f8d0bd0f0d5c7b40
parent 0f6b151ea48cb676e0ed98ebe7a59ac29d8c7e52
Author: Simon Kornblith <simon@simonster.com>
Date:   Thu,  9 Feb 2012 03:56:30 -0500

Drop a lot of Fx 3.6-specific code

Diffstat:
Mchrome/content/zotero/integration/quickFormat.js | 13++-----------
Mchrome/content/zotero/lookup.js | 4+---
Mchrome/content/zotero/preferences/preferences.js | 5-----
Mchrome/content/zotero/tab.js | 4++--
Mchrome/content/zotero/xpcom/integration.js | 15+++++----------
Mchrome/content/zotero/xpcom/ipc.js | 29++++-------------------------
Mchrome/content/zotero/xpcom/mimeTypeHandler.js | 22+++++++---------------
Mchrome/content/zotero/xpcom/schema.js | 9+--------
Mchrome/content/zotero/xpcom/translation/translate.js | 2+-
Mchrome/content/zotero/xpcom/translation/translate_firefox.js | 90+++++++------------------------------------------------------------------------
Mchrome/content/zotero/xpcom/zotero.js | 39++++++++++-----------------------------
11 files changed, 41 insertions(+), 191 deletions(-)

diff --git a/chrome/content/zotero/integration/quickFormat.js b/chrome/content/zotero/integration/quickFormat.js @@ -130,7 +130,7 @@ var Zotero_QuickFormat = new function () { if(event.target !== document) return; // make sure we are visible window.setTimeout(function() { - if(!Zotero.isFx4) window.sizeToContent(); + window.sizeToContent(); var screenX = window.screenX; var screenY = window.screenY; var xRange = [window.screen.availLeft, window.screen.width-window.outerWidth]; @@ -744,16 +744,7 @@ var Zotero_QuickFormat = new function () { if(((!referenceHeight && firstReference) || (!separatorHeight && firstSeparator) || !panelFrameHeight) && !panelShowing) { _openReferencePanel(); - if(!Zotero.isFx4) { - referencePanel.addEventListener("popupshown", function() { - referencePanel.removeEventListener("popupshown", arguments.callee, false); - panelShowing = true; - _resize(); - }, false); - return; - } else { - panelShowing = true; - } + panelShowing = true; } if(!referenceHeight && firstReference) { diff --git a/chrome/content/zotero/lookup.js b/chrome/content/zotero/lookup.js @@ -106,9 +106,7 @@ const Zotero_Lookup = new function () { * Focuses the field */ this.onShowing = function() { - if(!Zotero.isFx4) { - document.getElementById("zotero-lookup-panel").style.padding = "10px"; - } + document.getElementById("zotero-lookup-panel").style.padding = "10px"; document.getElementById("zotero-lookup-progress").hidden = false; var identifierElement = document.getElementById("zotero-lookup-textbox"); diff --git a/chrome/content/zotero/preferences/preferences.js b/chrome/content/zotero/preferences/preferences.js @@ -119,11 +119,6 @@ function init() } else if(document.location.hash == "#cite") { document.getElementById('zotero-prefs').showPane(document.getElementById("zotero-prefpane-cite")); } - - var showInAppTab; - if(!Zotero.isFx4 && (showInAppTab = document.getElementById("zotero-prefpane-general-showIn-appTab"))) { - showInAppTab.setAttribute("hidden", "true"); - } } diff --git a/chrome/content/zotero/tab.js b/chrome/content/zotero/tab.js @@ -83,7 +83,7 @@ var ZoteroTab = new function() this.containerWindow.gBrowser.tabContainer.addEventListener("TabSelect", listener, false); } - if(Zotero && Zotero.isFx4 && Zotero.Prefs.get("showIn") != 2) { + if(Zotero && Zotero.Prefs.get("showIn") != 2) { // on Fx 4, add an event listener so the pinned tab isn't restored on close var pinnedTabCloser = function() { try { @@ -104,7 +104,7 @@ var ZoteroTab = new function() if(tabs.length > 1) { window.close(); } else { - if(Zotero.isFx4 && tabs[0].pinned) this.containerWindow.gBrowser.unpinTab(tabs[0]); + if(tabs[0].pinned) this.containerWindow.gBrowser.unpinTab(tabs[0]); document.location.replace(this.containerWindow.gHomeButton.getHomePage()); } return; diff --git a/chrome/content/zotero/xpcom/integration.js b/chrome/content/zotero/xpcom/integration.js @@ -193,14 +193,9 @@ Zotero.Integration = new function() { if(callback) callback(_integrationVersionsOK); } - if(Zotero.isFx4) { - Components.utils.import("resource://gre/modules/AddonManager.jsm"); - AddonManager.getAddonsByIDs(INTEGRATION_PLUGINS, _checkAddons); - } else { - var extMan = Components.classes['@mozilla.org/extensions/manager;1']. - getService(Components.interfaces.nsIExtensionManager); - _checkAddons([extMan.getItemForID(id) for each(id in INTEGRATION_PLUGINS)]); - } + var extMan = Components.classes['@mozilla.org/extensions/manager;1']. + getService(Components.interfaces.nsIExtensionManager); + _checkAddons([extMan.getItemForID(id) for each(id in INTEGRATION_PLUGINS)]); } /** @@ -289,7 +284,7 @@ Zotero.Integration = new function() { "Minefield":"org.mozilla.minefield" }; - if(Zotero.isFx4 && win) { + if(win) { Components.utils.import("resource://gre/modules/ctypes.jsm"); if(!_carbon) { @@ -333,7 +328,7 @@ Zotero.Integration = new function() { _executeAppleScript('tell application id "'+BUNDLE_IDS[Zotero.appName]+'" to activate'); } } - } else if(!Zotero.isWin && Zotero.isFx4 && win) { + } else if(!Zotero.isWin && win) { Components.utils.import("resource://gre/modules/ctypes.jsm"); if(_x11 === false) return; diff --git a/chrome/content/zotero/xpcom/ipc.js b/chrome/content/zotero/xpcom/ipc.js @@ -107,23 +107,11 @@ Zotero.IPC = new function() { if(!lib) return false; // int open(const char *path, int oflag); - if(Zotero.isFx36) { - open = lib.declare("open", ctypes.default_abi, ctypes.int32_t, ctypes.string, ctypes.int32_t); - } else { - open = lib.declare("open", ctypes.default_abi, ctypes.int, ctypes.char.ptr, ctypes.int); - } + open = lib.declare("open", ctypes.default_abi, ctypes.int, ctypes.char.ptr, ctypes.int); // ssize_t write(int fildes, const void *buf, size_t nbyte); - if(Zotero.isFx36) { - write = lib.declare("write", ctypes.default_abi, ctypes.int32_t, ctypes.int32_t, ctypes.string, ctypes.uint32_t); - } else { - write = lib.declare("write", ctypes.default_abi, ctypes.ssize_t, ctypes.int, ctypes.char.ptr, ctypes.size_t); - } + write = lib.declare("write", ctypes.default_abi, ctypes.ssize_t, ctypes.int, ctypes.char.ptr, ctypes.size_t); // int close(int filedes); - if(Zotero.isFx36) { - close = lib.declare("close", ctypes.default_abi, ctypes.int32_t, ctypes.int32_t); - } else { - close = lib.declare("close", ctypes.default_abi, ctypes.int, ctypes.int); - } + close = lib.declare("close", ctypes.default_abi, ctypes.int, ctypes.int); } // On OS X, O_NONBLOCK = 0x0004 @@ -144,11 +132,6 @@ Zotero.IPC = new function() { */ this.broadcast = function(msg) { if(Zotero.isWin) { // communicate via WM_COPYDATA method - // there is no ctypes struct support in Fx 3.6 - // while we could mimic it, it's easier just to require users to upgrade if they - // want connector sharing - if(!Zotero.isFx4) return false; - Components.utils.import("resource://gre/modules/ctypes.jsm"); // communicate via message window @@ -386,11 +369,7 @@ Zotero.IPC.Pipe = new function() { if(!_mkfifo) { var libc = Zotero.IPC.getLibc(); if(!libc) return false; - if(Zotero.isFx36) { - _mkfifo = libc.declare("mkfifo", ctypes.default_abi, ctypes.int32_t, ctypes.string, ctypes.uint32_t); - } else { - _mkfifo = libc.declare("mkfifo", ctypes.default_abi, ctypes.int, ctypes.char.ptr, ctypes.unsigned_int); - } + _mkfifo = libc.declare("mkfifo", ctypes.default_abi, ctypes.int, ctypes.char.ptr, ctypes.unsigned_int); } // make pipe diff --git a/chrome/content/zotero/xpcom/mimeTypeHandler.js b/chrome/content/zotero/xpcom/mimeTypeHandler.js @@ -112,22 +112,14 @@ Zotero.MIMETypeHandler = new function () { var checkValue = {"value":false}; // make tab-modal dialog (https://developer.mozilla.org/en/Using_tab-modal_prompts) - if(Zotero.isFx4) { - var prompt = Components.classes["@mozilla.org/prompter;1"] - .getService(Components.interfaces.nsIPromptFactory) - .getPrompt(win, Components.interfaces.nsIPrompt); - - var bag = prompt.QueryInterface(Components.interfaces.nsIWritablePropertyBag2); - bag.setPropertyAsBool("allowTabModal", true); - - var continueDownload = prompt.confirmCheck(title, text, checkMsg, checkValue); - } else { - var ps = Components.classes["@mozilla.org/embedcomp/prompt-service;1"] - .getService(Components.interfaces.nsIPromptService); - - var continueDownload = ps.confirmCheck(win, title, text, checkMsg, checkValue); - } + var prompt = Components.classes["@mozilla.org/prompter;1"] + .getService(Components.interfaces.nsIPromptFactory) + .getPrompt(win, Components.interfaces.nsIPrompt); + var bag = prompt.QueryInterface(Components.interfaces.nsIWritablePropertyBag2); + bag.setPropertyAsBool("allowTabModal", true); + + var continueDownload = prompt.confirmCheck(title, text, checkMsg, checkValue); if(!continueDownload) return; if(checkValue.value) { // add to allowed sites if desired diff --git a/chrome/content/zotero/xpcom/schema.js b/chrome/content/zotero/xpcom/schema.js @@ -446,7 +446,7 @@ Zotero.Schema = new function(){ .get("AChrom", Components.interfaces.nsIFile); _updateBundledFilesCallback(appChrome.parent, mode, skipDeleteUpdate, runRemoteUpdateWhenComplete); - } else if(Zotero.isFx4) { + } else { Components.utils.import("resource://gre/modules/AddonManager.jsm"); AddonManager.getAddonByID(ZOTERO_CONFIG['GUID'], function(addon) { @@ -454,13 +454,6 @@ Zotero.Schema = new function(){ addon.getResourceURI().QueryInterface(Components.interfaces.nsIFileURL).file, mode, skipDeleteUpdate, runRemoteUpdateWhenComplete); }); - } else { - var gExtensionManager = Components.classes["@mozilla.org/extensions/manager;1"] - .getService(Components.interfaces.nsIExtensionManager); - var itemLocation = gExtensionManager.getInstallLocation(ZOTERO_CONFIG['GUID']) - .getItemLocation(ZOTERO_CONFIG['GUID']); - _updateBundledFilesCallback(itemLocation, mode, skipDeleteUpdate, - runRemoteUpdateWhenComplete); } } diff --git a/chrome/content/zotero/xpcom/translation/translate.js b/chrome/content/zotero/xpcom/translation/translate.js @@ -215,7 +215,7 @@ Zotero.Translate.Sandbox = { "getTranslatorObject":"r" }; safeTranslator.setSearch = function(arg) { - if(Zotero.isFx4 && !Zotero.isBookmarklet) arg = JSON.parse(JSON.stringify(arg)); + if(!Zotero.isBookmarklet) arg = JSON.parse(JSON.stringify(arg)); return translation.setSearch(arg); }; safeTranslator.setDocument = function(arg) { return translation.setDocument(arg) }; diff --git a/chrome/content/zotero/xpcom/translation/translate_firefox.js b/chrome/content/zotero/xpcom/translation/translate_firefox.js @@ -318,13 +318,9 @@ Zotero.Translate.DOMWrapper = new function() { * @return {Object} An obj that is no longer Xrayed */ this.wrap = function(obj) { - if(Zotero.isFx4) { - Zotero.debug(obj.toString()); - var newObj = wrapPrivileged(obj); - return newObj; - } else { - return _wrapFx36(obj); - } + Zotero.debug(obj.toString()); + var newObj = wrapPrivileged(obj); + return newObj; } /** @@ -348,53 +344,6 @@ Zotero.Translate.DOMWrapper = new function() { this.isWrapped = function(obj) { return "__wrappedDOMObject" in obj || isWrapper(obj); } - - /** - * A really ugly way of making a DOM object not look like a DOM object, so we can pass it to the - * sandbox under Firefox 3.6 - * @param {XPCCrossOriginWrapper} obj - * @param {Object} parent A parent to use as |this| when applying functions - * @return {Object} An obj that is no longer Xrayed - */ - function _wrapFx36(obj, parent) { - if(obj === null) { - return null; - } - - var wrapFx36 = arguments.callee; - var type = typeof obj; - if(type === "function") { - var val = function() { - var nArgs = arguments.length; - var args = new Array(nArgs); - for(var i=0; i<nArgs; i++) { - args[i] = (arguments[i] instanceof Object && arguments[i].__wrappedDOMObject - ? arguments[i].__wrappedDOMObject : arguments[i]); - } - return wrapFx36(obj.apply(parent ? parent : null, args)); - } - } else if(type === "object") { - if(val instanceof Array) { - var val = []; - } else { - var val = {}; - } - } else { - return obj; - } - - val.__wrappedDOMObject = obj; - val.__exposedProps__ = {}; - for(var prop in obj) { - let localProp = prop; - val.__exposedProps__[localProp] = "r"; - val.__defineGetter__(localProp, function() { - return wrapFx36(obj[localProp], obj); - }); - } - - return val; - } } /** @@ -429,7 +378,7 @@ Zotero.Translate.SandboxManager = function(sandboxLocation) { .getService(Components.interfaces.nsIIOService); uri = ioService.newURI(uri, "UTF-8", null); - if(typeof sandboxLocation === "object" && sandboxLocation.nodePrincipal && Zotero.isFx4) { + if(typeof sandboxLocation === "object" && sandboxLocation.nodePrincipal) { // if sandbox specified by DOM document, use nodePrincipal property var principal = sandboxLocation.nodePrincipal; } else { @@ -464,11 +413,7 @@ Zotero.Translate.SandboxManager.prototype = { * Evaluates code in the sandbox */ "eval":function(code, exported, path) { - if(Zotero.isFx4) { - Components.utils.evalInSandbox(code, this.sandbox, "1.8", path, 1); - } else { - Components.utils.evalInSandbox(code, this.sandbox); - } + Components.utils.evalInSandbox(code, this.sandbox, "1.8", path, 1); }, /** @@ -491,29 +436,10 @@ Zotero.Translate.SandboxManager.prototype = { var isObject = typeof object[localKey] === "object"; if(isFunction || isObject) { if(isFunction) { - if(Zotero.isFx4) { - if(passAsFirstArgument) { - attachTo[localKey] = object[localKey].bind(object, passAsFirstArgument); - } else { - attachTo[localKey] = object[localKey].bind(object); - } + if(passAsFirstArgument) { + attachTo[localKey] = object[localKey].bind(object, passAsFirstArgument); } else { - attachTo[localKey] = function() { - if(passAsFirstArgument) { - var args = new Array(arguments.length+1); - args[0] = passAsFirstArgument; - var offset = 1; - } else { - var args = new Array(arguments.length); - var offset = 0; - } - - for(var i=0, nArgs=arguments.length; i<nArgs; i++) { - args[i+offset] = arguments[i]; - } - - return object[localKey].apply(object, args); - }; + attachTo[localKey] = object[localKey].bind(object); } } else { attachTo[localKey] = {}; diff --git a/chrome/content/zotero/xpcom/zotero.js b/chrome/content/zotero/xpcom/zotero.js @@ -216,29 +216,23 @@ const ZOTERO_CONFIG = { getService(Components.interfaces.nsIXULAppInfo), platformVersion = appInfo.platformVersion; this.isFx = true; - this.isFx3 = platformVersion.indexOf('1.9') === 0; - this.isFx35 = platformVersion.indexOf('1.9.1') === 0; - this.isFx31 = this.isFx35; - this.isFx36 = platformVersion.indexOf('1.9.2') === 0; - this.isFx4 = versionComparator.compare(platformVersion, "2.0a1") >= 0; - this.isFx5 = versionComparator.compare(platformVersion, "5.0a1") >= 0; + this.isFx3 = false; + this.isFx35 = false; + this.isFx31 = false; + this.isFx36 = false; + this.isFx4 = true; + this.isFx5 = true; this.isStandalone = appInfo.ID == ZOTERO_CONFIG['GUID']; if(this.isStandalone) { this.version = appInfo.version; - } else if(this.isFx4) { + } else { // Use until we collect version from extension manager this.version = ZOTERO_CONFIG['VERSION']; Components.utils.import("resource://gre/modules/AddonManager.jsm"); AddonManager.getAddonByID(ZOTERO_CONFIG['GUID'], function(addon) { Zotero.version = addon.version; }); - } else { - var gExtensionManager = - Components.classes["@mozilla.org/extensions/manager;1"] - .getService(Components.interfaces.nsIExtensionManager); - this.version - = gExtensionManager.getItemForID(ZOTERO_CONFIG['GUID']).version; } // OS platform @@ -380,11 +374,7 @@ const ZOTERO_CONFIG = { // evaluate Components.utils.evalInSandbox(prefsJs, sandbox); - if(Zotero.isFx4) { - var prefs = sandbox.prefs; - } else { - var prefs = new XPCSafeJSObjectWrapper(sandbox.prefs); - } + var prefs = sandbox.prefs; for(var key in prefs) { if(key.substr(0, ZOTERO_CONFIG.PREF_BRANCH.length) === ZOTERO_CONFIG.PREF_BRANCH && key !== "extensions.zotero.firstRun2") { @@ -1278,17 +1268,8 @@ const ZOTERO_CONFIG = { callback(addons); } - if(this.isFx4) { - Components.utils.import("resource://gre/modules/AddonManager.jsm"); - AddonManager.getAllAddons(onHaveInstalledAddons); - } else { - var em = Components.classes["@mozilla.org/extensions/manager;1"]. - getService(Components.interfaces.nsIExtensionManager); - var installed = em.getItemList( - Components.interfaces.nsIUpdateItem.TYPE_ANY, {} - ); - onHaveInstalledAddons(installed); - } + Components.utils.import("resource://gre/modules/AddonManager.jsm"); + AddonManager.getAllAddons(onHaveInstalledAddons); }