Commit graph

264 commits

Author SHA1 Message Date
daijro
692e8a162c pythonlib: Support Python 3.8 #61 0.3.5 2024-10-31 05:09:17 -05:00
daijro
347885e9cb pythonlib: Default to http schema #57 0.3.4
Assume the proxy is using http schema when no other schema is specified.
2024-10-29 17:58:43 -05:00
daijro
f94452fa93 pythonlib: Error handling for invalid addon paths & proxies 0.3.3
Help prevent confusion with using Camoufox addons #55
2024-10-28 17:40:42 -05:00
daijro
732d7bac8d Hotfix #51 0.3.2
Fixes missing VirtualDisplay import on non-Linux systems.
2024-10-27 20:26:00 -05:00
daijro
75ea7b0880 pythonlib: Set window size & kill Xvfb on browser close #49 #50
- Added window: Tuple[int, int] argument to set a fixed width and height #50
- Experimental fix to automatically terminate Xvfb on browser.close() #49
- Bump to 0.3.1
2024-10-27 20:03:11 -05:00
daijro
0040aadc05 README: Sponsorship segment
Removes outdated sponsorship
2024-10-25 18:04:01 -05:00
daijro
dc3c0bde16 Misc fixes beta.13
- Fixed some memory enhancement prefs not setting correctly.
- Bfcache is now completely disabled. This should improve memory, but kills Playwright's page.go_back() and page.go_forward(). To re-enable this, set `browser.sessionhistory.max_entries` to the amount of pages you want to remember.
- Moved SanitizeOnShutdown policy to preferences instead. This unlocks clearOnShutdown preferences. #47
- Added experimental memorysaver property that clears all of the memory after each page.goto navigation. Helpful for datacenters running Camoufox, but could potentially break things.
- Cursor now starts in a random position on the screen
- Fixed screenshots not capturing the full window when a viewport is set by window.innerWidth and window.innerHeight.
2024-10-24 01:32:47 -05:00
daijro
711b5b4550 Backwards compatibility with <0.3.0
Change ALL webgl keys to webGl. This keeps backwards compatibility with <0.3.0 versions of the Python library.
2024-10-20 00:46:53 -05:00
daijro
0ff90fc750 Version range control, multi locale usage, etc
- Python library now constrains the supported Camoufox version, and will force an update if you are out of date.
- Added support patch for multiple accepted languages #37
- Added pysocks #43
- Added README deprecation notices
- Added public launch_options command
- Bumped python library to 0.3.0
- Full support for beta.12
2024-10-19 23:10:51 -05:00
daijro
216718845c pythonlib: Add dict expected type 0.2.15
Adds support for beta.12.
2024-10-15 06:57:48 -05:00
daijro
ad3b3f04fe Add extra parameters to test site
Added the following parameters to the WebGL testing site:
TIMESTAMP_EXT, GPU_DISJOINT_EXT, MAX_VIEWS_OVR
2024-10-15 05:37:59 -05:00
daijro
5bfc3ee026 Further improved WebGL spoofing beta.12
- Added ability to spoof webgl2 supported extensions
- Added ability to block parameters that aren't defined in config
- Passing null in config will block the value
- Added more parameters to the demo site
2024-10-14 20:31:58 -05:00
daijro
1532d7bb31 Consistent naming of webgl properties
Always use "webgl:" instead of "webGl:"
2024-10-14 04:36:01 -05:00
daijro
41bc102216 README: Update for beta.12 2024-10-14 04:31:03 -05:00
daijro
02bc15161a feat: WebGL fingerprint spoofing
Experimental WebGL fingerprint injection.
- Allows the ability to set all WebGL parameters, supported extension list, shader precision formats, & context attributes.
- Added a demo website under scripts/examples/webgl.html that can be used to generate Camoufox config data
2024-10-14 02:12:13 -05:00
daijro
df755def7f feat: AudioContext spoofing
Added the following properties:
- AudioContext:sampleRate
- AudioContext:outputLatency
- AudioContext:maxChannelCount
2024-10-12 03:21:55 -05:00
daijro
3b996534d8 feat: Add humanize:minTime
Set the minimum time of the cursor movement.
2024-10-12 00:21:38 -05:00
daijro
c448ec81ab More warnings & reformat README to avoid confusion/misuse 0.2.14
- Warns the user if they try to manually set the geolocation and locale.
- Move manual config documentation to the bottom of the README to discourage use.
- Make the parameters list more obvious.
2024-10-11 22:09:42 -05:00
daijro
deddba00c3 Allow passing in a region or language into locale 0.2.13
- Passing in a region like `locale='US'` will generate a language based on the region, "US".
- Passing in a language like `locale='en'` will generate a region based on the language, "en".
- Fix locale parsing errors when generating using territoryInfo.xml #36
2024-10-11 21:36:19 -05:00
daijro
5bb274ddc8 README: Update test sites
Add DataDome bot bounty sites.
2024-10-10 16:09:55 -05:00
daijro
3e2551e65b pythonlib: Fix geolocation domain detection #31 0.2.12 2024-10-10 15:44:25 -05:00
daijro
a8e9ffaa64 README: Add debug flow chart
Added more information for anyone interested in building/debugging Camoufox.
2024-10-10 05:07:13 -05:00
daijro
595828a446 Update Makefile & add navigation debugging 2024-10-09 20:48:58 -05:00
daijro
2101330754 Add issue template for reporting leaks 2024-10-09 20:28:26 -05:00
daijro
76bedb5251 pythonlib: Hotfix screen property out of bounds 0.2.11
Adds back handling for when Browserforge screen properties are out of bounds.
2024-10-09 06:30:41 -05:00
daijro
b2f74a24f3 Update pythonlib & README for beta.11
- Removed warnings for using headless mode
- Xvfb is now activated with headless='virtual'
- Correctly pass window.screenX & calculate window.screenY
- Update documentation on main README and pythonlib README
- Bumped pythonlib to 0.2.10
2024-10-09 05:49:22 -05:00
daijro
49cea6eca8 Fix headless leak #26 beta.11
Forces the default pointer value to a mouse-type pointer, fixing the detection issues on headless browsers.
2024-10-09 04:16:37 -05:00
daijro
bd59304481 pythonlib: Add Xvfb integration #26 0.2.9
- Automatically uses virtual displays on Linux
- Update documentation on README
2024-10-08 05:10:12 -05:00
daijro
351e99ed18 pythonlib: Add more leak warnings 0.2.8
Warns the user for when the passed parameters are likely to cause a leak.
2024-10-06 23:32:50 -05:00
daijro
4a1cd7ec64 pythonlib: Add headless detection warning #26 0.2.7
Raises a warning when headless mode is enabled in Camoufox.
This will be reverted once #26 is resolved.
2024-10-06 20:05:11 -05:00
daijro
f3b68ab355 pythonlib: Assert OS is valid 0.2.6
- Removed mobile OS support due to detection issues
- Validate the passed os name & that its lowercase
2024-10-05 02:10:43 -05:00
daijro
2832673f83 pythonlib: Add persistent_context, humanize, etc. 0.2.5
- Added `persistent_context` parameter #21
- Added `humanize` parameter #22
- Added validation for custom fingerprints
- Updated Browserforge integration documentation
2024-10-04 19:04:16 -05:00
daijro
2201d9fc0c README: Fix typos & cleanup Cursor movement 2024-10-02 23:22:32 -05:00
daijro
3f9863211a Fix C++ default_random_engine seed not compiling in macOS 2024-10-02 22:34:03 -05:00
daijro
902af26de1
README: Fix human-like cursor demo video 2024-10-02 21:29:19 -05:00
daijro
80b084a9b3 feat: Add human-like cursor movement & cursor highlighter #19 beta.10
All info in README.
2024-10-02 21:15:46 -05:00
daijro
782a2157bd Juggler: fix Playwright default viewport
Fixes a bug that prevents Playwright's default viewport from loading.
Caused by function not getting renamed when refactoring chromeutil.patch
2024-10-02 06:19:29 -05:00
daijro
6681a958f4 README: Fix enum value for DefaultAddons.UBO
DefaultAddons.uBO was changed to DefaultAddons.UBO a while back, but I forgot about to change it in the main README.
2024-10-02 04:53:54 -05:00
daijro
79c436e506 pythonlib: Add remote server launching #7
Uses a hacky work around to run Javascript in Playwright's internal library to gain access to the launchServer method.
2024-10-02 02:45:26 -05:00
daijro
7985eec493 pythonlib: Allow fetch without geoip 0.2.3
Fix fetch not checking if geoip2 is installed before trying to download the mmdb.
2024-10-02 00:09:42 -05:00
daijro
2d0509f3ff README: Update launcher deprecation notice 2024-09-30 05:23:15 -05:00
daijro
ad55622550 pythonlib: Implement viewport hijacking 0.2.2
- Allow Browerforge fingerprints to override screen & viewport data.
- Set Camoufox's window dimensions to a fixed width/height generated from Browserforge.
- If the browser is headful, do not exceed 125% of the screen size.

Other changes:
- Allow public IP finder to work without verification.
- Add script to publish to pypi.
- More descriptive progress bars when downloading default addons.
- Bump to 0.2.2
2024-09-30 04:06:16 -05:00
daijro
b371928d43 CI/CD: Remove .mozbuild caching 2024-09-30 03:01:19 -05:00
daijro
7598704d79 Fix swapped rect properties
Fixed a logical bug in MaskConfig swapped some screen and document.body properties.

- document.body.clientTop <--> document.body.clientWidth
- screen.availTop <--> screen.availLeft
- screen.availWidth <--> screen.availHeight
2024-09-30 01:49:05 -05:00
daijro
8a9b062d05 Update test script to output debug.log 2024-09-30 00:41:47 -05:00
daijro
752a36c9c2 Fix viewport hijacking beta.9
Fixes Playwright's setDefaultViewport overriding Camoufox viewport data.
2024-09-30 00:38:47 -05:00
daijro
110eb970c9 README: Update tests & TODO 2024-09-29 17:59:25 -05:00
daijro
7d825e53d9 pythonlib: Typing & environ var fixes 0.2.1
- Fixes typing with OS_NAME
- Fix exceeding environment variable length on Windows (caused by typing issue)
- Fix not passing fontconfig on Linux (caused by typing issue)
2024-09-29 17:30:11 -05:00
daijro
f6396c1e81 pythonlib: Add locale, geolocation/locale from IP, & more 0.2.0
- Added `geoip` parameter to automatically find the target IP's longitude, latitude, timezone, country, language/region locale, & spoof the WebRTC IP address. #5
- Added parameter to set the locale #16
- Automatically calculate the locale based on the distribution of speakers in the target geoip region.
- Added allow_webgl option #17
- By default, use the current version of Camoufox instead of Browserforge's Firefox versions #14.
2024-09-29 17:30:00 -05:00
daijro
5263cb6305 Add locale spoofing #16 beta.8
Spoof the Intl API, headers, and system locale values.
Added the following properties:
- locale:language
- locale:region
- locale:script
2024-09-28 17:09:22 -05:00