Skip to content

fix: resolve Camoufox browser and certificate library paths - #310

Open
vladfrangu wants to merge 2 commits into
masterfrom
fix/camoufox-browser-paths
Open

fix: resolve Camoufox browser and certificate library paths#310
vladfrangu wants to merge 2 commits into
masterfrom
fix/camoufox-browser-paths

Conversation

@vladfrangu

Copy link
Copy Markdown
Member

The Camoufox images assume a flat browser cache. The current Python wrapper installs into a versioned directory, leaving the libnssckbi.so override unused and APIFY_DEFAULT_BROWSER_PATH pointing at a missing executable.

Resolve the installed camoufox-bin in both Node and Python images, put the p11-kit symlink beside it, and expose the browser through a stable directory symlink outside the browser cache directory. The directory symlink also keeps companion files such as properties.json accessible when the Python wrapper receives an explicit executable path. This supports both flat and versioned cache layouts and fails the build if the executable is missing or ambiguous.

Validation:

  • Built the Node 22 slim image on ARM64 and Python 3.14 image on AMD64, then verified the final directory-symlink adjustment in disposable containers from those builds.
  • Docker build checks reported only existing warnings about empty default base-image arguments and Python's fixed platform.
  • Checked the executable and certificate-library symlink targets across the Node wrapper's flat layout and Python wrapper's versioned layout.
  • Launched headless through the Camoufox wrapper and headful through APIFY_DEFAULT_BROWSER_PATH in both images.
  • Both loaded https://example.com and https://incomplete-chain.badssl.com with certificate verification enabled.
  • Earlier controlled comparison: the incomplete-chain URL fails with SEC_ERROR_UNKNOWN_ISSUER when the library symlink is removed and returns 200 when it is present.

[🤖] Codex using GPT-6

@github-actions github-actions Bot added this to the 149th sprint - Tooling team milestone Sep 9, 2026
@github-actions github-actions Bot added the t-tooling Issues with this label are in the ownership of the tooling team. label Sep 9, 2026
@vladfrangu
vladfrangu requested a review from barjin September 9, 2026 13:50
@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

📦 Image size report

Built images compared against the currently published rolling tag for the same runtime version (e.g. apify/actor-node:22; -slim variants against the -slim tag). Sizes are the uncompressed on-disk size reported by docker image inspect, so they will be larger than the compressed download size shown on Docker Hub. Only workflows triggered by this PR's changes report a section.

Python + Playwright images — 25 images (at 6dedb97)
Image Variant Current New Δ
apify/actor-python-playwright-camoufox:3.10 playwright 1.62.0, camoufox 0.5.6 2257.9 MiB 2257.9 MiB 🔺 +0.0 MiB (+0.0%)
apify/actor-python-playwright-camoufox:3.11 playwright 1.62.0, camoufox 0.5.6 2270.1 MiB 2270.1 MiB 🔺 +0.0 MiB (+0.0%)
apify/actor-python-playwright-camoufox:3.12 playwright 1.62.0, camoufox 0.5.6 2261.5 MiB 2261.5 MiB 🔺 +0.0 MiB (+0.0%)
apify/actor-python-playwright-camoufox:3.13 playwright 1.62.0, camoufox 0.5.6 2249.8 MiB 2249.8 MiB 🔺 +0.0 MiB (+0.0%)
apify/actor-python-playwright-camoufox:3.14 playwright 1.62.0, camoufox 0.5.6 2254.2 MiB 2254.2 MiB 🔺 +0.0 MiB (+0.0%)
apify/actor-python-playwright-chrome:3.10 playwright 1.62.0, camoufox 0.5.6 1846.8 MiB 1846.8 MiB ➖ 0.0 MiB (0.0%)
apify/actor-python-playwright-chrome:3.11 playwright 1.62.0, camoufox 0.5.6 1853.0 MiB 1853.0 MiB ➖ 0.0 MiB (0.0%)
apify/actor-python-playwright-chrome:3.12 playwright 1.62.0, camoufox 0.5.6 1847.7 MiB 1847.7 MiB ➖ 0.0 MiB (0.0%)
apify/actor-python-playwright-chrome:3.13 playwright 1.62.0, camoufox 0.5.6 1836.2 MiB 1836.2 MiB ➖ 0.0 MiB (0.0%)
apify/actor-python-playwright-chrome:3.14 playwright 1.62.0, camoufox 0.5.6 1838.5 MiB 1838.5 MiB ➖ 0.0 MiB (0.0%)
apify/actor-python-playwright-firefox:3.10 playwright 1.62.0, camoufox 0.5.6 1163.2 MiB 1163.2 MiB ➖ 0.0 MiB (0.0%)
apify/actor-python-playwright-firefox:3.11 playwright 1.62.0, camoufox 0.5.6 1169.3 MiB 1169.3 MiB ➖ 0.0 MiB (0.0%)
apify/actor-python-playwright-firefox:3.12 playwright 1.62.0, camoufox 0.5.6 1164.0 MiB 1164.0 MiB ➖ 0.0 MiB (0.0%)
apify/actor-python-playwright-firefox:3.13 playwright 1.62.0, camoufox 0.5.6 1152.6 MiB 1152.6 MiB ➖ 0.0 MiB (0.0%)
apify/actor-python-playwright-firefox:3.14 playwright 1.62.0, camoufox 0.5.6 1154.9 MiB 1154.9 MiB ➖ 0.0 MiB (0.0%)
apify/actor-python-playwright-webkit:3.10 playwright 1.62.0, camoufox 0.5.6 1425.5 MiB 1425.5 MiB ➖ 0.0 MiB (0.0%)
apify/actor-python-playwright-webkit:3.11 playwright 1.62.0, camoufox 0.5.6 1431.6 MiB 1431.6 MiB ➖ 0.0 MiB (0.0%)
apify/actor-python-playwright-webkit:3.12 playwright 1.62.0, camoufox 0.5.6 1426.3 MiB 1426.3 MiB ➖ 0.0 MiB (0.0%)
apify/actor-python-playwright-webkit:3.13 playwright 1.62.0, camoufox 0.5.6 1414.9 MiB 1414.9 MiB ➖ 0.0 MiB (0.0%)
apify/actor-python-playwright-webkit:3.14 playwright 1.62.0, camoufox 0.5.6 1417.2 MiB 1417.2 MiB ➖ 0.0 MiB (0.0%)
apify/actor-python-playwright:3.10 playwright 1.62.0, camoufox 0.5.6 2828.2 MiB 2828.2 MiB ➖ 0.0 MiB (0.0%)
apify/actor-python-playwright:3.11 playwright 1.62.0, camoufox 0.5.6 2834.3 MiB 2834.3 MiB ➖ 0.0 MiB (0.0%)
apify/actor-python-playwright:3.12 playwright 1.62.0, camoufox 0.5.6 2829.0 MiB 2829.0 MiB ➖ 0.0 MiB (0.0%)
apify/actor-python-playwright:3.13 playwright 1.62.0, camoufox 0.5.6 2817.5 MiB 2817.5 MiB ➖ 0.0 MiB (0.0%)
apify/actor-python-playwright:3.14 playwright 1.62.0, camoufox 0.5.6 2819.9 MiB 2819.9 MiB ➖ 0.0 MiB (0.0%)
Node + Playwright images — 30 images (at 6dedb97)
Image Variant Current New Δ
apify/actor-node-playwright-camoufox:22 playwright 1.60.0, camoufox ^0.12.0 2545.1 MiB 2545.4 MiB 🔺 +0.3 MiB (+0.0%)
apify/actor-node-playwright-camoufox:22-slim playwright 1.60.0, camoufox ^0.12.0, slim 2226.8 MiB 2226.8 MiB 🔺 +0.0 MiB (+0.0%)
apify/actor-node-playwright-camoufox:24 playwright 1.60.0, camoufox ^0.12.0 2548.4 MiB 2548.7 MiB 🔺 +0.3 MiB (+0.0%)
apify/actor-node-playwright-camoufox:24-slim playwright 1.60.0, camoufox ^0.12.0, slim 2229.1 MiB 2229.1 MiB 🔺 +0.0 MiB (+0.0%)
apify/actor-node-playwright-camoufox:26 playwright 1.60.0, camoufox ^0.12.0 2563.5 MiB 2563.8 MiB 🔺 +0.3 MiB (+0.0%)
apify/actor-node-playwright-camoufox:26-slim playwright 1.60.0, camoufox ^0.12.0, slim 2244.2 MiB 2244.2 MiB 🔺 +0.0 MiB (+0.0%)
apify/actor-node-playwright-chrome:22 playwright 1.63.0, camoufox ^0.12.0 2203.9 MiB 2204.2 MiB 🔺 +0.3 MiB (+0.0%)
apify/actor-node-playwright-chrome:22-slim playwright 1.63.0, camoufox ^0.12.0, slim 1852.3 MiB 1852.3 MiB 🔻 −0.0 MiB (−0.0%)
apify/actor-node-playwright-chrome:24 playwright 1.63.0, camoufox ^0.12.0 2206.3 MiB 2206.5 MiB 🔺 +0.3 MiB (+0.0%)
apify/actor-node-playwright-chrome:24-slim playwright 1.63.0, camoufox ^0.12.0, slim 1854.7 MiB 1854.7 MiB 🔺 +0.0 MiB (+0.0%)
apify/actor-node-playwright-chrome:26 playwright 1.63.0, camoufox ^0.12.0 2221.4 MiB 2221.6 MiB 🔺 +0.2 MiB (+0.0%)
apify/actor-node-playwright-chrome:26-slim playwright 1.63.0, camoufox ^0.12.0, slim 1869.8 MiB 1869.8 MiB 🔺 +0.0 MiB (+0.0%)
apify/actor-node-playwright-firefox:22 playwright 1.63.0, camoufox ^0.12.0 1521.7 MiB 1522.0 MiB 🔺 +0.2 MiB (+0.0%)
apify/actor-node-playwright-firefox:22-slim playwright 1.63.0, camoufox ^0.12.0, slim 1170.1 MiB 1170.1 MiB 🔺 +0.0 MiB (+0.0%)
apify/actor-node-playwright-firefox:24 playwright 1.63.0, camoufox ^0.12.0 1524.1 MiB 1524.4 MiB 🔺 +0.3 MiB (+0.0%)
apify/actor-node-playwright-firefox:24-slim playwright 1.63.0, camoufox ^0.12.0, slim 1172.5 MiB 1172.5 MiB 🔻 −0.0 MiB (−0.0%)
apify/actor-node-playwright-firefox:26 playwright 1.63.0, camoufox ^0.12.0 1539.2 MiB 1539.5 MiB 🔺 +0.3 MiB (+0.0%)
apify/actor-node-playwright-firefox:26-slim playwright 1.63.0, camoufox ^0.12.0, slim 1187.6 MiB 1187.6 MiB 🔻 −0.0 MiB (−0.0%)
apify/actor-node-playwright-webkit:22 playwright 1.63.0, camoufox ^0.12.0 1778.6 MiB 1778.9 MiB 🔺 +0.3 MiB (+0.0%)
apify/actor-node-playwright-webkit:22-slim playwright 1.63.0, camoufox ^0.12.0, slim 1427.1 MiB 1427.1 MiB 🔻 −0.0 MiB (−0.0%)
apify/actor-node-playwright-webkit:24 playwright 1.63.0, camoufox ^0.12.0 1781.0 MiB 1781.3 MiB 🔺 +0.3 MiB (+0.0%)
apify/actor-node-playwright-webkit:24-slim playwright 1.63.0, camoufox ^0.12.0, slim 1429.4 MiB 1429.4 MiB 🔻 −0.0 MiB (−0.0%)
apify/actor-node-playwright-webkit:26 playwright 1.63.0, camoufox ^0.12.0 1796.1 MiB 1796.3 MiB 🔺 +0.2 MiB (+0.0%)
apify/actor-node-playwright-webkit:26-slim playwright 1.63.0, camoufox ^0.12.0, slim 1444.5 MiB 1444.5 MiB 🔻 −0.0 MiB (−0.0%)
apify/actor-node-playwright:22 playwright 1.63.0, camoufox ^0.12.0 3427.0 MiB 3427.2 MiB 🔺 +0.2 MiB (+0.0%)
apify/actor-node-playwright:22-slim playwright 1.63.0, camoufox ^0.12.0, slim 3091.4 MiB 3091.4 MiB 🔻 −0.0 MiB (−0.0%)
apify/actor-node-playwright:24 playwright 1.63.0, camoufox ^0.12.0 3240.8 MiB 3241.0 MiB 🔺 +0.3 MiB (+0.0%)
apify/actor-node-playwright:24-slim playwright 1.63.0, camoufox ^0.12.0, slim 2905.1 MiB 2905.1 MiB 🔺 +0.0 MiB (+0.0%)
apify/actor-node-playwright:26 playwright 1.63.0, camoufox ^0.12.0 3387.1 MiB 3387.4 MiB 🔺 +0.2 MiB (+0.0%)
apify/actor-node-playwright:26-slim playwright 1.63.0, camoufox ^0.12.0, slim 3051.5 MiB 3051.5 MiB 🔺 +0.0 MiB (+0.0%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

t-tooling Issues with this label are in the ownership of the tooling team.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants