diff --git a/platform/common/vapi-background.js b/platform/common/vapi-background.js index cf2f00509..1c971f9e1 100644 --- a/platform/common/vapi-background.js +++ b/platform/common/vapi-background.js @@ -731,9 +731,8 @@ if ( webext.browserAction instanceof Object ) { { const browserAction = vAPI.browserAction; - const titleTemplate = - browser.runtime.getManifest().browser_action.default_title + - ' ({badge})'; + const titleTemplate = `${browser.runtime.getManifest().browser_action.default_title} ({badge})`; + const browserLaunchIssue = browser.i18n.getMessage('unprocessedRequestTooltip'); const icons = [ { path: { '16': 'img/icon_16-off.png', @@ -840,8 +839,9 @@ if ( webext.browserAction instanceof Object ) { const tab = await vAPI.tabs.get(tabId); if ( tab === null ) { return; } + const hasUnprocessedRequest = vAPI.net && vAPI.net.hasUnprocessedRequest(tabId); const { parts, state } = details; - const { badge, color } = vAPI.net && vAPI.net.hasUnprocessedRequest(tabId) + const { badge, color } = hasUnprocessedRequest ? { badge: '!', color: '#FC0' } : details; @@ -866,13 +866,11 @@ if ( webext.browserAction instanceof Object ) { // - the platform does not support browserAction.setIcon(); OR // - the rendering of the badge is disabled if ( browserAction.setTitle !== undefined ) { - browserAction.setTitle({ - tabId: tab.id, - title: titleTemplate.replace( - '{badge}', + const title = hasUnprocessedRequest && browserLaunchIssue || + titleTemplate.replace('{badge}', state === 1 ? (badge !== '' ? badge : '0') : 'off' - ) - }); + ); + browserAction.setTitle({ tabId: tab.id, title }); } if ( vAPI.contextMenu instanceof Object ) { diff --git a/src/_locales/en/messages.json b/src/_locales/en/messages.json index d4e5b5801..02ff8c8ec 100644 --- a/src/_locales/en/messages.json +++ b/src/_locales/en/messages.json @@ -1269,6 +1269,10 @@ "message": "Errors: {{count}}", "description": "Summary of number of errors as reported by the linter " }, + "unprocessedRequestTooltip": { + "message": "Could not filter properly at browser launch.\nReload the page to ensure proper filtering", + "description": "Tooltip for the toolbar icon. Use newline character(s) where appropriate to prevent tooltip from being too long horizontally" + }, "dummy": { "message": "This entry must be the last one", "description": "so we dont need to deal with comma for last entry"