36 lines
2.1 KiB
Markdown
36 lines
2.1 KiB
Markdown
# Attractor
|
|
|
|
Attractor is a web browser for iOS and macOS prioritizing security and aggresive content filtering, and some nifty useful features.
|
|
|
|

|
|
|
|
## Security Modes
|
|
|
|
Attractor aggresively filters unwanted web content and prevents arbitrary code execution (JavaScript) by default. I created a special browser for this purpose. Philosophically speaking, I believe the web should primarily be used as a document viewer (as originally intended by [Tim Berners-Lee](https://en.wikipedia.org/wiki/World_wide_web)). Interactive web applications are fine, but the *default* mode should be document viewing, which is why this security model exists.
|
|
|
|
Attractor operates in five "security modes":
|
|
1. **Alpha** (Default) All JavaScript is blocked, as well as web fonts and iframes.
|
|
2. **Bravo** Only embedded scripts are allowed. This means any JavaScript enclosed in `<script>` tags. Often this is enough to allow form validation to occur without issue.
|
|
3. **Charlie** Allows external JavaScript, but only from the same security origin. Meaning, if browsing `buzzert.net`, only external scripts from the domain `buzzert.net` (or subdomains) are allowed to execute.
|
|
4. **Delta** Allows external JavaScript, but only from a curated list of common CDNs.
|
|
5. **Echo** All scripts are allowed.
|
|
|
|
## Other features
|
|
|
|
- Dark mode (a very good one that uses low-level stylesheet injection to prevent flicker)
|
|
- Tab syncing
|
|
- Share via Email
|
|
- Reader Mode
|
|
- Arbitrary zoom scale
|
|
- User-defined scripts and stylesheets via UI
|
|
- Custom redirect rules
|
|
- Catalyst and iPadOS support
|
|
|
|
## Deployment
|
|
|
|
TestFlight deployment is handled by Fastlane and the Gitea workflow at `.gitea/workflows/testflight.yml`.
|
|
|
|
Required Gitea secrets match the local `.env.example`: `APP_STORE_CONNECT_KEY_ID`, `APP_STORE_CONNECT_ISSUER_ID`, `APP_STORE_CONNECT_KEY_CONTENT`, `MATCH_GIT_URL`, `MATCH_PASSWORD`, and `MATCH_GIT_BASIC_AUTHORIZATION`.
|
|
|
|
Push a tag like `release/ios/v4.2` or `Attractor-4.2` to build and upload to TestFlight. To prepare signing assets locally, run `bundle exec fastlane ios setup_signing`; to upload manually, run `bundle exec fastlane ios beta`.
|