experiments in a post-browser web
10
fork

Configure Feed

Select the types of activity you want to include in your feed.

docs: update jj workflow - always commit before operations

+63 -22
+9 -5
TODO.md
··· 421 421 - [ ] in url saves/views, show oembed, or at least page title 422 422 - [ ] for url saves, save title and any other metadata 423 423 - [ ] investigate detecting which app a share came from 424 + - [ ] fix xcodebuild CLI builds (see notes/research-xcodebuild-environment-issues.md) 425 + - isolate DerivedData paths for CLI vs GUI 426 + - set up proper build script with environment isolation 424 427 425 428 ## Session & State Management 426 429 ··· 443 446 - [ ] OpenSearch 444 447 445 448 Web extensions 446 - - [ ] WebExtension integration for priority only, on some platforms, some back-ends 447 - - [ ] Electron first, using https://github.com/samuelmaddock/electron-browser-shell/tree/master/packages/electron-chrome-extensions 448 - - [ ] uBlock Origin 449 - - [ ] Proton Pass 450 - - [ ] Bypass Paywalls Clean 449 + - [ ] WebExtension integration for bundled extensions only (not user-installable) 450 + - [ ] Electron first, using electron-chrome-extensions (Polypane fork for MV3) 451 + - [ ] @cliqz/adblocker-electron for ad blocking (native, not extension) 452 + - [ ] Proton Pass for password management 453 + - [ ] Consent-O-Matic for cookie consent auto-handling (MIT, Aarhus University) 454 + - [ ] Enable/disable toggles in Settings UI 451 455 452 456 ## Feeds, time-series, scripts 453 457
+54 -17
notes/research-bundled-web-extensions.md
··· 83 83 - ✅ MV3 compatible without major changes 84 84 - ⚠️ Requires Proton account for full sync features 85 85 86 + ### Consent-O-Matic (cookie consent auto-handler) 87 + 88 + **Repository**: [cavi-au/Consent-O-Matic](https://github.com/cavi-au/Consent-O-Matic) 89 + 90 + **License**: MIT - free to bundle with attribution 91 + 92 + **Attribution Required**: 93 + > "Janus Bager Kristensen and Rolf Bagge, CAVI - Center for Advanced Visualization and Interaction, Aarhus University" 94 + 95 + **What it does**: 96 + - Automatically detects and handles cookie consent banners 97 + - Supports 200+ Consent Management Platforms (OneTrust, CookieBot, UserCentrics, etc.) 98 + - **Privacy-first**: Rejects all optional cookies by default 99 + - Does NOT phone home or collect browsing data (only fetches rule updates) 100 + 101 + **APIs Required**: 102 + - chrome.tabs (content script injection) 103 + - chrome.storage (user preferences) 104 + - chrome.runtime (messaging) 105 + - Content scripts on all sites (DOM access for popup detection) 106 + 107 + **Viability in Peek**: 108 + - ✅ Works with electron-chrome-extensions (MV2) 109 + - ✅ No conflicts with ad blocker or Proton Pass 110 + - ✅ MIT license (easier than GPL) 111 + - ⚠️ Monitor upstream for MV3 migration 112 + 86 113 --- 87 114 88 115 ## 4. API Coverage Matrix 89 116 90 - | API | uBlock | Proton Pass | Electron Support | MV3 Status | 91 - |-----|--------|-------------|------------------|------------| 92 - | webRequest (blocking) | ✅ Critical | ❌ Not needed | ✅ Yes (conflicts) | ❌ Restricted | 93 - | webRequest (non-blocking) | ❌ Insufficient | ✅ Yes | ✅ Yes | ✅ Yes | 94 - | tabs | ✅ Yes | ✅ Yes | ✅ Customizable | ✅ Yes | 95 - | storage | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | 96 - | cookies | ✅ Optional | ❌ No | ✅ Yes | ✅ Yes | 97 - | declarativeNetRequest | ❌ (MV3 only) | ✅ Can use | ⚠️ Partial | ✅ Yes | 117 + | API | uBlock | Proton Pass | Consent-O-Matic | Electron Support | MV3 Status | 118 + |-----|--------|-------------|-----------------|------------------|------------| 119 + | webRequest (blocking) | ✅ Critical | ❌ Not needed | ❌ Not needed | ✅ Yes (conflicts) | ❌ Restricted | 120 + | webRequest (non-blocking) | ❌ Insufficient | ✅ Yes | ❌ Not needed | ✅ Yes | ✅ Yes | 121 + | tabs | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Customizable | ✅ Yes | 122 + | storage | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | 123 + | cookies | ✅ Optional | ❌ No | ❌ No | ✅ Yes | ✅ Yes | 124 + | content_scripts | ✅ Yes | ✅ Yes | ✅ Critical | ✅ Yes | ✅ Yes | 125 + | declarativeNetRequest | ❌ (MV3 only) | ✅ Can use | ❌ Not needed | ⚠️ Partial | ✅ Yes | 98 126 99 127 --- 100 128 ··· 121 149 |-----------|---------|--------------|-------| 122 150 | uBlock Origin | GPLv3 | ✅ Yes | Must acknowledge GPL, include source | 123 151 | Proton Pass | GPLv3 | ✅ Yes | Open source + proprietary service | 152 + | Consent-O-Matic | MIT | ✅ Yes | Attribution required (Aarhus University CAVI) | 124 153 125 154 **Disclosure Requirements**: 126 155 - Display list of bundled extensions with versions in Settings ··· 183 212 184 213 ## 10. Recommended Path Forward 185 214 186 - **Immediate (MVP)**: 215 + **Bundled Extensions (Final List)**: 216 + 1. **@cliqz/adblocker-electron** - Native ad blocker (not an extension) 217 + 2. **Proton Pass** - Password manager extension 218 + 3. **Consent-O-Matic** - Cookie consent auto-handler extension 219 + 220 + **Implementation Order**: 221 + 222 + **Phase 1 (MVP)**: 187 223 1. Use [Polypane/electron-chrome-extensions](https://github.com/Polypane/electron-chrome-extensions) (MV3-ready) 188 - 2. Bundle **Proton Pass only** (best compatibility, no licensing issues) 189 - 3. Implement toggle in Settings UI 224 + 2. Integrate @cliqz/adblocker-electron as native ad blocker 225 + 3. Implement enable/disable toggles in Settings UI 190 226 191 - **Short-term**: 192 - 4. Add **@cliqz/adblocker-electron** as native ad blocker (no webRequest conflicts) 193 - 5. Monitor uBlock Origin MV3 progress; defer until stable 227 + **Phase 2**: 228 + 4. Bundle Proton Pass extension 229 + 5. Bundle Consent-O-Matic extension 194 230 195 - **Long-term**: 196 - 7. If uBlock MV3 becomes viable, bundle as opt-in 197 - 8. Consider extension update mechanism 231 + **Phase 3**: 232 + 6. Add licensing/attribution UI in About dialog 233 + 7. Monitor upstream for MV3 migrations 198 234 199 235 --- 200 236 ··· 205 241 - [Electron Extension Support](https://www.electronjs.org/docs/latest/api/extensions) 206 242 - [uBlock Origin](https://github.com/gorhill/uBlock) 207 243 - [Proton Pass](https://proton.me/pass) 244 + - [Consent-O-Matic](https://github.com/cavi-au/Consent-O-Matic) 208 245 - [@cliqz/adblocker-electron](https://www.npmjs.com/package/@cliqz/adblocker-electron) 209 246 - [Chrome MV3 Overview](https://developer.chrome.com/docs/extensions/develop/migrate/what-is-mv3)