AI Slop Code RIsk Monitor

daijro/camoufox

🦊 Anti-detect browser

14.9 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for daijro/camoufox, a Python project with 12,463 GitHub stars. SynthScan examined 142,215 lines of code across 364 source files, recording 1373 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 14.9 (Moderate pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

14.9
Adjusted Signal
14.9
Raw Pattern Score
100%
Time Factor
2026-10-11
Last Push
12.5K
Stars
Python
Language
142.2K
Lines of Code
364
Files
1.4K
Pattern Hits
2026-10-12
Scan Date
0.23
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 26.9/100 · MEDIUM

Can maintainers explain intent, assumptions, and trade-offs? 950 finding(s).

Hallucinated Dependency & Supply Chain Risk 10.1/100 · LOW

Are imports declared and package/API names verified? 98 finding(s).

Agent Over-Engineering Ratio 41.7/100 · MEDIUM

Are wrappers, guards, and repeated structures necessary? 947 finding(s).

PR Review Velocity Impact 54.9/100 · HIGH

Which changes need focused human review? 1373 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 0HIGH 83MEDIUM 238LOW 1052

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 1373 distinct pattern matches across 14 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Decorative Section Separators222 hits · 704 pts
SeverityFileLineSnippetContext
MEDIUMpython/tests/test_voices.py109# ── Fail-closed voice configuration (daijro/camoufox#731) ────────────────────COMMENT
MEDIUM⚡python/tests/test_font_distribution.py74# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡python/tests/test_font_distribution.py76# ---------------------------------------------------------------------------COMMENT
MEDIUMpython/tests/test_font_distribution.py118# ---------------------------------------------------------------------------COMMENT
MEDIUMpython/tests/test_font_distribution.py120# ---------------------------------------------------------------------------COMMENT
MEDIUMpython/tests/test_font_distribution.py222# ---------------------------------------------------------------------------COMMENT
MEDIUMpython/tests/test_font_distribution.py224# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡python/tests/test_font_distribution.py249# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡python/tests/test_font_distribution.py251# ---------------------------------------------------------------------------COMMENT
MEDIUMci/pw_camoufox_plugin.py60# ---------------------------------------------------------------------------COMMENT
MEDIUMci/pw_camoufox_plugin.py62# ---------------------------------------------------------------------------COMMENT
MEDIUMci/pw_camoufox_plugin.py124# ---------------------------------------------------------------------------COMMENT
MEDIUMci/pw_camoufox_plugin.py126# ---------------------------------------------------------------------------COMMENT
MEDIUMci/pw_camoufox_plugin.py158# ---------------------------------------------------------------------------COMMENT
MEDIUMci/pw_camoufox_plugin.py160# ---------------------------------------------------------------------------COMMENT
MEDIUMci/pw_camoufox_plugin.py214# ---------------------------------------------------------------------------COMMENT
MEDIUMci/pw_camoufox_plugin.py216# ---------------------------------------------------------------------------COMMENT
MEDIUMci/release.py70# ---------------------------------------------------------------------------COMMENT
MEDIUMci/release.py72# ---------------------------------------------------------------------------COMMENT
MEDIUMci/release.py259# ---------------------------------------------------------------------------COMMENT
MEDIUMci/release.py261# ---------------------------------------------------------------------------COMMENT
MEDIUMci/release.py356# ---------------------------------------------------------------------------COMMENT
MEDIUMci/release.py358# ---------------------------------------------------------------------------COMMENT
MEDIUMci/release.py397# ---------------------------------------------------------------------------COMMENT
MEDIUMci/release.py399# ---------------------------------------------------------------------------COMMENT
MEDIUMci/_pytest.py45# ---------------------------------------------------------------------------COMMENT
MEDIUMci/_pytest.py47# ---------------------------------------------------------------------------COMMENT
MEDIUMci/run_sundial.py100# ---------------------------------------------------------------------------COMMENT
MEDIUMci/run_sundial.py102# ---------------------------------------------------------------------------COMMENT
MEDIUMci/run_sundial.py364# ---------------------------------------------------------------------------COMMENT
MEDIUMci/run_sundial.py366# ---------------------------------------------------------------------------COMMENT
MEDIUMci/run_sundial.py417# ---------------------------------------------------------------------------COMMENT
MEDIUMci/run_sundial.py419# ---------------------------------------------------------------------------COMMENT
MEDIUMci/run_sundial.py654# ---------------------------------------------------------------------------COMMENT
MEDIUMci/run_sundial.py656# ---------------------------------------------------------------------------COMMENT
MEDIUMci/run_sundial.py787# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡ci/_util.py42# --------------------------------------------------------------------------COMMENT
MEDIUM⚡ci/_util.py44# --------------------------------------------------------------------------COMMENT
MEDIUMci/_util.py94# --------------------------------------------------------------------------COMMENT
MEDIUMci/_util.py96# --------------------------------------------------------------------------COMMENT
MEDIUMci/_util.py158# --------------------------------------------------------------------------COMMENT
MEDIUMci/_util.py160# --------------------------------------------------------------------------COMMENT
MEDIUMci/_util.py197# --------------------------------------------------------------------------COMMENT
MEDIUMci/_util.py199# --------------------------------------------------------------------------COMMENT
MEDIUMci/_util.py212# --------------------------------------------------------------------------COMMENT
MEDIUMci/_util.py214# --------------------------------------------------------------------------COMMENT
MEDIUMci/tribal-rules.yml20 # -------------------------------------------------------------------------COMMENT
MEDIUMci/tribal-rules.yml22 # -------------------------------------------------------------------------COMMENT
MEDIUMci/tribal-rules.yml134 # -------------------------------------------------------------------------COMMENT
MEDIUMci/tribal-rules.yml136 # -------------------------------------------------------------------------COMMENT
MEDIUMci/tribal-rules.yml158 # -------------------------------------------------------------------------COMMENT
MEDIUMci/tribal-rules.yml160 # -------------------------------------------------------------------------COMMENT
MEDIUMci/tribal-rules.yml324 # -------------------------------------------------------------------------COMMENT
MEDIUMci/tribal-rules.yml326 # -------------------------------------------------------------------------COMMENT
MEDIUMci/tribal-rules.yml352 # -------------------------------------------------------------------------COMMENT
MEDIUMci/tribal-rules.yml354 # -------------------------------------------------------------------------COMMENT
MEDIUMci/tribal-rules.yml393 # -------------------------------------------------------------------------COMMENT
MEDIUMci/tribal-rules.yml395 # -------------------------------------------------------------------------COMMENT
MEDIUMci/tribal-rules.yml434 # -------------------------------------------------------------------------COMMENT
MEDIUMci/tribal-rules.yml436 # -------------------------------------------------------------------------COMMENT
162 more matches not shown…
Hyper-Verbose Identifiers620 hits · 608 pts
SeverityFileLineSnippetContext
LOWpython/tests/test_voices.py27def test_non_empty_for_every_os(target_os):CODE
LOWpython/tests/test_voices.py33def test_entries_are_full_objects(target_os):CODE
LOWpython/tests/test_voices.py48def test_windows_display_language_pack():CODE
LOW⚡python/tests/test_voices.py69 def test_prefix_and_lang_suffix(self):CODE
LOW⚡python/tests/test_voices.py74 def test_spaces_escaped_punctuation_intact(self):CODE
LOW⚡python/tests/test_voices.py82def test_normalize_preset_voices_converts_strings():CODE
LOWpython/tests/test_voices.py93def test_normalize_preset_voices_passes_through_objects():CODE
LOWpython/tests/test_voices.py105def test_unknown_os_falls_back_to_macos():CODE
LOW⚡python/tests/test_voices.py136def test_block_flag_is_pinned_by_default():CODE
LOW⚡python/tests/test_voices.py142def test_caller_can_override_the_block_flag():CODE
LOW⚡python/tests/test_voices.py147def test_voice_generation_failure_fails_closed(monkeypatch):CODE
LOWpython/tests/test_voices.py172def test_validate_voices_rejects_unusable_shapes(value):CODE
LOWpython/tests/test_voices.py192def test_validate_voices_accepts_usable_shapes(value):CODE
LOWpython/tests/test_launch_geometry.py67 def test_fingerprint_is_not_shrunk_to_the_xvfb(self):CODE
LOWpython/tests/test_launch_geometry.py75 def test_screen_dimensions_stay_valid(self):CODE
LOW⚡python/tests/test_launch_geometry.py103 def test_generated_geometry_never_exceeds_the_display(self, attempt):CODE
LOW⚡python/tests/test_launch_geometry.py111 def test_geometry_stays_internally_consistent(self):CODE
LOW⚡python/tests/test_launch_geometry.py120 def test_unprobeable_display_is_not_clamped(self):CODE
LOWpython/tests/test_launch_geometry.py140 def test_inner_dimensions_are_never_spoofed(self):CODE
LOWpython/tests/test_shipped_data.py31def test_every_bundled_preset_is_coherent_as_stored(filename):CODE
LOWpython/tests/test_shipped_data.py46def test_every_preset_gpu_has_webgl_data(filename):CODE
LOWpython/tests/test_geoip_sources.py23def test_source_serves_a_current_build(name, tmp_path, monkeypatch):CODE
LOW⚡python/tests/test_webgl_screen_consistency.py47def test_every_spelling_of_one_gpu_reduces_to_one_bucket(renderer):CODE
LOW⚡python/tests/test_webgl_screen_consistency.py54def test_angle_vendor_field_does_not_decide_the_bucket():CODE
LOW⚡python/tests/test_webgl_screen_consistency.py63def test_angle_vulkan_form_is_unwrapped():CODE
LOW⚡python/tests/test_webgl_screen_consistency.py73def test_discrete_gpu_rejected_on_a_netbook_screen(renderer):CODE
LOW⚡python/tests/test_webgl_screen_consistency.py80def test_discrete_gpu_accepted_on_any_real_laptop_panel(width, height):CODE
LOW⚡python/tests/test_webgl_screen_consistency.py87def test_the_floor_is_an_area_not_a_per_axis_bound():CODE
LOW⚡python/tests/test_webgl_screen_consistency.py95def test_discrete_gpu_rejected_on_netbook_panels(width, height):CODE
LOW⚡python/tests/test_webgl_screen_consistency.py99def test_integrated_parts_are_not_floored():CODE
LOW⚡python/tests/test_webgl_screen_consistency.py107def test_apple_silicon_is_not_pinned_to_retina():CODE
LOW⚡python/tests/test_webgl_screen_consistency.py114def test_raw_model_names_are_out_of_scope():CODE
LOW⚡python/tests/test_webgl_screen_consistency.py123def test_missing_values_are_not_constrained():CODE
LOW⚡python/tests/test_webgl_screen_consistency.py140def test_software_renderers_are_unconstrained(renderer):CODE
LOW⚡python/tests/test_webgl_screen_consistency.py146def test_hardware_is_not_mistaken_for_software(monkeypatch):CODE
LOW⚡python/tests/test_webgl_screen_consistency.py152def test_sampled_gpu_is_coherent_with_the_screen(target_os):CODE
LOW⚡python/tests/test_webgl_screen_consistency.py161def test_screen_floor_lifts_netbook_geometry():CODE
LOWpython/tests/test_webgl_screen_consistency.py176def test_screen_floor_leaves_an_adequate_screen_alone():CODE
LOWpython/tests/test_webgl_screen_consistency.py188def test_screen_floor_is_a_no_op_without_screen_values():CODE
LOWpython/tests/test_webgl_screen_consistency.py198def test_context_fingerprints_get_the_same_treatment(target_os):CODE
LOWpython/tests/test_webgl_screen_consistency.py214def test_preset_screens_are_never_lifted():CODE
LOWpython/tests/test_proxy_geo.py71def test_lookup_goes_through_the_proxy_with_its_credentials(api, server, expected):CODE
LOWpython/tests/test_proxy_geo.py80def test_credentials_with_url_delimiters_survive_the_proxy_url(api):CODE
LOWpython/tests/test_proxy_geo.py99def test_a_failed_lookup_raises_instead_of_launching_without_the_values(api, failure):CODE
LOWpython/tests/test_proxy_geo.py106def test_no_lookup_when_both_values_are_given(api):CODE
LOWpython/tests/test_virtdisplay.py59def test_single_launch_returns_valid_display_and_kill_terminates_xvfb(tracked):CODE
LOWpython/tests/test_virtdisplay.py73def test_get_is_idempotent_within_one_virtual_display(tracked):CODE
LOWpython/tests/test_virtdisplay.py80def test_concurrent_reservations_all_get_unique_displays(tracked):CODE
LOWpython/tests/test_virtdisplay.py112def test_released_display_numbers_can_be_reused_on_the_next_launch(tracked):CODE
LOW⚡python/tests/test_geoip_config.py34def test_implicit_deprecated_source_moves_to_default(cache):CODE
LOW⚡python/tests/test_geoip_config.py40def test_explicit_deprecated_source_is_kept(cache):CODE
LOW⚡python/tests/test_geoip_config.py45def test_save_records_explicit_choice(cache):CODE
LOW⚡python/tests/test_geoip_config.py53def test_refresh_keeps_an_explicit_choice(cache, monkeypatch):CODE
LOW⚡python/tests/test_geoip_config.py62def test_deprecated_source_warns():CODE
LOW⚡python/tests/test_geoip_config.py91def test_needs_update_reads_the_build_date(cache, monkeypatch, checked, built, stale):CODE
LOW⚡python/tests/test_geoip_config.py97def test_missing_database_needs_update():CODE
LOW⚡python/tests/test_geoip_config.py102def test_the_database_takes_its_directory_permissions_not_the_staging_files(cache, monkeypatch):CODE
LOWpython/tests/test_preset_appversion.py60def test_app_version_follows_the_preset_platform(platform, user_agent, expected):CODE
LOWpython/tests/test_preset_appversion.py67def test_app_version_agrees_with_the_user_agent():CODE
LOWpython/tests/test_preset_appversion.py84def test_a_preset_that_carries_its_own_app_version_follows_its_user_agent():CODE
560 more matches not shown…
Cross-Language Confusion55 hits · 262 pts
SeverityFileLineSnippetContext
HIGHpython/tests/test_voices.py7 cd python && python -m pytest tests/test_voices.py -vSTRING
HIGHpython/tests/test_launch_geometry.py5 cd python && python -m pytest tests/test_launch_geometry.py -vSTRING
HIGHpython/tests/test_webgl_screen_consistency.py5 cd python && python -m pytest tests/test_webgl_screen_consistency.py -vSTRING
HIGHpython/tests/test_virtdisplay.py7 cd python && python -m pytest tests/test_virtdisplay.py -vSTRING
HIGHpython/tests/test_preset_appversion.py5 cd python && python -m pytest tests/test_preset_appversion.py -vSTRING
HIGHpython/tests/test_display.py9 cd python && python -m pytest tests/test_display.py -vSTRING
HIGHpython/tests/test_host_rendering.py5 cd python && python -m pytest tests/test_host_rendering.py -vSTRING
HIGHpython/tests/test_config_schema.py22 cd python && python -m pytest tests/test_config_schema.py -vSTRING
HIGH⚡python/tests/test_browser_pin.py49@pytest.mark.parametrize("content", ["{}", '{"tag": null}', "", "not json"])CODE
HIGHpython/tests/test_server.py14 cd python && python -m pytest tests/test_server.py -vSTRING
HIGHpython/tests/test_addons.py11 cd python && python -m pytest tests/test_addons.py -vSTRING
HIGHpython/tests/test_fingerprint_fixes.py5 cd python && python -m pytest tests/test_fingerprint_fixes.py -vSTRING
HIGHpython/src/camoufox/host_rendering.py32# requestAdapter() to null, as on a machine whose GPU Firefox blocks.COMMENT
HIGHpython/src/camoufox/host_rendering.py45 const info = gl && gl.getExtension('WEBGL_debug_renderer_info');CODE
HIGHpython/src/camoufox/host_rendering.py48 : null;CODE
HIGHpython/src/camoufox/host_rendering.py68 contradict the claimed GPU, so requestAdapter() returns null, as WindowsSTRING
HIGHci/run_prepare.py4`make setup-minimal && make dir && make mozbootstrap` is the front half of everySTRING
HIGHbrowser/tests/native/test_tribal_rules.py611 assert "!availFromResolution && ScreenDimensionManager::GetDimensions" in added, whyCODE
HIGHbrowser/tests/native/test_contexts_vs_browsers.py233 const within = (p, ms) => Promise.race([p, new Promise(r => setTimeout(() => r(null), ms))]);CODE
HIGHbrowser/tests/native/test_contexts_vs_browsers.py249 fp.webglVendor = dbg && gl.getParameter(dbg.UNMASKED_VENDOR_WEBGL);CODE
HIGHbrowser/tests/native/test_contexts_vs_browsers.py250 fp.webglRenderer = dbg && gl.getParameter(dbg.UNMASKED_RENDERER_WEBGL);CODE
HIGHbrowser/tests/native/test_contexts_vs_browsers.py305 result = await page.evaluate("document.documentElement.dataset.fingerprint || null")CODE
HIGH…r/tests/playwright/patches/contentaccessible-parity.py67 setTimeout(() => res(null), 5000);CODE
HIGHbrowser/tests/playwright/patches/stock-parity-probes.py50 wheel.push({dy: e.deltaY, mode: e.deltaMode, wd: e.wheelDeltaY});CODE
HIGHbrowser/tests/playwright/patches/stock-parity-probes.py112 pc.onicecandidate = e => { if (e.candidate) cands.push(e.candidate.candidate); };CODE
HIGHbrowser/tests/playwright/patches/stock-parity-probes.py121 (await pc.getStats()).forEach((v, k) => out.statIds.push(String(k)));CODE
HIGHbrowser/tests/playwright/patches/stock-parity-probes.py162 for (let r = 0; r < ROUNDS; r++) { ta.push(time(a)); tb.push(time(b)); }CODE
HIGHbrowser/tests/playwright/patches/main-world-eval.py82 ("array", "[1, 'two', null]", [1, "two", None]),STRING
HIGHbrowser/tests/playwright/patches/worker-config-reads.py39 const code = 'postMessage((' + read.toString() + ')())';CODE
HIGHbrowser/tests/playwright/patches/webrtc-context-ip.py47 if (ended) srflx.push('after end-of-candidates: ' + e.candidate.candidate);CODE
HIGHbrowser/tests/playwright/patches/webrtc-context-ip.py49 if (m && !ended) srflx.push(m[1]);CODE
HIGH⚡…er/tests/playwright/patches/fingerprint-setter-seal.py80 if (n in window) visible.push(n);CODE
HIGH⚡…er/tests/playwright/patches/fingerprint-setter-seal.py81 if (typeof window[n] === 'function') callable.push(n);CODE
HIGH⚡…er/tests/playwright/patches/fingerprint-setter-seal.py84 for (var k in window) if (names.indexOf(k) !== -1) enumerated.push(k);CODE
HIGH…er/tests/playwright/patches/visible-automation-cues.py34 out.push({CODE
HIGH…er/tests/playwright/patches/visible-automation-cues.py36 publicIdentities: ids.filter(id => id > 0 && ContextualIdentityService.getPublicIdentityFromId(id)),CODE
HIGH…owser/tests/playwright/patches/baseline-protections.py74 webgpu: navigator.gpu ? [true, (await navigator.gpu.requestAdapter()) !== null] : [false, false],CODE
HIGHbrowser/tests/playwright/patches/webgl-live-state.py25 if (!gl) return null;CODE
HIGH…owser/tests/playwright/patches/spoofed-voice-speaks.py46 events.push([type, Math.round(performance.now() - t0)]);CODE
HIGH⚡browser/tests/playwright/patches/webgl-renderer-pair.py37 if (!gl) return null;CODE
HIGH⚡browser/tests/playwright/patches/webgl-renderer-pair.py40 ext && gl.getParameter(ext.UNMASKED_VENDOR_WEBGL),CODE
HIGH⚡browser/tests/playwright/patches/webgl-renderer-pair.py41 ext && gl.getParameter(ext.UNMASKED_RENDERER_WEBGL)];CODE
HIGH⚡browser/tests/playwright/patches/webgl-renderer-pair.py50 const src = 'const read = ' + read.toString() +CODE
HIGHbrowser/tests/playwright/patches/humanize-pacing.py42 addEventListener("mousemove", () => moves.push(performance.now()));CODE
HIGHbrowser/tests/playwright/patches/stock-gpu-parity.py74 if (!c) return null;CODE
HIGHbrowser/tests/playwright/patches/stock-gpu-parity.py81 if (value === null || typeof value !== 'object' || ArrayBuffer.isView(value))CODE
HIGHbrowser/tests/playwright/patches/trusted-events.py69 target: e.target.id || e.target.tagName,CODE
HIGHbrowser/tests/playwright/patches/trusted-events.py75 if (e.target instanceof Element) window.log.push(desc(e));CODE
HIGH…/tests/playwright/patches/humanize-mouse-trajectory.py55 addEventListener("mousemove", e => moves.push([e.clientX, e.clientY, performance.now()]));CODE
HIGH…owser/tests/playwright/patches/popup-blocker-parity.py45let opened = null;CODE
HIGHbrowser/tests/build-tester/scripts/runner.py49 "() => { const n = document.getElementById(%r); return n ? n.textContent : null; }" % _RESULTS_NODECODE
HIGHbrowser/tests/build-tester/scripts/runner.py167 hardwareConcurrency: navigator.hardwareConcurrency || 0,CODE
HIGHbrowser/tests/build-tester/scripts/runner.py288 " Run: pip install playwright && python -m playwright install firefox\n"CODE
HIGHbrowser/scripts/patch.py40 run('git reset --hard unpatched && ./mach clobber && git clean -fdx')CODE
HIGHbrowser/scripts/cursor-demo.py25 addEventListener("mousemove", e => moves.push([e.clientX, e.clientY, performance.now()]));CODE
Over-Commented Block240 hits · 166 pts
SeverityFileLineSnippetContext
LOWpython/src/camoufox/webgl.py41# Windows 11 host exposes it on WebGL2 (MAX_VIEWS_OVR=4, headless and headed),COMMENT
LOWpython/src/camoufox/fpgen.yml1# Mappings of fpgen fingerprints to Camoufox config properties.COMMENT
LOWpython/src/camoufox/coherence.py41APPLE_SILICON_CORES = frozenset(LAUNCHER_CONSTANTS['appleSiliconCores'])COMMENT
LOWpython/src/camoufox/coherence.py61# contacts. Measured 5 on the Windows laptop. This is a RANGE rather than a listCOMMENT
LOWpython/src/camoufox/coherence.py81COMMENT
LOWpython/src/camoufox/__version__.py21 # declares it in its manifest.json (ci/release.py reads it from here), andCOMMENT
LOWpython/src/camoufox/repos.yml41# GeoIP database repositoriesCOMMENT
LOWpython/src/camoufox/utils.py121 browser bundle: the bundle is commonly baked into an image as root and runCOMMENT
LOWpython/src/camoufox/utils.py1181 if not _user_set_screen_window:COMMENT
LOWpython/src/camoufox/utils.py1201COMMENT
LOWpython/src/camoufox/utils.py1241 FallbackWarning.warn(COMMENT
LOWpython/src/camoufox/utils.py1261 # Windows to the version the identity's font draw presentsCOMMENT
LOWpython/src/camoufox/utils.py1281 # Measured 2026-09-15, 32px canvas `serif`, U+0870: .notdef 19.0 with asyncCOMMENT
LOWpython/src/camoufox/utils.py1301 firefox_user_prefs.setdefault(_QUOTA_FIXED_LIMIT_PREF, _quota_limit_kb)COMMENT
LOWpython/src/camoufox/utils.py1421 requested = 'en-US'COMMENT
LOWci/sundial.yml1# Scope and thresholds for the stealth check.COMMENT
LOWci/sundial.yml21# While this was false the job was not scheduled, the credential never reached aCOMMENT
LOWci/build-tester.yml21 - Canvas NoiseCOMMENT
LOWci/run_playwright.py61# async suite's pytest-asyncio loop break each other in one process ("Runner.run()COMMENT
LOWci/run_playwright.py81COMMENT
LOWci/run_playwright.py301 failing = {t for t, o in part.items() if o in (results.FAIL, results.ERROR)}COMMENT
LOWci/tribal-rules.yml1# Decisions this repository has already made, and the evidence for each.COMMENT
LOWci/skiplist.yml1# Upstream Playwright tests Camoufox cannot pass by design.COMMENT
LOWci/skiplist.yml21# worse than leaving them bare.COMMENT
LOWci/skiplist.yml41 # browser/additions/juggler/input/MouseDispatch.js: real trajectories, realCOMMENT
LOWci/skiplist.yml201 the first proxied navigation of the module's shared browser.COMMENT
LOWtypescript/src/utils.ts321function generateFontconfig(COMMENT
LOWbrowser/settings/camoufox.cfg1// =================================================================COMMENT
LOWbrowser/settings/camoufox.cfg21COMMENT
LOWbrowser/settings/camoufox.cfg41// * default_address_only: only emit the default route address, noCOMMENT
LOWbrowser/settings/camoufox.cfg241// Speculative loading stays at Firefox's defaults. `<link rel=prefetch>` isCOMMENT
LOWbrowser/settings/camoufox.cfg261// real browser: 0 is a zero-false-positive automation tell that any page scriptCOMMENT
LOWbrowser/settings/camoufox.cfg301// -------COMMENT
LOWbrowser/settings/camoufox.cfg321// issue we can povide custom '@mozilla.org/ipc/processselector;1'COMMENT
LOWbrowser/settings/camoufox.cfg341COMMENT
LOWbrowser/settings/camoufox.cfg361// grants no user activation and is invisible to page script.COMMENT
LOWbrowser/settings/camoufox.cfg401COMMENT
LOWbrowser/settings/camoufox.cfg501COMMENT
LOWbrowser/additions/juggler/TargetRegistry.js21// the drag path's juggler-drag-finalized and dragover waits, and theCOMMENT
LOWbrowser/additions/juggler/TargetRegistry.js261 // In persistent mode, window might be opened long ago and might beCOMMENT
LOWbrowser/additions/juggler/TargetRegistry.js981COMMENT
LOWbrowser/additions/juggler/NetworkObserver.js121 this.navigationId = redirectedFrom.navigationId;COMMENT
LOWbrowser/additions/juggler/NetworkObserver.js821COMMENT
LOW…owser/additions/juggler/pipe/nsRemoteDebuggingPipe.cpp1/* This Source Code Form is subject to the terms of the Mozilla PublicCOMMENT
LOWbrowser/additions/juggler/input/CursorTrajectory.js101 [fromX, fromY], [toX, toY], {frequency: kFrequencyHz, seed});COMMENT
LOWbrowser/additions/juggler/input/CursorTrajectory.js121 // natural duration, and `scale` stays exact. Only the resampling differs.COMMENT
LOWbrowser/additions/juggler/input/MouseDispatch.js81 //COMMENT
LOWbrowser/additions/juggler/content/Runtime.js81// page's real global is deliberately not one of them. The wire format is theCOMMENT
LOWbrowser/additions/juggler/content/Runtime.js281 if (result && typeof result.then === 'function')COMMENT
LOWbrowser/additions/juggler/content/Runtime.js681COMMENT
LOWbrowser/additions/juggler/content/Runtime.js721 }COMMENT
LOWbrowser/additions/juggler/content/FrameTree.js601 // evaluates -- silently reads undefined (#628 follow-up).COMMENT
LOWbrowser/additions/juggler/content/FrameTree.js661 // _masterSandbox was added only the navigation path (_onGlobalObjectCleared)COMMENT
LOWbrowser/additions/juggler/content/FrameTree.js701COMMENT
LOWbrowser/additions/juggler/protocol/PageHandler.js541 // Camoufox: measured AFTER the await above, synchronously before theCOMMENT
LOWbrowser/additions/juggler/protocol/PageHandler.js621 // the juggler-mouse-event-hit-renderer notification never fires and theCOMMENT
LOWbrowser/additions/juggler/protocol/PageHandler.js681COMMENT
LOW…r/additions/juggler/screencast/nsScreencastService.cpp1/* This Source Code Form is subject to the terms of the Mozilla PublicCOMMENT
LOW…/additions/juggler/screencast/HeadlessWindowCapturer.h1/* This Source Code Form is subject to the terms of the Mozilla PublicCOMMENT
LOWbrowser/additions/camoucfg/json.hpp21#include <algorithm> // all_of, find, for_eachCOMMENT
180 more matches not shown…
Empty Error Handlers28 hits · 140 pts
SeverityFileLineSnippetContext
HIGHpython/tests/test_virtdisplay.py42except Exception:CODE
HIGHpython/src/camoufox/server.py107except OSError:CODE
HIGHpython/src/camoufox/fpgen_model.py171except OSError:CODE
HIGHpython/src/camoufox/cpu_affinity.py36except OSError:CODE
HIGHpython/src/camoufox/cpu_affinity.py95except OSError:CODE
HIGHpython/src/camoufox/multiversion.py440except ValueError:CODE
HIGHpython/src/camoufox/multiversion.py41except orjson.JSONDecodeError:CODE
HIGHpython/src/camoufox/multiversion.py70except orjson.JSONDecodeError:CODE
HIGHpython/src/camoufox/virtdisplay.py174except Exception:CODE
HIGHpython/src/camoufox/virtdisplay.py185except OSError:CODE
HIGHpython/src/camoufox/locales.py122except UnknownTerritory:CODE
HIGHpython/src/camoufox/locales.py133except UnknownLanguage:CODE
HIGHbrowser/tests/native/conftest.py209except self._psutil.Error:CODE
HIGHbrowser/tests/native/test_crash_recovery.py234except psutil_mod.NoSuchProcess:CODE
HIGHbrowser/tests/native/test_crash_recovery.py654except BaseException:CODE
HIGHbrowser/tests/native/test_crash_recovery.py80except BaseException:CODE
HIGHbrowser/tests/native/test_crash_recovery.py371except BaseException:CODE
HIGHbrowser/tests/native/test_crash_recovery.py463except BaseException:CODE
HIGHbrowser/tests/native/test_crash_recovery.py622except BaseException:CODE
HIGHbrowser/tests/native/test_crash_recovery.py415except Exception:CODE
HIGHbrowser/tests/native/test_tribal_rules.py176except Exception:CODE
HIGHbrowser/tests/native/test_no_leaks.py140except BaseException:CODE
HIGHbrowser/tests/native/test_no_leaks.py312except OSError:CODE
HIGHbrowser/tests/playwright/patches/input-ack-backstop.py98except Exception:CODE
HIGHbrowser/tests/service/run_tests.py188except Exception:CODE
HIGHbrowser/tests/build-tester/scripts/runner.py210except Exception:CODE
HIGHbrowser/tests/build-tester/scripts/runner.py203except Exception:CODE
HIGHbrowser/tests/build-tester/scripts/runner.py376except Exception:CODE
Excessive Try-Catch Wrapping66 hits · 73 pts
SeverityFileLineSnippetContext
LOWpython/tests/test_virtdisplay.py42 except Exception:CODE
LOWpython/scripts/clean-fingerprint-data.py56 except Exception as exc: # a row too malformed to convert is itself a defectCODE
LOWpython/src/camoufox/geolocation.py222 except Exception as e:CODE
LOWpython/src/camoufox/geolocation.py273 except Exception:CODE
LOWpython/src/camoufox/cpu_affinity.py138 except Exception:CODE
LOWpython/src/camoufox/cpu_affinity.py153 except Exception:CODE
LOWpython/src/camoufox/multiversion.py410 except Exception as e:CODE
MEDIUMpython/src/camoufox/multiversion.py411 rprint(f"Error: {e}", fg="red")CODE
LOWpython/src/camoufox/addons.py94 except Exception as e:CODE
LOWpython/src/camoufox/virtdisplay.py174 except Exception:CODE
LOWpython/src/camoufox/pkgman.py156 except Exception:CODE
LOWpython/src/camoufox/pkgman.py415 except Exception:CODE
LOWpython/src/camoufox/pkgman.py665 except Exception as e:CODE
LOWpython/src/camoufox/pkgman.py765 except Exception as e:CODE
LOWpython/src/camoufox/display.py56 except Exception:CODE
LOWpython/src/camoufox/display.py77 except Exception:CODE
LOWpython/src/camoufox/utils.py234 except Exception:CODE
LOWpython/src/camoufox/utils.py604 except Exception:CODE
LOWpython/src/camoufox/fingerprints.py1746 except Exception as exc: # fpgen.exceptions.InvalidConstraintsCODE
LOWpython/src/camoufox/__main__.py122 except Exception:CODE
LOWpython/src/camoufox/__main__.py176 except Exception as e:CODE
LOWpython/src/camoufox/__main__.py354 except Exception as e:CODE
MEDIUMpython/src/camoufox/__main__.py360 rprint(f"Error: {msg}", fg="red")CODE
LOWci/run_sundial.py288 except Exception: # noqa: BLE001 -- absence is not an error hereCODE
LOWci/run_sundial.py331 except Exception as exc: # noqa: BLE001 -- reported below if the form fails tooCODE
LOWci/run_sundial.py339 except Exception as exc: # noqa: BLE001CODE
LOWci/run_sundial.py754 except Exception as exc: # noqa: BLE001 - never fail the scan on inputCODE
LOWci/run_sundial.py917 except Exception as exc: # noqa: BLE001 -- any failure here is a gate failureCODE
LOWci/versions.py80 except Exception:CODE
LOWci/versions.py99 except Exception as exc: # noqa: BLE001CODE
LOWtypescript/scripts/golden/launch_golden.py493 except Exception as exc: # recorded, not raisedCODE
LOW⚡typescript/scripts/golden/identity_golden.py94 except Exception as exc: # noqa: BLE001CODE
MEDIUMtypescript/scripts/golden/identity_golden.py91def err(fn):CODE
LOWbrowser/tests/native/_chaos.py147 except Exception:CODE
LOW⚡browser/tests/native/test_crash_recovery.py415 except Exception:CODE
LOWbrowser/tests/native/test_tribal_rules.py176 except Exception:CODE
LOWbrowser/tests/native/test_no_leaks.py228 except Exception as exc: # noqa: BLE001CODE
LOWbrowser/tests/native/test_no_leaks.py259 except Exception as exc: # noqa: BLE001CODE
LOWbrowser/tests/native/test_no_leaks.py294 except Exception as exc: # noqa: BLE001CODE
LOWbrowser/tests/native/test_contexts_vs_browsers.py59 except Exception as exc: # noqa: BLE001CODE
LOW…r/tests/playwright/patches/contentaccessible-parity.py224 except Exception as exc: # noqa: BLE001CODE
LOWbrowser/tests/playwright/patches/main-world-eval.py109 except Exception as exc: # noqa: BLE001 - the message is the pointSTRING
LOWbrowser/tests/playwright/patches/main-world-eval.py140 except Exception as exc: # noqa: BLE001STRING
LOWbrowser/tests/playwright/patches/main-world-eval.py175 except Exception as exc: # noqa: BLE001STRING
LOWbrowser/tests/playwright/patches/main-world-eval.py188 except Exception as exc: # noqa: BLE001STRING
LOWbrowser/tests/playwright/patches/worker-config-reads.py133 except Exception as exc:CODE
LOWbrowser/tests/playwright/patches/input-ack-backstop.py98 except Exception:CODE
LOWbrowser/tests/playwright/patches/addons-install-once.py80 except Exception as exc:CODE
LOW…owser/tests/playwright/patches/popup-blocker-parity.py93 except Exception as exc: # noqa: BLE001 - reported, not raisedCODE
LOWbrowser/tests/service/run_tests.py131 except Exception as e:CODE
LOWbrowser/tests/service/run_tests.py177 except Exception as e:CODE
LOW⚡browser/tests/service/run_tests.py188 except Exception:CODE
LOW⚡browser/tests/service/run_tests.py191 except Exception as e:CODE
LOWbrowser/tests/service/_proxies.py58 except Exception:CODE
LOW⚡browser/tests/build-tester/scripts/runner.py203 except Exception:CODE
LOW⚡browser/tests/build-tester/scripts/runner.py210 except Exception:CODE
LOW⚡browser/tests/build-tester/scripts/runner.py371 except Exception as e:CODE
LOW⚡browser/tests/build-tester/scripts/runner.py376 except Exception:CODE
LOWbrowser/tests/build-tester/scripts/runner.py113 except Exception as e:CODE
LOWbrowser/tests/build-tester/scripts/runner.py153 except Exception as e:CODE
6 more matches not shown…
Deep Nesting64 hits · 61 pts
SeverityFileLineSnippetContext
LOWpython/tests/test_fpgen_model.py94CODE
LOWpython/scripts/clean-fingerprint-data.py66CODE
LOWpython/src/camoufox/geolocation.py164CODE
LOWpython/src/camoufox/multiversion.py214CODE
LOWpython/src/camoufox/multiversion.py263CODE
LOWpython/src/camoufox/multiversion.py336CODE
LOWpython/src/camoufox/virtdisplay.py90CODE
LOWpython/src/camoufox/pkgman.py865CODE
LOWpython/src/camoufox/pkgman.py982CODE
LOWpython/src/camoufox/pkgman.py1085CODE
LOWpython/src/camoufox/pkgman.py651CODE
LOWpython/src/camoufox/utils.py353CODE
LOWpython/src/camoufox/utils.py868CODE
LOWpython/src/camoufox/fingerprints.py266CODE
LOWpython/src/camoufox/fingerprints.py417CODE
LOWpython/src/camoufox/fingerprints.py533CODE
LOWpython/src/camoufox/__main__.py79CODE
LOWpython/src/camoufox/__main__.py268CODE
LOWpython/src/camoufox/__main__.py368CODE
LOWpython/src/camoufox/__main__.py471CODE
LOWpython/src/camoufox/__main__.py749CODE
LOWci/pw_camoufox_plugin.py103CODE
LOWci/run_typescript.py36CODE
LOWci/release.py280CODE
LOWci/_pytest.py94CODE
LOWci/summarize.py62CODE
LOWci/summarize.py164CODE
LOWci/run_sundial.py422CODE
LOWci/run_sundial.py513CODE
LOWci/run_sundial.py566CODE
LOWci/run_build_tester.py83CODE
LOWci/run_build_tester.py123CODE
LOWci/run_build_tester.py144CODE
LOWci/versions.py126CODE
LOWci/tests/test_ci.py846CODE
LOWci/tests/test_ci.py2718CODE
LOWci/tests/test_ci.py2953CODE
LOWtypescript/scripts/golden/identity_golden.py131CODE
LOWtypescript/scripts/golden/identity_golden.py251CODE
LOWtypescript/scripts/golden/identity_golden.py437CODE
LOWtypescript/scripts/golden/identity_golden.py621CODE
LOWtypescript/scripts/e2e/python_probe.py47CODE
LOWbrowser/tests/native/conftest.py123CODE
LOWbrowser/tests/native/conftest.py198CODE
LOW…er/tests/playwright/patches/media-devices-coherence.py56CODE
LOWbrowser/tests/playwright/patches/addons-install-once.py58CODE
LOWbrowser/tests/service/run_tests.py51CODE
LOWbrowser/tests/build-tester/scripts/runner.py82CODE
LOWbrowser/tests/build-tester/scripts/runner.py216CODE
LOWbrowser/tests/build-tester/scripts/grading.py23CODE
LOWbrowser/tests/build-tester/scripts/grading.py36CODE
LOWbrowser/tests/build-tester/scripts/certificate.py85CODE
LOWbrowser/tests/build-tester/scripts/certificate.py110CODE
LOWbrowser/scripts/package.py68CODE
LOWbrowser/scripts/patch.py50CODE
LOWbrowser/scripts/patch.py90CODE
LOWbrowser/scripts/inject-locales.py36CODE
LOWbrowser/scripts/inject-locales.py72CODE
LOWbrowser/scripts/gen-fonts-json.py156CODE
LOWbrowser/scripts/gen-fonts-json.py203CODE
4 more matches not shown…
Unused Imports43 hits · 40 pts
SeverityFileLineSnippetContext
LOWpython/tests/test_launch_geometry.py8CODE
LOWpython/src/camoufox/geolocation.py21CODE
LOWpython/src/camoufox/multiversion.py14CODE
LOWpython/src/camoufox/__init__.py1CODE
LOWpython/src/camoufox/__init__.py2CODE
LOWpython/src/camoufox/__init__.py2CODE
LOWpython/src/camoufox/__init__.py2CODE
LOWpython/src/camoufox/__init__.py3CODE
LOWpython/src/camoufox/__init__.py3CODE
LOWpython/src/camoufox/__init__.py3CODE
LOWpython/src/camoufox/__init__.py4CODE
LOWpython/src/camoufox/pkgman.py11CODE
LOWci/pw_camoufox_plugin.py43CODE
LOWci/run_typescript.py21CODE
LOWci/release.py33CODE
LOWci/suite.py20CODE
LOWci/results.py22CODE
LOWci/run_patch_guards.py24CODE
LOWci/run_pythonlib.py12CODE
LOWci/_pytest.py11CODE
LOWci/summarize.py29CODE
LOWci/run_playwright.py36CODE
LOWci/run_native.py21CODE
LOWci/run_sundial.py31CODE
LOWci/_util.py7CODE
LOWci/run_build_tester.py14CODE
LOWci/run_skiplist_audit.py37CODE
LOWci/run_install.py24CODE
LOWci/versions.py24CODE
LOWci/run_build.py14CODE
LOWci/run_prepare.py27CODE
LOWci/browser_inputs.py50CODE
LOWci/tests/test_ci.py17CODE
LOWci/tests/test_ci.py2698CODE
LOWtypescript/scripts/golden/identity_golden.py27CODE
LOWbrowser/tests/native/conftest.py15CODE
LOWbrowser/tests/native/_chaos.py26CODE
LOWbrowser/tests/native/test_crash_recovery.py26CODE
LOWbrowser/tests/native/test_memory_growth.py42CODE
LOWbrowser/tests/native/test_tribal_rules.py17CODE
LOWbrowser/tests/native/test_no_leaks.py17CODE
LOWbrowser/tests/native/test_contexts_vs_browsers.py32CODE
LOWbrowser/tests/native/_churn.py18CODE
AI Slop Vocabulary8 hits · 26 pts
SeverityFileLineSnippetContext
MEDIUMci/sundial.yml4# that runs on every pull request; the auto-update harness (which is not part ofCOMMENT
MEDIUMci/build-tester.yml4# every pull request, and the auto-update harness (not part of this repository)COMMENT
MEDIUMci/run_sundial.py1009 # baseline is the auto-update harness's job, outside this repository.COMMENT
MEDIUM⚡ci/_util.py34# Kept under the old name so harness code and existing call sites read the same.COMMENT
MEDIUMbrowser/tests/playwright/patches/worker-config-reads.py48# timed out -- the harness failing, not the browser.COMMENT
MEDIUMbrowser/tests/playwright/patches/worker-config-reads.py110 # with no workers, a harness error that would hide the race.COMMENT
MEDIUMbrowser/tests/playwright/patches/worker-config-reads.py135 # timeout) is the harness, not the race, and is reported as such.COMMENT
MEDIUMbrowser/tests/build-tester/scripts/runner.py398 # The auto-update harness grades this run per check rather than by readingCOMMENT
Structural Annotation Overuse8 hits · 16 pts
SeverityFileLineSnippetContext
LOWdocs/patch-upgrading-guide.md80### Step 1: Bump the Version and Find the Broken PatchesCOMMENT
LOWdocs/patch-upgrading-guide.md92### Step 2: Set Up One PatchCOMMENT
LOWdocs/patch-upgrading-guide.md115### Step 3: Analyze Each Reject FileCOMMENT
LOW⚡docs/patch-upgrading-guide.md128### Step 4: Locate the Correct Position in Firefox CodeCOMMENT
LOW⚡docs/patch-upgrading-guide.md136### Step 5: Apply Changes ManuallyCOMMENT
LOW⚡docs/patch-upgrading-guide.md140### Step 6: Remove Reject FilesCOMMENT
LOW⚡docs/patch-upgrading-guide.md149### Step 7: Write the Updated PatchCOMMENT
LOW⚡docs/patch-upgrading-guide.md158### Step 8: VerifyCOMMENT
Modern Structural Boilerplate9 hits · 9 pts
SeverityFileLineSnippetContext
LOWpython/src/camoufox/multiversion.py300def set_active(relative_path: str) -> None:CODE
LOWpython/src/camoufox/__init__.py6__all__ = [CODE
LOWpython/src/camoufox/utils.py448def update_fonts(config: Dict[str, Any], target_os: str) -> None:CODE
LOWpython/src/camoufox/utils.py506def set_into(target: Dict[str, Any], key: str, value: Any) -> None:CODE
LOWpython/src/camoufox/host_rendering.py62def set_webgpu(prefs: Dict[str, Any], target_os: str, gpu: Gpu, host: Optional[Gpu]) -> None:CODE
LOWpython/src/camoufox/fingerprints.py868def set_media_devices_defaults(config: Dict[str, Any], salt: int = 0) -> None:CODE
LOWpython/src/camoufox/fingerprints.py1222def _set_app_version(config: Dict[str, Any]) -> None:CODE
LOWci/_util.py69def set_output(name: str, value: str) -> None:CODE
LOWbrowser/scripts/_mixin.py105__all__ = [CODE
Redundant / Tautological Comments6 hits · 9 pts
SeverityFileLineSnippetContext
LOWpython/src/camoufox/addons.py78 # Check if the addon is already extracted. A bare directory is notCOMMENT
LOWpython/src/camoufox/__main__.py377 # Check if latest for this channel is already installedCOMMENT
LOWpython/src/camoufox/__main__.py965 # Check if installed version is the latest in its own channelCOMMENT
LOWbrowser/scripts/patch.py226 # Check if the folder existsCOMMENT
LOWbrowser/scripts/copy-additions.sh6# Check if correct number of arguments are providedCOMMENT
LOWbrowser/scripts/generate-assets-car.sh13# Check if running on macOSCOMMENT
Self-Referential Comments2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMpython/src/camoufox/addons.py55 # Create a temporary file to store the downloaded zipCOMMENT
MEDIUMbrowser/scripts/patch.py63 # Create the base mozconfig fileCOMMENT
AI Structural Patterns2 hits · 2 pts
SeverityFileLineSnippetContext
LOWpython/src/camoufox/utils.py868CODE
LOWpython/src/camoufox/fingerprints.py1427CODE