From 6539939d0488142d889396bc8048e3ed62fb1600 Mon Sep 17 00:00:00 2001
From: Zacgoose <107489668+Zacgoose@users.noreply.github.com>
Date: Sat, 28 Feb 2026 14:03:23 +0800
Subject: [PATCH] Add support/privacy/about branding URLs
Introduce supportUrl, privacyPolicyUrl and aboutUrl branding properties across the project. Updates include managed schema, default configs, enterprise policy templates (REG/PS/ADMX/ADML/JSON), options and popup UI/JS, config manager merging logic (including deriving supportUrl from supportEmail when missing), and tests covering branding link behavior. Also removes the legacy companyURL field from many places and updates docs to show the new properties and examples.
---
config/branding.json | 4 +-
config/managed_schema.json | 29 ++-
docs/settings/branding.md | 37 +++-
enterprise/Check-Extension-Policy.reg | 30 +--
enterprise/Deploy-Windows-Chrome-and-Edge.ps1 | 10 +-
enterprise/Remove-Windows-Chrome-and-Edge.ps1 | 4 +-
enterprise/Test-Extension-Policy.ps1 | 1 -
enterprise/admx/Check-Extension.admx | 148 +++++++++-----
enterprise/admx/en-US/Check-Extension.adml | 186 +++++++++++-------
enterprise/firefox/policies.json | 6 +-
.../macos-linux/chrome-managed-policy.json | 5 +-
.../macos-linux/edge-managed-policy.json | 5 +-
options/options.html | 32 ++-
options/options.js | 37 ++--
popup/popup.html | 2 +-
popup/popup.js | 18 +-
scripts/modules/config-manager.js | 17 +-
tests/config-persistence.test.js | 47 +++++
18 files changed, 428 insertions(+), 190 deletions(-)
diff --git a/config/branding.json b/config/branding.json
index c09a76b4..1e54978d 100644
--- a/config/branding.json
+++ b/config/branding.json
@@ -1,7 +1,9 @@
{
"companyName": "CyberDrain",
- "companyURL": "https://cyberdrain.com/",
"productName": "Check",
+ "supportUrl": "https://support.cyberdrain.com",
+ "privacyPolicyUrl": "https://cyberdrain.com/privacy",
+ "aboutUrl": "",
"version": "1.1.0",
"description": "Protect against phishing attacks targeting Microsoft 365 login pages with enterprise-grade detection",
"branding": {
diff --git a/config/managed_schema.json b/config/managed_schema.json
index fa279af6..5cc63bcb 100644
--- a/config/managed_schema.json
+++ b/config/managed_schema.json
@@ -125,12 +125,6 @@
"description": "Company name to display in the extension",
"type": "string",
"default": ""
- },
- "companyURL": {
- "title": "Company URL",
- "description": "Company URL used in the extension",
- "type": "string",
- "default": "https://cyberdrain.com/"
},
"productName": {
"title": "Product Name",
@@ -145,6 +139,27 @@
"format": "email",
"default": ""
},
+ "supportUrl": {
+ "title": "Support URL",
+ "description": "URL opened by the popup Support link",
+ "type": "string",
+ "format": "uri",
+ "default": ""
+ },
+ "privacyPolicyUrl": {
+ "title": "Privacy URL",
+ "description": "URL opened by the popup Privacy link",
+ "type": "string",
+ "format": "uri",
+ "default": ""
+ },
+ "aboutUrl": {
+ "title": "About URL",
+ "description": "URL opened by the popup About link",
+ "type": "string",
+ "format": "uri",
+ "default": ""
+ },
"primaryColor": {
"title": "Primary Color",
"description": "Primary theme color (hex code)",
@@ -162,4 +177,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/docs/settings/branding.md b/docs/settings/branding.md
index a4dce7b6..9ba3fed7 100644
--- a/docs/settings/branding.md
+++ b/docs/settings/branding.md
@@ -30,9 +30,11 @@ If some settings do not appear on your version, it means your organization's IT
You can customize the following properties:
1. **Company Name** - Enter your organization's name. This appears in the extension interface and blocked page messages (displayed as "Protected by \[Company Name]").
-2. **Company URL** - Your company website URL (e.g., `https://yourcompany.com`). Used in extension branding and contact information. _(Firefox: required, Chrome/Edge: optional)_
-3. **Product Name** - What you want to call the extension (like "Contoso Security" instead of "Check"). This replaces the default "Check" branding throughout the interface.
-4. **Support Email** - Where users should go for help. This email address is used in the "Contact Admin" button when phishing sites are blocked.
+2. **Product Name** - What you want to call the extension (like "Contoso Security" instead of "Check"). This replaces the default "Check" branding throughout the interface.
+3. **Support Email** - Where users should go for help. This email address is used in the "Contact Admin" button when phishing sites are blocked.
+4. **Support URL** - URL opened by the popup **Support** link (for example, `https://support.yourcompany.com`).
+5. **Privacy Policy URL** (`privacyPolicyUrl`) - URL opened by the popup **Privacy** link (for example, `https://yourcompany.com/privacy`).
+6. **About URL** (`aboutUrl`) - URL opened by the popup **About** link. Leave empty to use the built-in extension About page.
## Visual Customization
@@ -60,6 +62,9 @@ The branding preview shows you exactly how your customizations will appear to us
* Logo (upload or provide URL)
* Primary Color
* Support Email
+ * Support URL
+ * Privacy Policy URL
+ * About URL
4. Click "Save"
Your branding will be immediately applied to all components.
@@ -78,7 +83,10 @@ For enterprise deployments using Windows Group Policy:
"companyName": "Your Company",
"logoUrl": "https://example.com/logo.png",
"primaryColor": "#FF5733",
- "supportEmail": "security@example.com"
+ "supportEmail": "security@example.com",
+ "supportUrl": "https://support.example.com",
+ "privacyPolicyUrl": "https://example.com/privacy",
+ "aboutUrl": "https://example.com/about"
}
}
```
@@ -106,9 +114,11 @@ For Firefox deployments, configure branding through the `policies.json` file:
"check@cyberdrain.com": {
"customBranding": {
"companyName": "Your Company",
- "companyURL": "https://yourcompany.com",
"productName": "Security Extension",
"supportEmail": "security@example.com",
+ "supportUrl": "https://support.example.com",
+ "privacyPolicyUrl": "https://example.com/privacy",
+ "aboutUrl": "https://example.com/about",
"primaryColor": "#FF5733",
"logoUrl": "https://example.com/logo.png"
}
@@ -137,7 +147,10 @@ For organizations using Microsoft Intune with Chrome/Edge:
"companyName": "Your Company",
"logoUrl": "https://example.com/logo.png",
"primaryColor": "#FF5733",
- "supportEmail": "security@example.com"
+ "supportEmail": "security@example.com",
+ "supportUrl": "https://support.example.com",
+ "privacyPolicyUrl": "https://example.com/privacy",
+ "aboutUrl": "https://example.com/about"
}
}
```
@@ -201,7 +214,6 @@ Enterprise policies always take precedence over manual settings.
* Uses extension ID: `check@cyberdrain.com`
* Configuration is managed through `policies.json` file
-* Supports additional `companyURL` property
* Policies file location varies by operating system
### Chrome & Edge
@@ -290,7 +302,10 @@ Logo URL: https://assets.globalmfg.com/security/gmi-logo-48.png
"productName": "Contoso Defender",
"logoUrl": "https://contoso.com/assets/logo.png",
"primaryColor": "#0078D4",
- "supportEmail": "security@contoso.com"
+ "supportEmail": "security@contoso.com",
+ "supportUrl": "https://support.contoso.com",
+ "privacyPolicyUrl": "https://contoso.com/privacy",
+ "aboutUrl": "https://contoso.com/about"
}
}
```
@@ -305,11 +320,13 @@ Logo URL: https://assets.globalmfg.com/security/gmi-logo-48.png
"check@cyberdrain.com": {
"customBranding": {
"companyName": "Contoso Corporation",
- "companyURL": "https://contoso.com",
"productName": "Contoso Defender",
"logoUrl": "https://contoso.com/assets/logo.png",
"primaryColor": "#0078D4",
- "supportEmail": "security@contoso.com"
+ "supportEmail": "security@contoso.com",
+ "supportUrl": "https://support.contoso.com",
+ "privacyPolicyUrl": "https://contoso.com/privacy",
+ "aboutUrl": "https://contoso.com/about"
}
}
}
diff --git a/enterprise/Check-Extension-Policy.reg b/enterprise/Check-Extension-Policy.reg
index fce2f70c..9f2f0044 100644
--- a/enterprise/Check-Extension-Policy.reg
+++ b/enterprise/Check-Extension-Policy.reg
@@ -21,12 +21,15 @@ Windows Registry Editor Version 5.00
"enableDebugLogging"=dword:00000000
; Custom branding configuration
-[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge\3rdparty\extensions\knepjpocdagponkonnbggpcnhnaikajg\policy\customBranding]
-"companyName"="CyberDrain"
-"productName"="Check"
-"supportEmail"=""
-"primaryColor"="#F77F00"
-"logoUrl"=""
+[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge\3rdparty\extensions\knepjpocdagponkonnbggpcnhnaikajg\policy\customBranding]
+"companyName"="CyberDrain"
+"productName"="Check"
+"supportEmail"=""
+"supportUrl"=""
+"privacyPolicyUrl"=""
+"aboutUrl"=""
+"primaryColor"="#F77F00"
+"logoUrl"=""
; Optional: Prevent users from disabling the extension
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge\ExtensionSettings]
@@ -53,12 +56,15 @@ Windows Registry Editor Version 5.00
"enableDebugLogging"=dword:00000000
; Custom branding configuration for Chrome
-[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\3rdparty\extensions\benimdeioplgkhanklclahllklceahbe\policy\customBranding]
-"companyName"="CyberDrain"
-"productName"="Check"
-"supportEmail"=""
-"primaryColor"="#F77F00"
-"logoUrl"=""
+[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\3rdparty\extensions\benimdeioplgkhanklclahllklceahbe\policy\customBranding]
+"companyName"="CyberDrain"
+"productName"="Check"
+"supportEmail"=""
+"supportUrl"=""
+"privacyPolicyUrl"=""
+"aboutUrl"=""
+"primaryColor"="#F77F00"
+"logoUrl"=""
; Optional: Prevent users from disabling the extension in Chrome
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\ExtensionSettings]
diff --git a/enterprise/Deploy-Windows-Chrome-and-Edge.ps1 b/enterprise/Deploy-Windows-Chrome-and-Edge.ps1
index b886eb8a..1e991b78 100644
--- a/enterprise/Deploy-Windows-Chrome-and-Edge.ps1
+++ b/enterprise/Deploy-Windows-Chrome-and-Edge.ps1
@@ -31,9 +31,11 @@ $webhookEvents = @() # This will set the "Event Types" to send to the webhook; d
# Custom Branding Settings
$companyName = "CyberDrain" # This will set the "Company Name" option in the Custom Branding settings; default is "CyberDrain".
-$companyURL = "https://cyberdrain.com" # This will set the Company URL option in the Custom Branding settings; default is "https://cyberdrain.com"; Must include the protocol (e.g., https://).
$productName = "Check - Phishing Protection" # This will set the "Product Name" option in the Custom Branding settings; default is "Check - Phishing Protection".
$supportEmail = "" # This will set the "Support Email" option in the Custom Branding settings; default is blank.
+$supportUrl = "" # This will set the "Support URL" option in the Custom Branding settings; default is blank.
+$privacyPolicyUrl = "" # This will set the "Privacy URL" option in the Custom Branding settings; default is blank.
+$aboutUrl = "" # This will set the "About URL" option in the Custom Branding settings; default is blank.
$primaryColor = "#F77F00" # This will set the "Primary Color" option in the Custom Branding settings; default is "#F77F00"; must be a valid hex color code (e.g., #FFFFFF).
$logoUrl = "" # This will set the "Logo URL" option in the Custom Branding settings; default is blank. Must be a valid URL including the protocol (e.g., https://example.com/logo.png); protocol must be https; recommended size is 48x48 pixels with a maximum of 128x128.
@@ -90,9 +92,11 @@ function Configure-ExtensionSettings {
# Set custom branding settings
New-ItemProperty -Path $customBrandingKey -Name "companyName" -PropertyType String -Value $companyName -Force | Out-Null
- New-ItemProperty -Path $customBrandingKey -Name "companyURL" -PropertyType String -Value $companyURL -Force | Out-Null
New-ItemProperty -Path $customBrandingKey -Name "productName" -PropertyType String -Value $productName -Force | Out-Null
New-ItemProperty -Path $customBrandingKey -Name "supportEmail" -PropertyType String -Value $supportEmail -Force | Out-Null
+ New-ItemProperty -Path $customBrandingKey -Name "supportUrl" -PropertyType String -Value $supportUrl -Force | Out-Null
+ New-ItemProperty -Path $customBrandingKey -Name "privacyPolicyUrl" -PropertyType String -Value $privacyPolicyUrl -Force | Out-Null
+ New-ItemProperty -Path $customBrandingKey -Name "aboutUrl" -PropertyType String -Value $aboutUrl -Force | Out-Null
New-ItemProperty -Path $customBrandingKey -Name "primaryColor" -PropertyType String -Value $primaryColor -Force | Out-Null
New-ItemProperty -Path $customBrandingKey -Name "logoUrl" -PropertyType String -Value $logoUrl -Force | Out-Null
@@ -145,4 +149,4 @@ function Configure-ExtensionSettings {
# Configure settings for Chrome and Edge
Configure-ExtensionSettings -ExtensionId $chromeExtensionId -UpdateUrl $chromeUpdateUrl -ManagedStorageKey $chromeManagedStorageKey -ExtensionSettingsKey $chromeExtensionSettingsKey
-Configure-ExtensionSettings -ExtensionId $edgeExtensionId -UpdateUrl $edgeUpdateUrl -ManagedStorageKey $edgeManagedStorageKey -ExtensionSettingsKey $edgeExtensionSettingsKey
\ No newline at end of file
+Configure-ExtensionSettings -ExtensionId $edgeExtensionId -UpdateUrl $edgeUpdateUrl -ManagedStorageKey $edgeManagedStorageKey -ExtensionSettingsKey $edgeExtensionSettingsKey
diff --git a/enterprise/Remove-Windows-Chrome-and-Edge.ps1 b/enterprise/Remove-Windows-Chrome-and-Edge.ps1
index fed3c9d9..b221b231 100644
--- a/enterprise/Remove-Windows-Chrome-and-Edge.ps1
+++ b/enterprise/Remove-Windows-Chrome-and-Edge.ps1
@@ -63,9 +63,11 @@ function Remove-ExtensionSettings {
if (Test-Path $customBrandingKey) {
$brandingPropertiesToRemove = @(
"companyName",
- "companyURL",
"productName",
"supportEmail",
+ "supportUrl",
+ "privacyPolicyUrl",
+ "aboutUrl",
"primaryColor",
"logoUrl"
)
diff --git a/enterprise/Test-Extension-Policy.ps1 b/enterprise/Test-Extension-Policy.ps1
index 6a07d23e..eaa3218a 100644
--- a/enterprise/Test-Extension-Policy.ps1
+++ b/enterprise/Test-Extension-Policy.ps1
@@ -26,7 +26,6 @@ $testConfig = @{
# Custom branding test values
$testBranding = @{
companyName = "Test Company"
- companyURL = "https://example.com"
productName = "Test Product"
supportEmail = "test@example.com"
primaryColor = "#FF6B00"
diff --git a/enterprise/admx/Check-Extension.admx b/enterprise/admx/Check-Extension.admx
index d69c2620..2c937226 100644
--- a/enterprise/admx/Check-Extension.admx
+++ b/enterprise/admx/Check-Extension.admx
@@ -149,35 +149,62 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -333,34 +360,61 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/enterprise/admx/en-US/Check-Extension.adml b/enterprise/admx/en-US/Check-Extension.adml
index 078a8c12..3a217d8b 100644
--- a/enterprise/admx/en-US/Check-Extension.adml
+++ b/enterprise/admx/en-US/Check-Extension.adml
@@ -181,16 +181,7 @@
The company name appears in the extension popup and settings pages.
-
- Company URL
-
- This policy specifies the company URL used in the extension for branding and navigation purposes.
-
- Example: https://contoso.com
-
- The company URL is used for linking back to the company website from the extension interface.
-
-
+
Product name
This policy specifies a custom product name for the extension.
@@ -201,15 +192,36 @@
Support email address
-
- This policy specifies the email address users should contact for support with the extension.
-
- Example: security@contoso.com
-
- This email address is displayed in the extension interface and help documentation.
-
-
- Primary theme color
+
+ This policy specifies the email address users should contact for support with the extension.
+
+ Example: security@contoso.com
+
+ This email address is displayed in the extension interface and help documentation.
+
+
+ Support URL
+
+ This policy specifies the support URL opened by the extension Support link.
+
+ Example: https://support.contoso.com
+
+
+ Privacy URL
+
+ This policy specifies the privacy policy URL opened by the extension Privacy link.
+
+ Example: https://contoso.com/privacy
+
+
+ About URL
+
+ This policy specifies the about URL opened by the extension About link.
+
+ Example: https://contoso.com/about
+
+
+ Primary theme color
This policy specifies the primary theme color for the extension interface using a hex color code.
@@ -330,16 +342,7 @@
The company name appears in the extension popup and settings pages.
-
- Company URL (Chrome)
-
- This policy specifies the company URL used in the extension for branding and navigation purposes in Google Chrome.
-
- Example: https://contoso.com
-
- The company URL is used for linking back to the company website from the extension interface.
-
-
+
Product name (Chrome)
This policy specifies a custom product name for the extension in Google Chrome.
@@ -350,15 +353,36 @@
Support email address (Chrome)
-
- This policy specifies the email address users should contact for support with the extension in Google Chrome.
-
- Example: security@contoso.com
-
- This email address is displayed in the extension interface and help documentation.
-
-
- Primary theme color (Chrome)
+
+ This policy specifies the email address users should contact for support with the extension in Google Chrome.
+
+ Example: security@contoso.com
+
+ This email address is displayed in the extension interface and help documentation.
+
+
+ Support URL (Chrome)
+
+ This policy specifies the support URL opened by the extension Support link in Google Chrome.
+
+ Example: https://support.contoso.com
+
+
+ Privacy URL (Chrome)
+
+ This policy specifies the privacy policy URL opened by the extension Privacy link in Google Chrome.
+
+ Example: https://contoso.com/privacy
+
+
+ About URL (Chrome)
+
+ This policy specifies the about URL opened by the extension About link in Google Chrome.
+
+ Example: https://contoso.com/about
+
+
+ Primary theme color (Chrome)
This policy specifies the primary theme color for the extension interface using a hex color code in Google Chrome.
@@ -409,26 +433,36 @@
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -458,26 +492,36 @@
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -491,4 +535,4 @@
-
\ No newline at end of file
+
diff --git a/enterprise/firefox/policies.json b/enterprise/firefox/policies.json
index be564a92..16f7e491 100644
--- a/enterprise/firefox/policies.json
+++ b/enterprise/firefox/policies.json
@@ -31,9 +31,11 @@
"enableDebugLogging": false,
"customBranding": {
"companyName": "",
- "companyURL": "https://cyberdrain.com/",
"productName": "",
"supportEmail": "",
+ "supportUrl": "",
+ "privacyPolicyUrl": "",
+ "aboutUrl": "",
"primaryColor": "#F77F00",
"logoUrl": ""
},
@@ -50,4 +52,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/enterprise/macos-linux/chrome-managed-policy.json b/enterprise/macos-linux/chrome-managed-policy.json
index 58ac0eb7..190df728 100644
--- a/enterprise/macos-linux/chrome-managed-policy.json
+++ b/enterprise/macos-linux/chrome-managed-policy.json
@@ -22,6 +22,9 @@
"companyName": "",
"productName": "",
"supportEmail": "",
+ "supportUrl": "",
+ "privacyPolicyUrl": "",
+ "aboutUrl": "",
"primaryColor": "#F77F00",
"logoUrl": ""
},
@@ -37,4 +40,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/enterprise/macos-linux/edge-managed-policy.json b/enterprise/macos-linux/edge-managed-policy.json
index fc44bd0d..59394080 100644
--- a/enterprise/macos-linux/edge-managed-policy.json
+++ b/enterprise/macos-linux/edge-managed-policy.json
@@ -22,6 +22,9 @@
"companyName": "",
"productName": "",
"supportEmail": "",
+ "supportUrl": "",
+ "privacyPolicyUrl": "",
+ "aboutUrl": "",
"primaryColor": "#F77F00",
"logoUrl": ""
},
@@ -37,4 +40,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/options/options.html b/options/options.html
index 7a69aead..0162651f 100644
--- a/options/options.html
+++ b/options/options.html
@@ -382,14 +382,6 @@
Company Information
Company name displayed in the extension
-
-
-
Your company website URL
-
-
Email address for user support
+
+
+
+
URL opened by the popup Support button
+
+
+
+
+
URL opened by the popup Privacy button
+
+
+
+
+
URL opened by the popup About button (leave empty to use extension About page)