-
Notifications
You must be signed in to change notification settings - Fork 88
Dev to release #114
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dev to release #114
Conversation
Added permissions for content write access in jobs. Signed-off-by: John Duprey <john@cyberdrain.com>
This script removes specific Chrome and Edge extension settings from the Windows registry, including managed storage and extension settings keys. Signed-off-by: Roel van der Wegen <roel@cyberdrain.com>
…r instead of local storage
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: John Duprey <jwd@johnwduprey.com>
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.
Webhooks and CIPP reports are now sent only via explicit message handlers to avoid duplicate reporting. Updated logic for sending and defanging URLs in webhook payloads, improved logging, and enhanced code consistency and formatting throughout content.js and background.js.
Signed-off-by: Zacgoose <107489668+Zacgoose@users.noreply.github.com>
…e phishing logs and indicators
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This is a major feature release (v1.0.5 → v1.1.0) titled "Dev to release" that adds Firefox support and includes significant enhancements to the phishing detection extension. The PR implements cross-browser compatibility, introduces a browser polyfill system, enhances webhook functionality, adds sophisticated code-driven detection rules, and improves performance with cleaned page source scanning.
Key changes:
- Firefox compatibility with browser polyfill and Firefox-specific manifest
- Webhook system now supports multiple webhooks with improved payload structure
- Detection engine with code-driven logic and performance optimizations
- Build system for browser-specific packaging
Reviewed changes
Copilot reviewed 41 out of 43 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| scripts/browser-polyfill.js | New cross-browser API wrapper for Chrome/Firefox compatibility |
| scripts/browser-polyfill-inline.js | Non-module polyfill version for content scripts |
| scripts/build.js | Build script for browser-specific packaging (Chrome/Firefox) |
| manifest.firefox.json | Firefox-specific manifest with Gecko settings |
| scripts/webhook-manager.js | Enhanced to support multiple webhooks with matchedRules array |
| scripts/modules/rules-engine-core.js | Added code-driven detection logic and cleaned source option |
| scripts/content.js | Major refactoring with cleaned page source, threat-triggered rescans, performance optimizations |
| rules/detection-rules.json | Updated with code-driven indicators and exclusion contexts |
| scripts/modules/policy-manager.js | Updated to use browser polyfill for Firefox support |
| scripts/modules/detection-rules-manager.js | Updated to use browser polyfill |
| scripts/modules/config-manager.js | Added auto-enable debug logging, browser polyfill support |
| scripts/background.js | Browser polyfill integration and webhook improvements |
| popup/popup.js | Enhanced debug data caching and re-trigger functionality |
| options/options.js | Added valid badge timeout setting and main thread toggle |
| enterprise/* | Updated deployment templates with Firefox support |
| docs/* | Added Firefox documentation and deployment guides |
| manifest.json | Version bump and browser polyfill inclusion |
| package.json | Added build scripts for Chrome/Firefox |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| logger.log( | ||
| `🔍 processPhishingIndicators: detectionRules available: ${!!detectionRules}` | ||
| ); | ||
|
|
||
| if (!detectionRules?.phishing_indicators) { | ||
| logger.warn("No phishing indicators available"); | ||
| lastProcessingTime = Date.now() - startTime; // Track even for early exit | ||
| return { threats: [], score: 0 }; | ||
| } | ||
|
|
||
| const threats = []; |
Copilot
AI
Dec 18, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unused variable threats.
| logger.log( | ||
| `🔍 processPhishingIndicators: detectionRules available: ${!!detectionRules}` | ||
| ); | ||
|
|
||
| if (!detectionRules?.phishing_indicators) { | ||
| logger.warn("No phishing indicators available"); | ||
| lastProcessingTime = Date.now() - startTime; // Track even for early exit | ||
| return { threats: [], score: 0 }; | ||
| } | ||
|
|
||
| const threats = []; | ||
| let totalScore = 0; |
Copilot
AI
Dec 18, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unused variable totalScore.
| []) { | ||
| if (lowerSource.includes(sub.toLowerCase())) { | ||
| matches = true; | ||
| matchDetails = "page source (substring match)"; |
Copilot
AI
Dec 18, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The value assigned to matchDetails here is unused.
| ); | ||
| if (pattern.test(pageSource)) { | ||
| matches = true; | ||
| matchDetails = "page source (regex match)"; |
Copilot
AI
Dec 18, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The value assigned to matchDetails here is unused.
| ); | ||
| if (pattern.test(pageSource)) { | ||
| matches = true; | ||
| matchDetails = "page source"; |
Copilot
AI
Dec 18, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The value assigned to matchDetails here is unused.
No description provided.