From 3530b9dc89d76aecf3b3f65edc223488591327d3 Mon Sep 17 00:00:00 2001 From: Raymond Hill Date: Sun, 9 Apr 2023 14:02:01 -0400 Subject: [PATCH] Add informative tooltip re. unprocessed requests at launch Related issue: - https://github.com/uBlockOrigin/uBlock-issues/issues/2585 --- platform/common/vapi-background.js | 18 ++++++++---------- src/_locales/en/messages.json | 4 ++++ 2 files changed, 12 insertions(+), 10 deletions(-) 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"