From 20418d619502ac00a4a81dca850ce411ea9af38d Mon Sep 17 00:00:00 2001 From: Simon Lydell Date: Mon, 22 Aug 2016 19:52:12 +0200 Subject: [PATCH] Prevent `vimfx.addOptionOverrides` from crashing on startup Fixes #795. --- extension/lib/api.coffee | 2 ++ extension/lib/utils.coffee | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/extension/lib/api.coffee b/extension/lib/api.coffee index 4a665dd..5a10f1e 100644 --- a/extension/lib/api.coffee +++ b/extension/lib/api.coffee @@ -102,6 +102,7 @@ createConfigAPI = (vimfx) -> { vimfx.options = new Proxy(vimfx.options, { get: (options, pref) -> location = utils.getCurrentLocation() + return options[pref] unless location overrides = getOverrides(vimfx.optionOverrides, location) return overrides?[pref] ? options[pref] }) @@ -113,6 +114,7 @@ createConfigAPI = (vimfx) -> { vimfx.keyOverrides = [] vimfx.options.keyValidator = (keyStr, mode) -> location = utils.getCurrentLocation() + return true unless location overrides = getOverrides(vimfx.keyOverrides, location, mode) return keyStr not in (overrides ? []) onShutdown(vimfx, -> vimfx.keyOverrides = []) diff --git a/extension/lib/utils.coffee b/extension/lib/utils.coffee index af74862..251c4d8 100644 --- a/extension/lib/utils.coffee +++ b/extension/lib/utils.coffee @@ -537,9 +537,10 @@ formatError = (error) -> return "#{error}\n#{stack}" getCurrentLocation = -> - window = getCurrentWindow() + return unless window = getCurrentWindow() return new window.URL(window.gBrowser.selectedBrowser.currentURI.spec) +# This function might return `null` on startup. getCurrentWindow = -> nsIWindowMediator.getMostRecentWindow('navigator:browser') hasEventListeners = (element, type) -> -- 2.39.3