From 0f61f18c917c558aee8cf6ed876755188167bf20 Mon Sep 17 00:00:00 2001 From: FelisCatus Date: Wed, 1 Mar 2017 00:39:11 -0500 Subject: [PATCH] Retry setting icon with legacy sizes if it fails. Fix #1003. --- .../src/tabs.coffee | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/omega-target-chromium-extension/src/tabs.coffee b/omega-target-chromium-extension/src/tabs.coffee index e82b79d..4fda0ce 100644 --- a/omega-target-chromium-extension/src/tabs.coffee +++ b/omega-target-chromium-extension/src/tabs.coffee @@ -65,16 +65,27 @@ class ChromeTabs setIcon: (icon, tabId) -> return unless icon? if tabId? - chrome.browserAction.setIcon({ + params = { imageData: icon tabId: tabId - }, @ignoreError) + } else - chrome.browserAction.setIcon({imageData: icon}, @ignoreError) + params = { + imageData: icon + } + @_chromeSetIcon(params) + + _chromeSetIcon: (params) -> + try + chrome.browserAction.setIcon(params, @ignoreError) + catch + # Some legacy Chrome versions will panic if there are other icon sizes. + params.imageData = {19: params.imageData[19], 38: params.imageData[38]} + chrome.browserAction.setIcon(params, @ignoreError) clearIcon: (tabId) -> return unless @_defaultAction?.icon? - chrome.browserAction.setIcon({ + @_chromeSetIcon({ imageData: @_defaultAction.icon tabId: tabId }, @ignoreError)