@askjo/camoufox-browser 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.bak +4 -0
- package/.github/workflows/deploy.yml +21 -0
- package/AGENTS.md +153 -0
- package/Dockerfile.camoufox +59 -0
- package/LICENSE +21 -0
- package/README.md +234 -0
- package/SKILL.md +165 -0
- package/experimental/chromium/Dockerfile +35 -0
- package/experimental/chromium/README.md +47 -0
- package/experimental/chromium/run.sh +24 -0
- package/experimental/chromium/server.js +812 -0
- package/fly.toml +29 -0
- package/jest.config.js +41 -0
- package/lib/macros.js +30 -0
- package/openclaw.plugin.json +31 -0
- package/package.json +30 -0
- package/plugin.ts +312 -0
- package/run-camoufox.sh +37 -0
- package/server-camoufox.js +946 -0
- package/tests/e2e/concurrency.test.js +103 -0
- package/tests/e2e/formSubmission.test.js +129 -0
- package/tests/e2e/macroNavigation.test.js +92 -0
- package/tests/e2e/navigation.test.js +128 -0
- package/tests/e2e/scroll.test.js +81 -0
- package/tests/e2e/snapshotLinks.test.js +141 -0
- package/tests/e2e/tabLifecycle.test.js +149 -0
- package/tests/e2e/typingEnter.test.js +147 -0
- package/tests/helpers/client.js +222 -0
- package/tests/helpers/startJoBrowser.js +95 -0
- package/tests/helpers/testSite.js +238 -0
- package/tests/live/googleSearch.test.js +93 -0
- package/tests/live/macroExpansion.test.js +132 -0
- package/tests/unit/macros.test.js +123 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Chromium Engine (Experimental)
|
|
2
|
+
|
|
3
|
+
Legacy Chromium/Playwright-based browser engine using stealth plugin.
|
|
4
|
+
|
|
5
|
+
> ⚠️ **Not recommended**: Gets blocked by Google and other anti-bot systems. Use the Camoufox engine instead.
|
|
6
|
+
|
|
7
|
+
## Why Experimental?
|
|
8
|
+
|
|
9
|
+
The Playwright + stealth plugin approach is detected by:
|
|
10
|
+
- Google (captcha on search)
|
|
11
|
+
- Cloudflare
|
|
12
|
+
- Many other anti-bot systems
|
|
13
|
+
|
|
14
|
+
The main Camoufox engine uses Firefox with C++ level fingerprint spoofing, which bypasses these protections.
|
|
15
|
+
|
|
16
|
+
## Usage
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
# From repo root
|
|
20
|
+
cd experimental/chromium
|
|
21
|
+
|
|
22
|
+
# Install dependencies (from repo root)
|
|
23
|
+
npm install
|
|
24
|
+
|
|
25
|
+
# Run (requires Chromium installed)
|
|
26
|
+
CHROMIUM_PATH=/usr/bin/chromium node server.js
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Docker
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
docker build -t camoufox-browser-chromium .
|
|
33
|
+
docker run -p 3000:3000 camoufox-browser-chromium
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## API
|
|
37
|
+
|
|
38
|
+
Same API as the main Camoufox engine - see root [README.md](../../README.md).
|
|
39
|
+
|
|
40
|
+
## When to Use
|
|
41
|
+
|
|
42
|
+
Only use this if:
|
|
43
|
+
- You're accessing sites that don't have anti-bot protection
|
|
44
|
+
- You need Chromium-specific features
|
|
45
|
+
- You're debugging Playwright issues
|
|
46
|
+
|
|
47
|
+
For all other cases, use `./run-camoufox.sh` from the repo root.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Local development script for jo-browser with auto-reload
|
|
3
|
+
|
|
4
|
+
# Use Playwright's bundled Chromium (has full accessibility API support)
|
|
5
|
+
# Only set CHROMIUM_PATH for Docker/production where we install Chromium separately
|
|
6
|
+
unset CHROMIUM_PATH
|
|
7
|
+
|
|
8
|
+
# Install deps if needed
|
|
9
|
+
if [ ! -d "node_modules" ]; then
|
|
10
|
+
echo "Installing dependencies..."
|
|
11
|
+
npm install
|
|
12
|
+
fi
|
|
13
|
+
|
|
14
|
+
# Install nodemon globally if not available
|
|
15
|
+
if ! command -v nodemon &> /dev/null; then
|
|
16
|
+
echo "Installing nodemon..."
|
|
17
|
+
npm install -g nodemon
|
|
18
|
+
fi
|
|
19
|
+
|
|
20
|
+
echo "Starting jo-browser on http://localhost:3000 (with auto-reload)"
|
|
21
|
+
echo "Logs: /tmp/jo-browser.log"
|
|
22
|
+
nodemon --watch server.js --exec "node server.js" 2>&1 | while IFS= read -r line; do
|
|
23
|
+
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $line"
|
|
24
|
+
done | tee -a /tmp/jo-browser.log
|