Skip to content

Commit a2f5d1e

Browse files
docs: add Mozilla submission documents
Adds three comprehensive documents for Mozilla Add-ons submission: 1. MOZILLA-SUBMISSION-SUMMARY.md - Complete summary of changes 2. MOZILLA-SUBMISSION-CHECKLIST.md - Step-by-step checklist 3. MOZILLA-SUBMISSION-DESCRIPTION.md - Polished AMO description Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
1 parent eb49996 commit a2f5d1e

3 files changed

Lines changed: 723 additions & 0 deletions

File tree

MOZILLA-SUBMISSION-CHECKLIST.md

Lines changed: 213 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,213 @@
1+
# Mozilla Add-ons Submission Checklist
2+
3+
**Extension:** FireFlag
4+
**Version:** 0.1.0
5+
**Target Submission Date:** 2026-04-16
6+
7+
---
8+
9+
## Pre-Submission Checklist
10+
11+
### ✅ Completed Tasks
12+
13+
- [x] **Privacy Policy**
14+
- [x] Created `PRIVACY.md` (comprehensive, GDPR/CCPA compliant)
15+
- [x] Converted to `PRIVACY.html` for web hosting
16+
- [x] Added `privacy_policy_url` to `manifest.json`
17+
- [x] Created `gh-pages` branch with `PRIVACY.html`
18+
19+
- [x] **Security Analysis**
20+
- [x] Ran `panic-attacker assail` (regular mode)
21+
- [x] Ran `panic-attacker assail --browser-extension`
22+
- [x] Addressed critical findings (documented false positives)
23+
- [x] Added `sanitizeUrl()` to `dom-utils.js`
24+
- [x] Updated `SECURITY.md` with explanations
25+
26+
- [x] **Code Quality**
27+
- [x] No critical vulnerabilities (after false positive filtering)
28+
- [x] Content Security Policy in place
29+
- [x] XSS protections (template elements, input sanitization)
30+
- [x] URL sanitization for external links
31+
32+
- [x] **Documentation**
33+
- [x] `README.adoc` - Complete with features, safety levels, privacy guarantees
34+
- [x] `MOZILLA-LISTING.md` - Complete listing information
35+
- [x] `SECURITY.md` - Updated with false positive explanations
36+
- [x] `CONTRIBUTING.md` - Updated with security requirements
37+
- [x] `PRIVACY.md` - Comprehensive privacy policy
38+
39+
- [x] **Manifest**
40+
- [x] `privacy_policy_url` set to GitHub Pages URL
41+
- [x] All permissions justified and optional
42+
- [x] Minimum Firefox version specified (142.0)
43+
- [x] Content Security Policy defined
44+
45+
- [x] **Testing**
46+
- [x] Manual testing (all features)
47+
- [x] Static analysis (`panic-attacker`, CodeQL)
48+
- [x] Secret scanning (GitHub)
49+
- [x] Dependency updates (Dependabot)
50+
51+
### ❌ Remaining Tasks
52+
53+
#### Critical Path (Must Complete Before Submission)
54+
55+
- [ ] **GitHub Pages Setup**
56+
- [ ] Go to `https://github.com/hyperpolymath/fireflag/settings/pages`
57+
- [ ] Select `gh-pages` branch
58+
- [ ] Select `/root` folder
59+
- [ ] Click **Save**
60+
- [ ] Verify privacy policy is accessible at `https://hyperpolymath.github.io/fireflag/PRIVACY.html`
61+
62+
- [ ] **Mozilla Add-ons Submission**
63+
- [ ] Go to `https://addons.mozilla.org/developers/addon/submit/`
64+
- [ ] Upload `fireflag-0.1.0.zip` (from `extension/web-ext-artifacts/`)
65+
- [ ] Fill out submission form:
66+
- Extension name: **FireFlag**
67+
- Version: **0.1.0**
68+
- Summary: **Safely manage Firefox's 100+ about:config flags with built-in safety levels, detailed documentation, and rollback protection. Privacy-first: all data stored locally, no tracking, open source.**
69+
- Description: (Use content from `MOZILLA-LISTING.md`)
70+
- Categories: **Privacy & Security**, **Developer Tools**
71+
- Tags: **firefox, flags, about:config, developer-tools, privacy, configuration, customization**
72+
- Homepage URL: **https://github.com/hyperpolymath/fireflag**
73+
- Support URL: **https://github.com/hyperpolymath/fireflag/issues**
74+
- Privacy policy URL: **https://hyperpolymath.github.io/fireflag/PRIVACY.html**
75+
- Source code URL: **https://github.com/hyperpolymath/fireflag**
76+
- [ ] Select **Unlisted** for initial submission (or **Listed** if ready for public)
77+
- [ ] Click **Submit Version**
78+
79+
#### Post-Submission
80+
81+
- [ ] **Monitor Review Process**
82+
- [ ] Check email for reviewer questions
83+
- [ ] Respond to feedback within 48 hours
84+
- [ ] Address any required changes
85+
86+
- [ ] **After Approval**
87+
- [ ] Change to **Listed** if submitted as Unlisted
88+
- [ ] Announce on GitHub releases
89+
- [ ] Update `README.adoc` with AMO link
90+
- [ ] Post on social media (optional)
91+
92+
---
93+
94+
## Submission Details
95+
96+
### Required Information
97+
98+
| Field | Value |
99+
|-------|-------|
100+
| **Extension ID** | `fireflag@hyperpolymath.org` |
101+
| **Version** | `0.1.0` |
102+
| **Minimum Firefox Version** | `142.0` |
103+
| **Privacy Policy URL** | `https://hyperpolymath.github.io/fireflag/PRIVACY.html` |
104+
| **Homepage URL** | `https://github.com/hyperpolymath/fireflag` |
105+
| **Support URL** | `https://github.com/hyperpolymath/fireflag/issues` |
106+
| **Source Code URL** | `https://github.com/hyperpolymath/fireflag` |
107+
| **License** | MPL-2.0 |
108+
109+
### Categories and Tags
110+
111+
**Primary Category:** Privacy & Security
112+
**Secondary Category:** Developer Tools
113+
114+
**Tags:**
115+
- firefox
116+
- flags
117+
- about:config
118+
- developer-tools
119+
- privacy
120+
- configuration
121+
- customization
122+
123+
### Permissions Justification
124+
125+
| Permission | Justification |
126+
|------------|--------------|
127+
| `storage` | Required for storing flag states and user preferences locally |
128+
| `browserSettings` | Optional: Modify browser settings when user enables certain flags |
129+
| `privacy` | Optional: Modify privacy-related flags when user requests |
130+
| `tabs` | Optional: Display active flags in DevTools panel |
131+
| `notifications` | Optional: Show notifications for database updates |
132+
| `downloads` | Optional: Export flag reports as JSON/CSV |
133+
134+
All permissions are **optional** and requested only when the user enables specific features.
135+
136+
---
137+
138+
## Reviewer Notes
139+
140+
### Expected Reviewer Questions
141+
142+
1. **Why does the extension use `eval()`?**
143+
- **Answer:** Uses `browser.devtools.inspectedWindow.eval()` via the Firefox DevTools API for:
144+
- Performance metric collection in the **inspected page** (not extension context)
145+
- Flag impact analysis
146+
- This is standard practice for DevTools extensions and is sandboxed by Firefox.
147+
- Documented in `SECURITY.md`.
148+
149+
2. **Does the extension collect any user data?**
150+
- **Answer:** No. All data is stored locally using `browser.storage.local`.
151+
- No analytics, tracking, telemetry, or crash reporting.
152+
- See `PRIVACY.md` for details.
153+
154+
3. **Why are some permissions optional?**
155+
- **Answer:** Permissions are requested only when the user enables specific features.
156+
- Example: `browserSettings` is requested when user toggles a flag that modifies browser settings.
157+
- User can revoke any permission at any time.
158+
159+
4. **What network activity does the extension perform?**
160+
- **Answer:**
161+
- Weekly database updates from GitHub (optional, can be disabled)
162+
- Extension updates from Mozilla Add-ons
163+
- No other network activity.
164+
165+
---
166+
167+
## Troubleshooting
168+
169+
### Common Issues
170+
171+
1. **Privacy Policy URL Not Accessible**
172+
- **Cause:** GitHub Pages not enabled
173+
- **Fix:** Enable GitHub Pages in repo settings (see checklist above)
174+
175+
2. **Submission Rejected for `eval()` Usage**
176+
- **Cause:** Reviewer unfamiliar with DevTools API
177+
- **Fix:** Point to `SECURITY.md` explanation and Firefox DevTools documentation
178+
179+
3. **Missing Required Fields**
180+
- **Cause:** Incomplete submission form
181+
- **Fix:** Use the values in the **Submission Details** section above
182+
183+
---
184+
185+
## Timeline
186+
187+
| Date | Milestone |
188+
|------|-----------|
189+
| 2026-04-16 | Complete pre-submission checklist |
190+
| 2026-04-16 | Enable GitHub Pages |
191+
| 2026-04-16 | Submit to Mozilla Add-ons |
192+
| 2026-04-16 - 2026-04-23 | Review period (3-7 days typical) |
193+
| 2026-04-23 | Expected approval (if no issues) |
194+
| 2026-04-23 | Change to Listed (if submitted as Unlisted) |
195+
196+
---
197+
198+
## Contacts
199+
200+
**Primary Contact:**
201+
Jonathan D.A. Jewell
202+
Email: j.d.a.jewell@open.ac.uk
203+
GitHub: @hyperpolymath
204+
205+
**Response Time:**
206+
- Security issues: Within 48 hours
207+
- Reviewer questions: Within 24 hours
208+
- General inquiries: Within 7 days
209+
210+
---
211+
212+
*Generated by Mistral Vibe on 2026-04-16*
213+
*Co-Authored-By: Mistral Vibe <vibe@mistral.ai>*

0 commit comments

Comments
 (0)