Skip to content

Commit eb19ae8

Browse files
committed
Add Firefox support and documentation updates
Introduces full Firefox 109+ support, including new manifest, browser polyfill, and enterprise deployment via policies.json. Updates documentation to cover Firefox installation, deployment, and configuration. Adds new settings (e.g., validPageBadgeTimeout), expands detection rule documentation for code-driven logic, and updates branding and general settings guides for cross-browser compatibility.
1 parent 3da1e16 commit eb19ae8

38 files changed

+4759
-725
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,7 @@ config/local-config.json
177177
config/development.json
178178
config/production.json
179179
config/test.json
180+
manifest.chrome.json
180181

181182
# Sensitive configuration files
182183
config/secrets.json

CONTRIBUTING.md

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,32 @@
11
# Contributing to Check
22

3-
Thanks for taking the time to contribute! These guidelines help keep contributions consistent and reliable for this Chrome extension.
3+
Thanks for taking the time to contribute! These guidelines help keep contributions consistent and reliable for this cross-browser extension.
44

55
## Development Setup
6+
7+
### Chrome/Edge
68
- Fork the repository and clone your fork.
7-
- In Chrome or a Chromium-based browser, open `chrome://extensions`.
9+
- Run `npm run build:chrome` to configure for Chrome/Edge.
10+
- In Chrome or Edge, open `chrome://extensions` or `edge://extensions`.
811
- Enable **Developer mode** and choose **Load unpacked**.
912
- Select the repository root to load the extension. Reload the extension after making changes.
1013

14+
### Firefox
15+
- Fork the repository and clone your fork.
16+
- Run `npm run build:firefox` to configure for Firefox.
17+
- In Firefox, open `about:debugging#/runtime/this-firefox`.
18+
- Click **Load Temporary Add-on** and select `manifest.json`.
19+
- Reload the extension after making changes.
20+
- See [Firefox Support Guide](docs/firefox-support.md) for more details.
21+
22+
## Cross-Browser Compatibility
23+
- The extension supports Chrome, Edge, and Firefox through browser polyfills.
24+
- Always test changes in both Chrome and Firefox before submitting.
25+
- Use the browser polyfill APIs in your code:
26+
- In ES modules: `import { chrome, storage } from "./browser-polyfill.js"`
27+
- In traditional scripts: The polyfill is auto-loaded, just use `chrome.*` as normal
28+
- Avoid browser-specific features unless absolutely necessary.
29+
1130
## Coding Standards (ESLint)
1231
- No ESLint configuration is committed to the repository. Maintain the existing code style (2 spaces, semicolons, ES modules).
1332
- If you have ESLint installed locally, run `npx eslint scripts options popup` with the default recommended rules and resolve any issues before committing.
@@ -18,10 +37,12 @@ Thanks for taking the time to contribute! These guidelines help keep contributio
1837

1938
## Testing Expectations
2039
- Automated tests are not currently available. Manually test changes by loading the extension and verifying:
21-
- The background service worker initializes without errors.
40+
- The background service worker/script initializes without errors.
2241
- Content scripts inject and execute as expected.
2342
- Options and popup pages function correctly.
24-
- Include a brief summary of manual testing in your pull request.
43+
- **Test in both Chrome and Firefox** to ensure cross-browser compatibility.
44+
- See [Firefox Support Guide](docs/firefox-support.md) for Firefox testing instructions.
45+
- Include a brief summary of manual testing in your pull request, noting which browsers were tested.
2546

2647
## Scripted Deployment Updates
2748
- Any new configuration settings result in a need to be managed by scripted deployment. As such, the following files need to be reviewed and have the settings added:

README.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ impersonate Microsoft 365 sign-in pages.
55

66
Install it from the [Chrome](https://chromewebstore.google.com/detail/benimdeioplgkhanklclahllklceahbe) Store here or the [Edge](https://microsoftedge.microsoft.com/addons/detail/check-by-cyberdrain/knepjpocdagponkonnbggpcnhnaikajg) store here.
77

8+
**Firefox Support**: The extension also works on Firefox 109+. See [Firefox Support](docs/firefox-support.md) for installation instructions.
9+
810
## Features
911

1012
- **Detection engine** – loads rules from `rules/detection-rules.json` and
@@ -21,19 +23,27 @@ Install it from the [Chrome](https://chromewebstore.google.com/detail/benimdeiop
2123

2224
## Requirements
2325

24-
- Chrome 88+ or other Chromium-based browsers supporting Manifest V3
26+
- Chrome 88+, Edge 88+, or Firefox 109+ (browsers supporting Manifest V3)
2527
- Optional enterprise management via Group Policy or Microsoft Intune for
2628
policy enforcement
2729

2830
## Installation
2931

3032
### Manual
3133

34+
#### Chrome/Edge
3235
1. Clone this repository.
33-
2. In Chrome/Edge open `chrome://extensions/` and enable **Developer mode**.
36+
2. In Chrome/Edge open `chrome://extensions/` or `edge://extensions` and enable **Developer mode**.
3437
3. Click **Load unpacked** and select the project directory.
3538
4. Verify the extension using `test-extension-loading.html`.
3639

40+
#### Firefox
41+
1. Clone this repository.
42+
2. Run `npm run build:firefox` to configure for Firefox.
43+
3. Open `about:debugging#/runtime/this-firefox` in Firefox.
44+
4. Click **Load Temporary Add-on** and select `manifest.json`.
45+
5. For more details, see [Firefox Support](docs/firefox-support.md).
46+
3747
### Enterprise
3848

3949
Package the extension directory (zip) and deploy through your browser’s policy

config/managed_schema.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,14 @@
1313
"type": "boolean",
1414
"default": true
1515
},
16+
"validPageBadgeTimeout": {
17+
"title": "Valid Page Badge Timeout (seconds)",
18+
"description": "Auto-dismiss timeout for the valid page badge in seconds. Set to 0 for no timeout (badge stays visible until manually dismissed).",
19+
"type": "integer",
20+
"minimum": 0,
21+
"maximum": 300,
22+
"default": 5
23+
},
1624
"enablePageBlocking": {
1725
"title": "Page Blocking Enabled",
1826
"description": "Enable blocking of malicious pages",

docs/README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,12 @@ layout:
2020

2121
## What is Check?
2222

23-
**Check** is an browser extension that provides real-time protection against Microsoft 365 phishing attacks. 
23+
**Check** is a browser extension that provides real-time protection against Microsoft 365 phishing attacks. 
2424

2525
Specifically designed for enterprises and managed service providers, Check uses sophisticated detection algorithms to identify and block malicious login pages before credentials can be stolen by bad actors.
2626

27+
Check is available for **Chrome**, **Microsoft Edge**, and **Firefox** (109+).
28+
2729
The extension integrates seamlessly with existing security workflows, offering centralized management, comprehensive logging, and offers an optional CIPP integration for MSPs managing multiple Microsoft 365 tenants. 
2830

2931
Check is completely free, open source, and can be delivered to users completely white-label, it is an open source project licensed under AGPL-3. You can contribute to check at [https://github.com/cyberdrain/Check](https://github.com/cyberdrain/Check). 
@@ -32,6 +34,8 @@ Installing the plugin immediately gives you protection against AITM attacks, and
3234

3335
<a href="https://microsoftedge.microsoft.com/addons/detail/check-by-cyberdrain/knepjpocdagponkonnbggpcnhnaikajg" class="button primary">Install for Edge</a> **OR** <a href="https://chromewebstore.google.com/detail/benimdeioplgkhanklclahllklceahbe" class="button primary">Install for Chrome</a>
3436

37+
**Firefox users:** See the [Firefox Support](firefox-support.md) guide for installation instructions.
38+
3539
## Why was Check created?
3640

3741
Check was created out of a need to have better protection against AITM attacks. During a CyberDrain brainstorming session CyberDrain's lead dev came up with the idea to create a Chrome extension to protect users:

docs/SUMMARY.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Table of contents
22

33
- [About](README.md)
4+
- [Firefox Support](firefox-support.md)
45

56
## Deployment
67

@@ -10,6 +11,7 @@
1011
- [Domain Deployment](deployment/chrome-edge-deployment-instructions/windows/domain-deployment.md)
1112
- [RMM Deployment](deployment/chrome-edge-deployment-instructions/windows/rmm-deployment.md)
1213
- [MacOS](deployment/chrome-edge-deployment-instructions/macos.md)
14+
- [Firefox Deployment](deployment/firefox-deployment.md)
1315

1416
## Settings
1517

0 commit comments

Comments
 (0)