From be8b6238d3fd249fddfb29d3bf0ae9be61d73f00 Mon Sep 17 00:00:00 2001
From: Raymond Hill
Date: Mon, 19 May 2025 10:39:31 -0400
Subject: [PATCH] [mv3] Add browser info in troubleshooting data
---
platform/mv3/extension/js/report.js | 26 ++++++++++++++++++++++++++
platform/mv3/extension/report.html | 2 +-
2 files changed, 27 insertions(+), 1 deletion(-)
diff --git a/platform/mv3/extension/js/report.js b/platform/mv3/extension/js/report.js
index eda30f97f..6a96374f6 100644
--- a/platform/mv3/extension/js/report.js
+++ b/platform/mv3/extension/js/report.js
@@ -95,16 +95,42 @@ function renderData(data, depth = 0) {
async function getConfigData() {
const manifest = runtime.getManifest();
const [
+ platformInfo,
rulesets,
defaultMode,
] = await Promise.all([
+ runtime.getPlatformInfo(),
dnr.getEnabledRulesets(),
sendMessage({ what: 'getDefaultFilteringMode' }),
]);
+ let browser = (( ) => {
+ const extURL = runtime.getURL('');
+ let agent = '';
+ if ( extURL.startsWith('moz-extension:') ) {
+ agent = 'Firefox';
+ } else if ( extURL.startsWith('safari-web-extension:') ) {
+ agent = 'Safari';
+ } else if ( /\bEdg\/\b/.test(navigator.userAgent) ) {
+ agent = 'Edge';
+ } else {
+ agent = 'Chrome';
+ }
+ if ( /\bMobile\b/.test(navigator.userAgent) ) {
+ agent += ' Mobile';
+ }
+ const reVersion = new RegExp(`\\b${agent.slice(0,3)}[^/]*/(\\d+)`);
+ const match = reVersion.exec(navigator.userAgent);
+ if ( match ) {
+ agent += ` ${match[1]}`;
+ }
+ agent += ` (${platformInfo.os})`
+ return agent;
+ })();
const modes = [ 'no filtering', 'basic', 'optimal', 'complete' ];
const config = {
name: manifest.name,
version: manifest.version,
+ browser,
filtering: {
'site': `${modes[reportedPage.mode]}`,
'default': `${modes[defaultMode]}`,
diff --git a/platform/mv3/extension/report.html b/platform/mv3/extension/report.html
index 378701f7d..0cb258ad9 100644
--- a/platform/mv3/extension/report.html
+++ b/platform/mv3/extension/report.html
@@ -50,7 +50,7 @@
-