From 504e63cd9a833b236b3d7f87ea71d58707db8804 Mon Sep 17 00:00:00 2001 From: mrmr1993 Date: Thu, 7 Sep 2017 12:55:57 +0100 Subject: Use browser.runtime.getBrowserInfo to identify Firefox --- background_scripts/main.coffee | 1 + content_scripts/vimium_frontend.coffee | 3 ++- lib/utils.coffee | 8 +++++++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/background_scripts/main.coffee b/background_scripts/main.coffee index 412b8781..379239ae 100644 --- a/background_scripts/main.coffee +++ b/background_scripts/main.coffee @@ -311,6 +311,7 @@ Frames = isEnabledForUrl: ({request, tabId, port}) -> urlForTab[tabId] = request.url if request.frameIsFocused + request.isFirefox = Utils.isFirefox() # Update the value for Utils.isFirefox in the frontend. enabledState = Exclusions.isEnabledForUrl request.url if request.frameIsFocused diff --git a/content_scripts/vimium_frontend.coffee b/content_scripts/vimium_frontend.coffee index dae25f5c..02bdfa2c 100644 --- a/content_scripts/vimium_frontend.coffee +++ b/content_scripts/vimium_frontend.coffee @@ -493,7 +493,8 @@ extend window, # the page icon. checkIfEnabledForUrl = do -> Frame.addEventListener "isEnabledForUrl", (response) -> - {isEnabledForUrl, passKeys, frameIsFocused} = response + {isEnabledForUrl, passKeys, frameIsFocused, isFirefox} = response + Utils.isFirefox = -> isFirefox initializeOnEnabledStateKnown isEnabledForUrl normalMode.setPassKeys passKeys # Hide the HUD if we're not enabled. diff --git a/lib/utils.coffee b/lib/utils.coffee index 520d5b8c..93cc3246 100644 --- a/lib/utils.coffee +++ b/lib/utils.coffee @@ -7,7 +7,13 @@ window.forTrusted ?= (handler) -> (event) -> true Utils = - isFirefox: -> 0 <= navigator.userAgent.indexOf "Firefox" + isFirefox: do -> + # NOTE(mrmr1993): This test only works in the background page, this is overwritten by isEnabledForUrl for + # content scripts. + isFirefox = false + browser?.runtime?.getBrowserInfo?()?.then? (browserInfo) -> + isFirefox = browserInfo?.name == "Firefox" + -> isFirefox getCurrentVersion: -> chrome.runtime.getManifest().version -- cgit v1.2.3