🦊 Anti-detect browser
This report presents the forensic synthetic code analysis of daijro/camoufox, a C++ project with 10,066 GitHub stars. SynthScan v2.0 examined 108,645 lines of code across 348 source files, recording 1657 pattern matches distributed across 18 syntactic categories. The overall adjusted score of 16.3 places this repository in the Moderate AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 1657 distinct pattern matches across 18 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | additions/juggler/TargetRegistry.js | 898 | function fromProtocolReducedMotion(reducedMotion) { | CODE |
| LOW⚡ | tests/server.py | 238 | def send_on_web_socket_connection(self, data: bytes) -> None: | CODE |
| LOW⚡ | tests/server.py | 241 | def once_web_socket_connection(self, handler: Callable[["WebSocketProtocol"], None]) -> None: | CODE |
| LOW | tests/utils.py | 70 | def chromium_version_less_than(a: str, b: str) -> bool: | CODE |
| LOW⚡ | tests/async/test_page_select_option.py | 21 | async def test_select_option_should_select_single_option(page: Page, server: Server) -> None: | CODE |
| LOW⚡ | tests/async/test_page_select_option.py | 28 | async def test_select_option_should_select_single_option_by_value( | CODE |
| LOW⚡ | tests/async/test_page_select_option.py | 37 | async def test_select_option_should_select_single_option_by_label( | CODE |
| LOW⚡ | tests/async/test_page_select_option.py | 46 | async def test_select_option_should_select_single_option_by_handle( | CODE |
| LOW⚡ | tests/async/test_page_select_option.py | 55 | async def test_select_option_should_select_single_option_by_index( | CODE |
| LOW⚡ | tests/async/test_page_select_option.py | 64 | async def test_select_option_should_select_only_first_option(page: Page, server: Server) -> None: | CODE |
| LOW⚡ | tests/async/test_page_select_option.py | 71 | async def test_select_option_should_not_throw_when_select_causes_navigation( | CODE |
| LOW⚡ | tests/async/test_page_select_option.py | 107 | async def test_select_option_should_respect_event_bubbling(page: Page, server: Server) -> None: | CODE |
| LOW⚡ | tests/async/test_page_select_option.py | 114 | async def test_select_option_should_throw_when_element_is_not_a__select_( | CODE |
| LOW⚡ | tests/async/test_page_select_option.py | 123 | async def test_select_option_should_return_on_no_matched_values(page: Page, server: Server) -> None: | CODE |
| LOW⚡ | tests/async/test_page_select_option.py | 130 | async def test_select_option_should_return_an_array_of_matched_values( | CODE |
| LOW⚡ | tests/async/test_page_select_option.py | 139 | async def test_select_option_should_return_an_array_of_one_element_when_multiple_is_not_set( | CODE |
| LOW⚡ | tests/async/test_page_select_option.py | 147 | async def test_select_option_should_return_on_no_values(page: Page, server: Server) -> None: | CODE |
| LOW⚡ | tests/async/test_page_select_option.py | 153 | async def test_select_option_should_not_allow_null_items(page: Page, server: Server) -> None: | CODE |
| LOW⚡ | tests/async/test_page_select_option.py | 161 | async def test_select_option_should_unselect_with_null(page: Page, server: Server) -> None: | CODE |
| LOW | tests/async/test_page_select_option.py | 84 | async def test_select_option_should_select_multiple_options(page: Page, server: Server) -> None: | CODE |
| LOW | tests/async/test_page_select_option.py | 92 | async def test_select_option_should_select_multiple_options_with_attributes( | CODE |
| LOW | tests/async/test_page_select_option.py | 173 | async def test_select_option_should_deselect_all_options_when_passed_no_values_for_a_multiple_select( | CODE |
| LOW | tests/async/test_page_select_option.py | 186 | async def test_select_option_should_deselect_all_options_when_passed_no_values_for_a_select_without_multiple( | CODE |
| LOW | tests/async/test_page_select_option.py | 198 | async def test_select_option_should_work_when_re_defining_top_level_event_class( | CODE |
| LOW | tests/async/test_page_select_option.py | 208 | async def test_select_options_should_fall_back_to_selecting_by_label( | CODE |
| LOW⚡ | tests/async/test_defaultbrowsercontext.py | 186 | async def test_should_support_viewport_option( | CODE |
| LOW⚡ | tests/async/test_defaultbrowsercontext.py | 196 | async def test_should_support_device_scale_factor_option( | CODE |
| LOW⚡ | tests/async/test_defaultbrowsercontext.py | 204 | async def test_should_support_user_agent_option( | CODE |
| LOW⚡ | tests/async/test_defaultbrowsercontext.py | 255 | async def test_should_support_offline_option( | CODE |
| LOW⚡ | tests/async/test_defaultbrowsercontext.py | 264 | async def test_should_support_has_touch_option( | CODE |
| LOW⚡ | tests/async/test_defaultbrowsercontext.py | 274 | async def test_should_work_in_persistent_context( | CODE |
| LOW⚡ | tests/async/test_defaultbrowsercontext.py | 286 | async def test_should_support_color_scheme_option( | CODE |
| LOW⚡ | tests/async/test_defaultbrowsercontext.py | 294 | async def test_should_support_timezone_id_option( | CODE |
| LOW⚡ | tests/async/test_defaultbrowsercontext.py | 304 | async def test_should_support_locale_option( | CODE |
| LOW⚡ | tests/async/test_defaultbrowsercontext.py | 311 | async def test_should_support_geolocation_and_permission_option( | CODE |
| LOW⚡ | tests/async/test_defaultbrowsercontext.py | 394 | async def test_should_have_default_url_when_launching_browser( | CODE |
| LOW⚡ | tests/async/test_defaultbrowsercontext.py | 403 | async def test_should_throw_if_page_argument_is_passed( | CODE |
| LOW⚡ | tests/async/test_defaultbrowsercontext.py | 412 | async def test_should_fire_close_event_for_a_persistent_context( | CODE |
| LOW⚡ | tests/async/test_defaultbrowsercontext.py | 422 | async def test_should_support_reduced_motion( | CODE |
| LOW⚡ | tests/async/test_defaultbrowsercontext.py | 430 | async def test_should_support_har_option( | CODE |
| LOW | tests/async/test_defaultbrowsercontext.py | 58 | async def test_context_cookies_should_work( | CODE |
| LOW | tests/async/test_defaultbrowsercontext.py | 87 | async def test_context_add_cookies_should_work( | CODE |
| LOW | tests/async/test_defaultbrowsercontext.py | 119 | async def test_context_clear_cookies_should_work( | CODE |
| LOW | tests/async/test_defaultbrowsercontext.py | 138 | async def test_should_not_block_third_party_cookies( | CODE |
| LOW | tests/async/test_defaultbrowsercontext.py | 218 | async def test_should_support_bypass_csp_option( | CODE |
| LOW | tests/async/test_defaultbrowsercontext.py | 228 | async def test_should_support_javascript_enabled_option( | CODE |
| LOW | tests/async/test_defaultbrowsercontext.py | 242 | async def test_should_support_http_credentials_option( | CODE |
| LOW | tests/async/test_defaultbrowsercontext.py | 327 | async def test_should_support_ignore_https_errors_option( | CODE |
| LOW | tests/async/test_defaultbrowsercontext.py | 337 | async def test_should_support_extra_http_headers_option( | CODE |
| LOW | tests/async/test_defaultbrowsercontext.py | 349 | async def test_should_accept_user_data_dir( | CODE |
| LOW | tests/async/test_browsercontext_request_fallback.py | 57 | async def test_should_fall_back_async_delayed( | CODE |
| LOW⚡ | tests/async/test_browsercontext_request_fallback.py | 93 | async def test_should_fall_back_after_exception( | CODE |
| LOW⚡ | tests/async/test_browsercontext_request_fallback.py | 109 | async def test_should_amend_http_headers( | CODE |
| LOW | tests/async/test_browsercontext_request_fallback.py | 133 | async def test_should_delete_header_with_undefined_value( | CODE |
| LOW | tests/async/test_browsercontext_request_fallback.py | 208 | async def test_should_override_request_url( | CODE |
| LOW | tests/async/test_browsercontext_request_fallback.py | 244 | async def test_should_amend_post_data(page: Page, context: BrowserContext, server: Server) -> None: | CODE |
| LOW | tests/async/test_browsercontext_request_fallback.py | 264 | async def test_should_amend_binary_post_data( | CODE |
| LOW⚡ | tests/async/test_add_init_script.py | 23 | async def test_add_init_script_evaluate_before_anything_else_on_the_page( | CODE |
| LOW⚡ | tests/async/test_add_init_script.py | 32 | async def test_add_init_script_work_with_a_path(page: Page, assetdir: Path) -> None: | CODE |
| LOW⚡ | tests/async/test_add_init_script.py | 39 | async def test_add_init_script_work_with_content(page: Page) -> None: | CODE |
| 1018 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | settings/camoufox.cfg | 441 | // CAMOUFOX: Removed pref to disable pdf.js | COMMENT |
| LOW | settings/camoufox.cfg | 461 | // ------- | COMMENT |
| LOW | settings/camoufox.cfg | 601 | // (bug 1424372) | COMMENT |
| LOW | additions/juggler/NetworkObserver.js | 121 | this.navigationId = redirectedFrom.navigationId; | COMMENT |
| LOW | additions/juggler/pipe/nsRemoteDebuggingPipe.cpp | 1 | /* This Source Code Form is subject to the terms of the Mozilla Public | COMMENT |
| LOW | additions/juggler/screencast/nsScreencastService.cpp | 1 | /* This Source Code Form is subject to the terms of the Mozilla Public | COMMENT |
| LOW | additions/juggler/screencast/HeadlessWindowCapturer.h | 1 | /* This Source Code Form is subject to the terms of the Mozilla Public | COMMENT |
| LOW | additions/camoucfg/json.hpp | 21 | #include <algorithm> // all_of, find, for_each | COMMENT |
| LOW | additions/camoucfg/json.hpp | 41 | // SPDX-License-Identifier: MIT | COMMENT |
| LOW | additions/camoucfg/json.hpp | 61 | #if defined(NLOHMANN_JSON_VERSION_MAJOR) && defined(NLOHMANN_JSON_VERSION_MINOR) && defined(NLOHMANN_JSON_VERSION_PA | COMMENT |
| LOW | additions/camoucfg/json.hpp | 81 | #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS _diag | COMMENT |
| LOW | additions/camoucfg/json.hpp | 141 | #endif | COMMENT |
| LOW | additions/camoucfg/json.hpp | 161 | #include <array> // array | COMMENT |
| LOW | additions/camoucfg/json.hpp | 181 | COMMENT | |
| LOW | additions/camoucfg/json.hpp | 201 | COMMENT | |
| LOW | additions/camoucfg/json.hpp | 221 | // __ _____ _____ _____ | COMMENT |
| LOW | additions/camoucfg/json.hpp | 321 | // __ _____ _____ _____ | COMMENT |
| LOW | additions/camoucfg/json.hpp | 341 | #undef JSON_HEDLEY_STRINGIFY_EX | COMMENT |
| LOW | additions/camoucfg/json.hpp | 361 | #undef JSON_HEDLEY_CONCAT3_EX | COMMENT |
| LOW | additions/camoucfg/json.hpp | 381 | #undef JSON_HEDLEY_VERSION_DECODE_MINOR | COMMENT |
| LOW | additions/camoucfg/json.hpp | 401 | #endif | COMMENT |
| LOW | additions/camoucfg/json.hpp | 421 | #endif | COMMENT |
| LOW | additions/camoucfg/json.hpp | 441 | #if defined(JSON_HEDLEY_INTEL_VERSION_CHECK) | COMMENT |
| LOW | additions/camoucfg/json.hpp | 461 | #define JSON_HEDLEY_INTEL_CL_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_INTEL_CL_VERSION >= JSON_HEDLEY_VERSION_E | COMMENT |
| LOW | additions/camoucfg/json.hpp | 481 | COMMENT | |
| LOW | additions/camoucfg/json.hpp | 501 | #define JSON_HEDLEY_SUNPRO_VERSION_CHECK(major,minor,patch) (0) | COMMENT |
| LOW | additions/camoucfg/json.hpp | 521 | #undef JSON_HEDLEY_ARM_VERSION | COMMENT |
| LOW | additions/camoucfg/json.hpp | 541 | #if defined(__ibmxl__) | COMMENT |
| LOW | additions/camoucfg/json.hpp | 561 | #if \ | COMMENT |
| LOW | additions/camoucfg/json.hpp | 581 | COMMENT | |
| LOW | additions/camoucfg/json.hpp | 601 | #if defined(__TI_COMPILER_VERSION__) && defined(__MSP430__) | COMMENT |
| LOW | additions/camoucfg/json.hpp | 621 | #if defined(JSON_HEDLEY_TI_ARMCL_VERSION_CHECK) | COMMENT |
| LOW | additions/camoucfg/json.hpp | 641 | #define JSON_HEDLEY_TI_CL6X_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CL6X_VERSION >= JSON_HEDLEY_VERSION_ENC | COMMENT |
| LOW | additions/camoucfg/json.hpp | 661 | COMMENT | |
| LOW | additions/camoucfg/json.hpp | 681 | #if defined(_CRAYC) | COMMENT |
| LOW | additions/camoucfg/json.hpp | 701 | #if defined(__IAR_SYSTEMS_ICC__) | COMMENT |
| LOW | additions/camoucfg/json.hpp | 721 | #if defined(__TINYC__) | COMMENT |
| LOW | additions/camoucfg/json.hpp | 741 | #if defined(JSON_HEDLEY_DMC_VERSION_CHECK) | COMMENT |
| LOW | additions/camoucfg/json.hpp | 761 | #define JSON_HEDLEY_COMPCERT_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_COMPCERT_VERSION >= JSON_HEDLEY_VERSION_E | COMMENT |
| LOW | additions/camoucfg/json.hpp | 781 | COMMENT | |
| LOW | additions/camoucfg/json.hpp | 821 | #undef JSON_HEDLEY_GCC_VERSION_CHECK | COMMENT |
| LOW | additions/camoucfg/json.hpp | 841 | COMMENT | |
| LOW | additions/camoucfg/json.hpp | 861 | #undef JSON_HEDLEY_HAS_CPP_ATTRIBUTE | COMMENT |
| LOW | additions/camoucfg/json.hpp | 881 | (!defined(JSON_HEDLEY_MSVC_VERSION) || JSON_HEDLEY_MSVC_VERSION_CHECK(19,20,0)) | COMMENT |
| LOW | additions/camoucfg/json.hpp | 901 | #else | COMMENT |
| LOW | additions/camoucfg/json.hpp | 921 | #endif | COMMENT |
| LOW | additions/camoucfg/json.hpp | 941 | #if defined(JSON_HEDLEY_GNUC_HAS_FEATURE) | COMMENT |
| LOW | additions/camoucfg/json.hpp | 961 | #endif | COMMENT |
| LOW | additions/camoucfg/json.hpp | 981 | #define JSON_HEDLEY_GCC_HAS_EXTENSION(extension,major,minor,patch) __has_extension(extension) | COMMENT |
| LOW | additions/camoucfg/json.hpp | 1001 | #define JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,mi | COMMENT |
| LOW | additions/camoucfg/json.hpp | 1021 | COMMENT | |
| LOW | additions/camoucfg/json.hpp | 1061 | #define JSON_HEDLEY_PRAGMA(value) __pragma(value) | COMMENT |
| LOW | additions/camoucfg/json.hpp | 1081 | #elif \ | COMMENT |
| LOW | additions/camoucfg/json.hpp | 1101 | #else | COMMENT |
| LOW | additions/camoucfg/json.hpp | 1141 | #endif | COMMENT |
| LOW | additions/camoucfg/json.hpp | 1161 | COMMENT | |
| LOW | additions/camoucfg/json.hpp | 1181 | #undef JSON_HEDLEY_CPP_CAST | COMMENT |
| LOW | additions/camoucfg/json.hpp | 1201 | COMMENT | |
| LOW | additions/camoucfg/json.hpp | 1241 | #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("warn(disable:2241)") | COMMENT |
| LOW | additions/camoucfg/json.hpp | 1261 | #elif \ | COMMENT |
| 198 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/patches/config-overrides.py | 63 | results.push(ctx.measureText(testStr).width); | STRING |
| HIGH⚡ | tests/async/test_jshandle.py | 131 | undefined: undefined, | STRING |
| HIGH⚡ | tests/async/test_jshandle.py | 132 | null: null, | STRING |
| HIGH⚡ | tests/async/test_navigation.py | 794 | await page.evaluate("window.open('about:blank', null, 'noopener') && 1") | CODE |
| HIGH⚡ | tests/async/test_navigation.py | 818 | await page.evaluate("url => window.open(url, null, 'noopener') && 1", server.EMPTY_PAGE) | CODE |
| HIGH⚡ | tests/async/test_navigation.py | 196 | window.addEventListener('beforeunload', () => history.replaceState(null, 'initial', window.location.href), false | STRING |
| HIGH | tests/async/test_input.py | 331 | e.addEventListener('input', () => events.push('input')); | STRING |
| HIGH | tests/async/test_input.py | 332 | e.addEventListener('change', () => events.push('change')); | STRING |
| HIGH | tests/async/test_console.py | 144 | if (!frame.contentDocument || frame.contentDocument.readyState !== 'complete') | STRING |
| HIGH | tests/async/test_fetch_global.py | 441 | ({"foo": None}, '{"foo": null}'), | CODE |
| HIGH⚡ | tests/async/test_page_evaluate.py | 154 | '({ a, b }) => Object.is(a, null) && Object.is(b, "foo")', | CODE |
| HIGH | tests/async/test_emulation_focus.py | 72 | document.onclick = () => window.click_count = (window.click_count || 0) + 1; | CODE |
| HIGH | tests/async/test_emulation_focus.py | 141 | element.onfocus = element.onblur = (e) => self._events.push(e.type); | CODE |
| HIGH | tests/async/test_page.py | 1218 | events.push({ | STRING |
| HIGH | tests/async/test_page.py | 1225 | events.push({ | STRING |
| HIGH | tests/async/test_locators.py | 714 | events.push({ | CODE |
| HIGH | tests/async/test_locators.py | 721 | events.push({ | CODE |
| HIGH | tests/async/test_page_route.py | 216 | request.send(null); | STRING |
| HIGH⚡ | tests/async/test_keyboard.py | 108 | document.addEventListener('keydown', e => events.push(e.type)); | STRING |
| HIGH⚡ | tests/async/test_keyboard.py | 109 | document.addEventListener('keyup', e => events.push(e.type)); | STRING |
| HIGH⚡ | tests/async/test_keyboard.py | 110 | document.addEventListener('keypress', e => events.push(e.type)); | STRING |
| HIGH⚡ | tests/async/test_keyboard.py | 111 | document.addEventListener('input', e => events.push(e.type)); | STRING |
| HIGH | tests/async/test_keyboard.py | 40 | lastEvent.keyIdentifier = 'keyIdentifier' in e && e.keyIdentifier; | STRING |
| HIGH | tests/async/test_keyboard.py | 450 | if (event.key === 'a' && (event.metaKey || event.ctrlKey)) | STRING |
| HIGH | tests/async/test_headful.py | 156 | """() => window.outerWidth === 500 && window.outerHeight === 450""" | STRING |
| HIGH | tests/async/test_tap.py | 234 | target.addEventListener(event, () => events.push(event), false); | STRING |
| HIGH | tests/async/test_browsertype_connect.py | 294 | e.addEventListener('input', () => events.push('input')); | STRING |
| HIGH | tests/async/test_browsertype_connect.py | 295 | e.addEventListener('change', () => events.push('change')); | STRING |
| HIGH | pythonlib/tests/test_virtdisplay.py | 7 | cd pythonlib && python -m pytest tests/test_virtdisplay.py -v | STRING |
| HIGH | scripts/bootstrap.py | 33 | Try running `cd %s && hg pull https://hg.mozilla.org/mozilla-unified` manually, | CODE |
| HIGH | scripts/patch.py | 52 | run('git clean -fdx && ./mach clobber && git reset --hard unpatched', exit_on_fail=False) | CODE |
| HIGH | build-tester/scripts/runner.py | 125 | hardwareConcurrency: navigator.hardwareConcurrency || 0, | CODE |
| HIGH | build-tester/scripts/runner.py | 244 | " Run: pip install playwright && python -m playwright install firefox\n" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | service-tester/_constants.py | 4 | # ─── Paths ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | service-tester/_constants.py | 9 | # ─── Check category labels ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | service-tester/_constants.py | 35 | # ─── ANSI colors ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | service-tester/_constants.py | 59 | # ─── Certificate box drawing ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | service-tester/_constants.py | 81 | # ─── ASCII art ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | service-tester/run_tests.py | 186 | # ── Final summary ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | service-tester/run_tests.sh | 126 | # ── Phase 1: locally compiled binary ───────────────────────────────────────── | COMMENT |
| MEDIUM | service-tester/run_tests.sh | 143 | # ── Phase 2: fetched binary (--browser-version) ────────────────────────────── | COMMENT |
| MEDIUM | scripts/install-deps.sh | 20 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/install-deps.sh | 40 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/install-deps.sh | 54 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/install-deps.sh | 56 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/install-deps.sh | 92 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/install-deps.sh | 94 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/install-deps.sh | 110 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/install-deps.sh | 112 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/install-deps.sh | 147 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/install-deps.sh | 149 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/install-deps.sh | 178 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | build-tester/scripts/runner.py | 40 | # ─── Per-Context Phase ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | build-tester/scripts/runner.py | 172 | # ─── Main Test Runner ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | build-tester/scripts/runner.py | 253 | # ── Per-context phase ────────────────────────────────────────────── | COMMENT |
| MEDIUM | build-tester/scripts/runner.py | 275 | # ── Global phase ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | build-tester/scripts/runner.py | 340 | # ── Final summary ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | build-tester/scripts/grading.py | 8 | # ─── Grading ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | build-tester/scripts/grading.py | 71 | # ─── Match Verification ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | build-tester/scripts/grading.py | 119 | # ─── Cross-Profile Analysis ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | build-tester/scripts/certificate.py | 16 | # ─── Box Drawing ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | build-tester/scripts/certificate.py | 61 | # ─── Profile Result Printing ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | build-tester/scripts/certificate.py | 84 | # ─── Certificate Generation ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | build-tester/scripts/certificate.py | 218 | # ─── ASCII Certificate Display ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | build-tester/scripts/presets.py | 12 | # ─── Preset Generation ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | build-tester/scripts/presets.py | 81 | # ─── Preset Injection ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | build-tester/scripts/presets.py | 102 | # ─── Profile Config ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | build-tester/scripts/constants.py | 7 | # ─── Test Configuration ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | build-tester/scripts/constants.py | 51 | # ─── ANSI Colors ────────────────────────────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | jsonvv/jsonvv/validator.py | 69 | except Exception as e: | CODE |
| LOW | jsonvv/jsonvv/types.py | 177 | except Exception: | CODE |
| LOW | tests/conftest.py | 235 | except Exception: | CODE |
| LOW⚡ | tests/server.py | 250 | except Exception: | CODE |
| LOW | tests/server.py | 268 | except Exception: | CODE |
| LOW⚡ | tests/async/test_browsercontext_request_fallback.py | 101 | except Exception: | CODE |
| LOW | tests/async/test_page_evaluate.py | 230 | except Exception as e: | CODE |
| LOW | tests/async/test_request_continue.py | 101 | except Exception as e: | CODE |
| LOW⚡ | tests/async/test_page_request_fallback.py | 135 | except Exception: | CODE |
| LOW | pythonlib/camoufox/geolocation.py | 184 | except Exception as e: | CODE |
| LOW | pythonlib/camoufox/multiversion.py | 451 | except Exception as e: | CODE |
| MEDIUM | pythonlib/camoufox/multiversion.py | 452 | rprint(f"Error: {e}", fg="red") | CODE |
| LOW | pythonlib/camoufox/addons.py | 91 | except Exception as e: | CODE |
| LOW | pythonlib/camoufox/virtdisplay.py | 122 | except Exception: | CODE |
| LOW | pythonlib/camoufox/pkgman.py | 113 | except Exception: | CODE |
| LOW | pythonlib/camoufox/pkgman.py | 421 | except Exception as e: | CODE |
| LOW | pythonlib/camoufox/pkgman.py | 655 | except Exception as e: | CODE |
| MEDIUM | pythonlib/camoufox/utils.py | 87 | print(f"Error updating config: {e}") | CODE |
| LOW | pythonlib/camoufox/utils.py | 99 | except Exception as e: | CODE |
| MEDIUM | pythonlib/camoufox/utils.py | 100 | print(f"Error setting {env_name}: {e}") | CODE |
| LOW | pythonlib/camoufox/utils.py | 219 | except Exception: | CODE |
| LOW | pythonlib/camoufox/utils.py | 362 | except Exception: | CODE |
| LOW | pythonlib/camoufox/utils.py | 388 | except Exception: | CODE |
| LOW | pythonlib/camoufox/utils.py | 638 | except Exception: | CODE |
| LOW | pythonlib/camoufox/utils.py | 646 | except Exception: | CODE |
| LOW | pythonlib/camoufox/sync_api.py | 136 | except Exception: | CODE |
| LOW | pythonlib/camoufox/async_api.py | 139 | except Exception: | CODE |
| LOW | pythonlib/camoufox/fingerprints.py | 334 | except Exception: | CODE |
| LOW | pythonlib/camoufox/fingerprints.py | 347 | except Exception: | CODE |
| LOW | pythonlib/camoufox/fingerprints.py | 494 | except Exception: | CODE |
| LOW | pythonlib/camoufox/fingerprints.py | 501 | except Exception: | CODE |
| LOW | pythonlib/camoufox/fingerprints.py | 530 | except Exception: | CODE |
| LOW | pythonlib/camoufox/__main__.py | 117 | except Exception: | CODE |
| LOW | pythonlib/camoufox/__main__.py | 158 | except Exception as e: | CODE |
| LOW | pythonlib/camoufox/__main__.py | 316 | except Exception as e: | CODE |
| MEDIUM | pythonlib/camoufox/__main__.py | 322 | rprint(f"Error: {msg}", fg="red") | CODE |
| LOW | pythonlib/camoufox/gui/backend.py | 86 | except Exception as e: | CODE |
| LOW | pythonlib/camoufox/gui/backend.py | 147 | except Exception as e: | CODE |
| LOW | pythonlib/camoufox/gui/backend.py | 162 | except Exception as e: | CODE |
| LOW | pythonlib/camoufox/gui/backend.py | 568 | except Exception: | CODE |
| LOW | pythonlib/camoufox/gui/backend.py | 733 | except Exception as e: | CODE |
| LOW | pythonlib/camoufox/gui/backend.py | 789 | except Exception: | CODE |
| LOW | pythonlib/camoufox/gui/backend.py | 860 | except Exception as e: | CODE |
| LOW | pythonlib/camoufox/gui/backend.py | 916 | except Exception: | CODE |
| MEDIUM | pythonlib/camoufox/gui/backend.py | 56 | def run(self): | CODE |
| MEDIUM | pythonlib/camoufox/gui/backend.py | 101 | def run(self): | CODE |
| MEDIUM | pythonlib/camoufox/gui/backend.py | 156 | def run(self): | CODE |
| MEDIUM | pythonlib/camoufox/gui/backend.py | 563 | def _pkg_version(pkg): | CODE |
| LOW | pythonlib/tests/test_virtdisplay.py | 45 | except Exception: | CODE |
| LOW | service-tester/run_tests.py | 122 | except Exception as e: | CODE |
| LOW | service-tester/run_tests.py | 168 | except Exception as e: | CODE |
| LOW⚡ | service-tester/run_tests.py | 179 | except Exception: | CODE |
| LOW⚡ | service-tester/run_tests.py | 182 | except Exception as e: | CODE |
| LOW | service-tester/_proxies.py | 58 | except Exception: | CODE |
| MEDIUM | scripts/package.py | 145 | print(f"Error: No package file found matching pattern: {search_path}") | CODE |
| MEDIUM | scripts/package.py | 152 | print(f"Error: No package file found matching pattern: {package_pattern}") | CODE |
| LOW | scripts/bootstrap.py | 424 | except Exception: | CODE |
| LOW | scripts/benchmark/benchmark.py | 22 | except Exception as e: | CODE |
| MEDIUM | scripts/benchmark/benchmark.py | 23 | print(f"Error getting Firefox memory: {e}") | CODE |
| LOW | build-tester/scripts/runner.py | 73 | except Exception as e: | CODE |
| 9 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | jsonvv/jsonvv/__init__.py | 1 | CODE | |
| LOW | jsonvv/jsonvv/__init__.py | 1 | CODE | |
| LOW | jsonvv/jsonvv/__init__.py | 1 | CODE | |
| LOW | jsonvv/jsonvv/__init__.py | 1 | CODE | |
| LOW | jsonvv/jsonvv/__init__.py | 1 | CODE | |
| LOW | jsonvv/jsonvv/__init__.py | 1 | CODE | |
| LOW | jsonvv/jsonvv/__init__.py | 1 | CODE | |
| LOW | jsonvv/jsonvv/__init__.py | 10 | CODE | |
| LOW | tests/patches/helpers.py | 10 | CODE | |
| LOW | tests/patches/helpers.py | 10 | CODE | |
| LOW | tests/async/test_navigation.py | 23 | CODE | |
| LOW | tests/async/test_download.py | 18 | CODE | |
| LOW | tests/async/test_browsercontext_proxy.py | 15 | CODE | |
| LOW | tests/async/test_browsercontext_proxy.py | 17 | CODE | |
| LOW | tests/async/test_browsercontext_proxy.py | 17 | CODE | |
| LOW | tests/async/test_browsercontext_proxy.py | 22 | CODE | |
| LOW | tests/async/test_browsercontext_route.py | 17 | CODE | |
| LOW | tests/async/test_browsercontext_route.py | 17 | CODE | |
| LOW | tests/async/test_fetch_browser_context.py | 18 | CODE | |
| LOW | tests/async/test_request_continue.py | 16 | CODE | |
| LOW | tests/async/test_worker.py | 21 | CODE | |
| LOW | tests/async/test_proxy.py | 15 | CODE | |
| LOW | tests/async/test_proxy.py | 17 | CODE | |
| LOW | tests/async/test_proxy.py | 21 | CODE | |
| LOW | tests/async/test_headful.py | 19 | CODE | |
| LOW | pythonlib/camoufox/__init__.py | 1 | CODE | |
| LOW | pythonlib/camoufox/__init__.py | 2 | CODE | |
| LOW | pythonlib/camoufox/__init__.py | 2 | CODE | |
| LOW | pythonlib/camoufox/__init__.py | 2 | CODE | |
| LOW | pythonlib/camoufox/__init__.py | 3 | CODE | |
| LOW | pythonlib/camoufox/__init__.py | 3 | CODE | |
| LOW | pythonlib/camoufox/__init__.py | 3 | CODE | |
| LOW | pythonlib/camoufox/__init__.py | 4 | CODE | |
| LOW | pythonlib/camoufox/pkgman.py | 11 | CODE | |
| LOW | pythonlib/camoufox/sync_api.py | 3 | CODE | |
| LOW | pythonlib/camoufox/async_api.py | 5 | CODE | |
| LOW | pythonlib/camoufox/fingerprints.py | 6 | CODE | |
| LOW | pythonlib/camoufox/__main__.py | 23 | CODE | |
| LOW | pythonlib/camoufox/webgl/__init__.py | 1 | CODE | |
| LOW | pythonlib/camoufox/gui/__init__.py | 14 | CODE | |
| LOW | service-tester/_certificate.py | 11 | CODE | |
| LOW | service-tester/_certificate.py | 11 | CODE | |
| LOW | service-tester/_grading.py | 3 | CODE | |
| LOW | scripts/bootstrap.py | 311 | CODE | |
| LOW | scripts/patch.py | 14 | CODE | |
| LOW | scripts/patch.py | 20 | CODE | |
| LOW | build-tester/scripts/certificate.py | 11 | CODE | |
| LOW | build-tester/scripts/presets.py | 9 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | jsonvv/jsonvv/validator.py | 105 | CODE | |
| LOW | jsonvv/jsonvv/validator.py | 31 | CODE | |
| LOW | jsonvv/jsonvv/types.py | 87 | CODE | |
| LOW | jsonvv/jsonvv/parser.py | 73 | CODE | |
| LOW | jsonvv/jsonvv/parser.py | 237 | CODE | |
| LOW | jsonvv/jsonvv/strings.py | 10 | CODE | |
| LOW | tests/utils.py | 21 | CODE | |
| LOW | tests/async/test_navigation.py | 1046 | CODE | |
| LOW | tests/async/test_network.py | 610 | CODE | |
| LOW | pythonlib/camoufox/geolocation.py | 130 | CODE | |
| LOW | pythonlib/camoufox/multiversion.py | 278 | CODE | |
| LOW | pythonlib/camoufox/multiversion.py | 386 | CODE | |
| LOW | pythonlib/camoufox/virtdisplay.py | 54 | CODE | |
| LOW | pythonlib/camoufox/pkgman.py | 797 | CODE | |
| LOW | pythonlib/camoufox/pkgman.py | 855 | CODE | |
| LOW | pythonlib/camoufox/pkgman.py | 407 | CODE | |
| LOW | pythonlib/camoufox/utils.py | 163 | CODE | |
| LOW | pythonlib/camoufox/utils.py | 400 | CODE | |
| LOW | pythonlib/camoufox/fingerprints.py | 263 | CODE | |
| LOW | pythonlib/camoufox/fingerprints.py | 439 | CODE | |
| LOW | pythonlib/camoufox/__main__.py | 74 | CODE | |
| LOW | pythonlib/camoufox/__main__.py | 329 | CODE | |
| LOW | pythonlib/camoufox/__main__.py | 428 | CODE | |
| LOW | pythonlib/camoufox/__main__.py | 684 | CODE | |
| LOW | pythonlib/camoufox/gui/backend.py | 571 | CODE | |
| LOW | pythonlib/camoufox/gui/backend.py | 654 | CODE | |
| LOW | pythonlib/camoufox/gui/backend.py | 868 | CODE | |
| LOW | pythonlib/camoufox/gui/backend.py | 935 | CODE | |
| LOW | service-tester/_certificate.py | 52 | CODE | |
| LOW | service-tester/_certificate.py | 116 | CODE | |
| LOW | service-tester/run_tests.py | 43 | CODE | |
| LOW | service-tester/_grading.py | 19 | CODE | |
| LOW | service-tester/_grading.py | 32 | CODE | |
| LOW | scripts/package.py | 16 | CODE | |
| LOW | scripts/patch.py | 44 | CODE | |
| LOW | scripts/patch.py | 107 | CODE | |
| LOW | scripts/run-pw.py | 54 | CODE | |
| LOW | scripts/developer.py | 29 | CODE | |
| LOW | scripts/developer.py | 185 | CODE | |
| LOW | build-tester/scripts/runner.py | 42 | CODE | |
| LOW | build-tester/scripts/runner.py | 174 | CODE | |
| LOW | build-tester/scripts/grading.py | 23 | CODE | |
| LOW | build-tester/scripts/grading.py | 36 | CODE | |
| LOW | build-tester/scripts/certificate.py | 86 | CODE | |
| LOW | build-tester/scripts/certificate.py | 111 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | jsonvv/jsonvv/validator.py | 17 | # Create a registry for reference types and parsed type definitions | COMMENT |
| MEDIUM | jsonvv/jsonvv/validator.py | 115 | # Create a new registry for this scope, inheriting from parent if it exists | COMMENT |
| MEDIUM | jsonvv/jsonvv/parser.py | 292 | # Create a DictType for dictionary references | COMMENT |
| MEDIUM | patches/librewolf/pack_vs.py | 44 | # Create an archive containing all the paths in lowercase form for | COMMENT |
| MEDIUM | patches/librewolf/pack_vs.py | 76 | # Create an overlay file for use with clang's -ivfsoverlay flag. | COMMENT |
| MEDIUM | tests/async/test_browsercontext.py | 65 | # Create a page in first incognito context. | COMMENT |
| MEDIUM | tests/async/test_browsercontext.py | 78 | # Create a page in second incognito context. | COMMENT |
| MEDIUM | pythonlib/camoufox/addons.py | 54 | # Create a temporary file to store the downloaded zip | COMMENT |
| MEDIUM | scripts/patch.py | 58 | # Create the base mozconfig file | COMMENT |
| MEDIUM | scripts/developer.py | 33 | # Create a display list with status labels and a reverse lookup mapping | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/async/test_defaultbrowsercontext.py | 0 | () => { document.cookie = 'username=john doe'; return document.cookie; } | STRING |
| HIGH | tests/async/test_browsercontext_cookies.py | 0 | () => { document.cookie = 'username=john doe'; return document.cookie; } | STRING |
| HIGH | tests/async/test_headful.py | 0 | () => { document.cookie = 'username=john doe'; return document.cookie; } | STRING |
| HIGH | tests/async/test_defaultbrowsercontext.py | 0 | src => { let fulfill; const promise = new promise(x => fulfill = x); const iframe = document.createelement('iframe'); do | STRING |
| HIGH | tests/async/test_headful.py | 0 | src => { let fulfill; const promise = new promise(x => fulfill = x); const iframe = document.createelement('iframe'); do | STRING |
| HIGH | tests/async/test_browsercontext_add_cookies.py | 0 | src => { let fulfill; const promise = new promise(x => fulfill = x); const iframe = document.createelement('iframe'); do | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | jsonvv/jsonvv/parser.py | 270 | # Check if all required patterns were matched | COMMENT |
| LOW | jsonvv/jsonvv/strings.py | 21 | # Check if comma is escaped | COMMENT |
| LOW | tests/run-tests.sh | 26 | # Check if venv exists, if not run setup-venv.sh | COMMENT |
| LOW | bundle/fonts/cleanfonts.sh | 19 | # Check if the file exists to avoid errors if no .ttf or .otf files are found | COMMENT |
| LOW | pythonlib/camoufox/addons.py | 77 | # Check if the addon is already extracted | COMMENT |
| LOW | pythonlib/camoufox/__main__.py | 338 | # Check if latest for this channel is already installed | COMMENT |
| LOW | pythonlib/camoufox/__main__.py | 916 | # Check if installed version is the latest in its own channel | COMMENT |
| LOW | scripts/patch.py | 247 | # Check if the folder exists | COMMENT |
| LOW | scripts/copy-additions.sh | 6 | # Check if correct number of arguments are provided | COMMENT |
| LOW | scripts/developer.py | 216 | # Check if the patch can be applied or reversed | COMMENT |
| LOW | scripts/developer.py | 265 | # Add the patch to the list | COMMENT |
| LOW | scripts/developer.py | 285 | # Display message | COMMENT |
| LOW | scripts/generate-assets-car.sh | 13 | # Check if running on macOS | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/async/test_defaultbrowsercontext.py | 178 | "value": "John Doe", | CODE |
| LOW | tests/async/test_defaultbrowsercontext.py | 76 | "value": "John Doe", | CODE |
| LOW | tests/async/test_defaultbrowsercontext.py | 99 | "value": "John Doe", | CODE |
| LOW | tests/async/test_defaultbrowsercontext.py | 108 | "value": "John Doe", | CODE |
| LOW | tests/async/test_selectors_get_by.py | 29 | input.setAttribute('placeholder', 'hello my\\nwo"rld'); | STRING |
| LOW | tests/async/test_selectors_get_by.py | 49 | input.setAttribute('placeholder', 'hello my\\nworld'); | STRING |
| LOW | tests/async/test_selectors_get_by.py | 70 | input.setAttribute('placeholder', 'foo >> bar'); | STRING |
| LOW | tests/async/test_browsercontext_cookies.py | 46 | "value": "John Doe", | CODE |
| LOW | tests/async/test_browsercontext_cookies.py | 89 | "value": "John Doe", | CODE |
| LOW | tests/async/test_browsercontext_cookies.py | 184 | "value": "John Doe", | CODE |
| LOW⚡ | tests/async/test_fetch_browser_context.py | 69 | "value": "John Doe", | CODE |
| LOW⚡ | tests/async/test_fetch_browser_context.py | 128 | "value": "John Doe", | CODE |
| LOW | tests/async/test_headful.py | 129 | "value": "John Doe", | CODE |
| LOW | tests/async/test_browsercontext_add_cookies.py | 409 | "value": "John Doe", | CODE |
| LOW | tests/async/test_accessibility.py | 78 | {"role": "textbox", "name": "placeholder", "value": "and a value"}, | CODE |
| LOW | tests/async/test_accessibility.py | 81 | "name": "placeholder", | CODE |
| LOW | tests/async/test_accessibility.py | 98 | {"role": "textbox", "name": "placeholder", "value": "and a value"}, | CODE |
| LOW | tests/async/test_accessibility.py | 102 | "placeholder" | CODE |
| LOW | tests/async/test_accessibility.py | 35 | <input aria-placeholder="placeholder" value="and a value" /> | STRING |
| LOW | tests/async/test_accessibility.py | 37 | <input aria-placeholder="placeholder" value="and a value" aria-describedby="desc" /> | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | jsonvv/jsonvv/__init__.py | 12 | __all__ = [ | CODE |
| LOW | tests/server.py | 210 | def set_auth(self, path: str, username: str, password: str) -> None: | CODE |
| LOW | tests/server.py | 213 | def set_csp(self, path: str, value: str) -> None: | CODE |
| LOW⚡ | tests/server.py | 224 | def set_route(self, path: str, callback: Callable[[TestServerRequest], Any]) -> None: | CODE |
| LOW⚡ | tests/server.py | 230 | def set_redirect(self, from_: str, to: str) -> None: | CODE |
| LOW | pythonlib/camoufox/multiversion.py | 350 | def set_active(relative_path: str) -> None: | CODE |
| LOW | pythonlib/camoufox/__init__.py | 6 | __all__ = [ | CODE |
| LOW | pythonlib/camoufox/pkgman.py | 584 | def set_version(self) -> None: | CODE |
| LOW | pythonlib/camoufox/utils.py | 229 | def update_fonts(config: Dict[str, Any], target_os: str) -> None: | CODE |
| LOW | pythonlib/camoufox/utils.py | 297 | def set_into(target: Dict[str, Any], key: str, value: Any) -> None: | CODE |
| LOW | pythonlib/camoufox/webgl/__init__.py | 3 | __all__ = ['sample_webgl'] | CODE |
| LOW | pythonlib/camoufox/gui/__init__.py | 16 | __all__ = ['main'] | CODE |
| LOW | scripts/_mixin.py | 124 | __all__ = [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/patch-upgrading-guide.md | 69 | ### Step 1: Apply Base Patch and Identify Rejects | COMMENT |
| LOW | docs/patch-upgrading-guide.md | 82 | ### Step 2: Analyze Each Reject File | COMMENT |
| LOW⚡ | docs/patch-upgrading-guide.md | 95 | ### Step 3: Locate the Correct Position in Firefox Code | COMMENT |
| LOW⚡ | docs/patch-upgrading-guide.md | 103 | ### Step 4: Apply Changes Manually | COMMENT |
| LOW⚡ | docs/patch-upgrading-guide.md | 107 | ### Step 5: Remove Reject Files | COMMENT |
| LOW⚡ | docs/patch-upgrading-guide.md | 116 | ### Step 6: Generate Updated Patch | COMMENT |
| LOW | docs/patch-upgrading-guide.md | 130 | ### Step 7: Verify Patch Applies Cleanly | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/async/test_navigation.py | 852 | def handle_request(request: TestServerRequest) -> None: | CODE |
| LOW | tests/async/test_network.py | 40 | async def handle_request(route: Route, request: Request) -> None: | CODE |
| LOW | tests/async/test_network.py | 70 | async def handle_request(route: Route, request: Request, intercepted: List[bool]) -> None: | CODE |
| LOW | tests/async/test_network.py | 618 | def handle_request(request: TestServerRequest) -> None: | CODE |
| LOW | tests/async/test_network.py | 715 | def handle_request(request: Request) -> None: | CODE |
| LOW | tests/async/test_page_route.py | 40 | async def handle_request(route: Route, request: Request) -> None: | CODE |
| LOW | tests/async/test_page_route.py | 137 | async def handle_request(route: Route) -> None: | CODE |
| LOW | tests/async/test_page_route.py | 250 | def handle_request(request: Request) -> None: | CODE |
| LOW | tests/async/test_page_route.py | 404 | def handle_request(request: TestServerRequest, hits: List[bool]) -> None: | CODE |
| LOW | tests/async/test_page_route.py | 969 | async def handle_request(route: Route) -> None: | CODE |
| LOW | tests/async/test_page_route.py | 1008 | async def handle_request(route: Route) -> None: | CODE |
| LOW | tests/async/test_browsertype_connect.py | 253 | async def handle_request(route: Route) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | jsonvv/jsonvv/parser.py | 198 | CODE | |
| LOW | jsonvv/jsonvv/strings.py | 64 | CODE | |
| LOW | jsonvv/jsonvv/strings.py | 36 | CODE | |
| LOW | pythonlib/camoufox/utils.py | 400 | CODE | |
| LOW | pythonlib/camoufox/gui/backend.py | 238 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | pythonlib/camoufox/webgl/sample.py | 17 | Sample a random WebGL vendor/renderer combination and its data based on OS probabilities. Optionally use a spec | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/install-deps.sh | 14 | # Usage: | COMMENT |
| LOW | scripts/install-local-build.sh | 4 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/run-pw.py | 71 | # Or else just use firefox-bin | COMMENT |