Files
camoufox/scripts/copy-additions.sh
T
Jake WriterandClaude Fable 5 26b94797c3 fix(stealth): consolidated stealth/juggler/build fixes (rebased onto FF152)
Consolidates the following individual fixes into one changeset, all rebased
onto the current Firefox 152 base and validated together via a full build:

- webrtc: stop real-IP leak under a proxy; sanitize getStats IP + fabricate a
  synthetic srflx when ICE produces none (TCP-proxy case).
- proxy: re-enable launch-arg proxy by disabling https_first.
- screen: make MaskConfig the single source for screen + CSS device dims so
  matchMedia(device-width) agrees with screen.width.
- stealth: spoof CSS2 system-font keyword resolution (font-system-fonts-css2).
- juggler: filepicker reliability + skip mouse-move coalescing for synthetic
  (juggler) events so input dispatch can't stall under parallel load.
- juggler: emit a single input event for insertText on form fields.
- juggler: reload about:blank via browsingContext.reload.
- locale: propagate launch-arg locale to BrowsingContext.
- build: create v150-removed dirs before copy-additions.
- stealth: BrowserForge headless / impossible-geometry tell corrections and
  speech-voice spoofing (host-voice leak fix).

Supersedes daijro/camoufox #637-#647.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 16:20:28 -06:00

67 lines
2.2 KiB
Bash

#!/bin/bash
# Simple bash script that copies the additions from the repository into the source directory
# Must be ran from within the source directory
# Check if correct number of arguments are provided
if [ "$#" -ne 2 ]; then
echo "Usage: $0 <version> <release>"
exit 1
fi
# Assign command-line arguments to variables
version="$1"
release="$2"
# Function to run commands and exit on failure
run() {
echo "$ $1"
eval "$1"
if [ $? -ne 0 ]; then
echo "Command failed: $1"
exit 1
fi
}
# Copy the search-config.json file.
# FF150 removed the bundled RemoteSettings dumps tree (services/settings/dumps/
# no longer ships in the source tarball — search config is fetched at runtime),
# so the destination dir must be created first. Shipping the empty stub keeps
# Camoufox's "no bundled search engines" intent and is harmless if unread.
run 'mkdir -p services/settings/dumps/main'
run 'cp -v ../assets/search-config.json services/settings/dumps/main/search-config.json'
# vs_pack.py issue... should be temporary
# FF150 no longer ships build/vs/ in the source tree, so create it first
# (this helper is only consumed by the Windows MSVC packaging path).
run 'mkdir -p build/vs'
run 'cp -v ../patches/librewolf/pack_vs.py build/vs/'
# Apply most recent `settings` repository files
run 'mkdir -p lw'
pushd lw > /dev/null
run 'cp -v ../../settings/camoufox.cfg .'
run 'cp -v ../../settings/distribution/policies.json .'
run 'cp -v ../../settings/defaults/pref/local-settings.js .'
run 'cp -v ../../settings/chrome.css .'
run 'cp -v ../../settings/properties.json .'
run 'touch moz.build'
popd > /dev/null
# Generate Assets.car for macOS builds (if on macOS) or ensure it exists
if [[ ! -f ../additions/browser/branding/camoufox/Assets.car ]]; then
echo "Generating Assets.car..."
bash ../scripts/generate-assets-car.sh
fi
# Copy ALL new files/folders from ../additions to .
run 'cp -r ../additions/* .'
# Provide a script that fetches and bootstraps Nightly and some mozconfigs
run 'cp -v ../scripts/mozfetch.sh lw/'
# Override the firefox version
for file in "browser/config/version.txt" "browser/config/version_display.txt"; do
echo "${version}-${release}" > "$file"
done