A keyboard-driven, vim-like browser based on Python and Qt.
This report presents the forensic synthetic code analysis of qutebrowser/qutebrowser, a Python project with 11,594 GitHub stars. SynthScan v2.0 examined 167,580 lines of code across 726 source files, recording 1249 pattern matches distributed across 15 syntactic categories. The overall adjusted score of 9.3 places this repository in the Low 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 1249 distinct pattern matches across 15 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 | tests/conftest.py | 168 | def pytest_collection_modifyitems(config, items): | CODE |
| LOW | tests/conftest.py | 414 | def pytest_runtest_makereport(item, call): | CODE |
| LOW⚡ | tests/unit/test_qt_machinery.py | 54 | def test_importerror_exceptions(exception: Exception, base: type[Exception]): | CODE |
| LOW⚡ | tests/unit/test_qt_machinery.py | 59 | def test_selectioninfo_set_module_error(): | CODE |
| LOW⚡ | tests/unit/test_qt_machinery.py | 69 | def test_selectioninfo_use_wrapper(): | CODE |
| LOW | tests/unit/test_qt_machinery.py | 121 | def test_selectioninfo_str_wrapper_precedence(order: list[str]): | CODE |
| LOW | tests/unit/test_qt_machinery.py | 346 | def test_autoselect_by_default( | CODE |
| LOW | tests/unit/test_qt_machinery.py | 417 | def test_none_available_implicit( | CODE |
| LOW | tests/unit/test_qt_machinery.py | 441 | def test_none_available_explicit( | CODE |
| LOW | tests/unit/misc/test_ipc.py | 187 | def test_windows_broken_getpass(self, monkeypatch): | CODE |
| LOW⚡ | tests/unit/misc/test_ipc.py | 356 | def test_atime_update_no_name(self, qtbot, caplog, ipc_server): | CODE |
| LOW⚡ | tests/unit/misc/test_ipc.py | 363 | def test_atime_shutdown_typeerror(self, qtbot, ipc_server): | CODE |
| LOW⚡ | tests/unit/misc/test_ipc.py | 369 | def test_vanished_runtime_file(self, qtbot, caplog, ipc_server): | CODE |
| LOW | tests/unit/misc/test_ipc.py | 431 | def test_disconnected_immediately(self, ipc_server, caplog): | CODE |
| LOW | tests/unit/misc/test_ipc.py | 447 | def test_read_line_immediately(self, qtbot, ipc_server, caplog): | CODE |
| LOW | tests/unit/misc/test_ipc.py | 473 | def test_disconnected_without_data(qtbot, connected_socket, | CODE |
| LOW | tests/unit/misc/test_ipc.py | 582 | def test_not_disconnected_immediately(self): | CODE |
| LOW | tests/unit/misc/test_ipc.py | 586 | def test_socket_error_no_server(self): | CODE |
| LOW | tests/unit/misc/test_ipc.py | 610 | def test_ipcserver_socket_none_readyread(ipc_server, caplog): | CODE |
| LOW | tests/unit/misc/test_ipc.py | 620 | def test_ipcserver_socket_none_error(ipc_server, caplog): | CODE |
| LOW | tests/unit/misc/test_ipc.py | 709 | def test_address_in_use_error(self, qlocalserver_mock, qlocalsocket_mock, | CODE |
| LOW | tests/unit/misc/test_ipc.py | 754 | def test_error_while_listening(self, qlocalserver_mock, caplog, args): | CODE |
| LOW | tests/unit/misc/test_ipc.py | 804 | def test_socket_options_address_in_use_problem(qlocalserver, short_tmpdir): | CODE |
| LOW | tests/unit/misc/test_checkpyver.py | 45 | def test_patched_no_errwindow(capfd, monkeypatch): | CODE |
| LOW | tests/unit/misc/test_split.py | 92 | def _parse_split_test_data_str(): | STRING |
| LOW | tests/unit/misc/test_miscwidgets.py | 58 | def test_selection_cursor_left(self, qtbot, cmd_edit): | CODE |
| LOW | tests/unit/misc/test_miscwidgets.py | 159 | def test_cycle_focus_no_inspector(self, splitter): | CODE |
| LOW | tests/unit/misc/test_miscwidgets.py | 185 | def test_cycle_focus_hidden_inspector(self, splitter, fake_inspector): | CODE |
| LOW | tests/unit/misc/test_wmname.py | 21 | def test_load_libwayland_client(): | CODE |
| LOW | tests/unit/misc/test_wmname.py | 29 | def test_load_libwayland_client_error(mocker: pytest_mock.MockerFixture): | CODE |
| LOW | tests/unit/misc/test_wmname.py | 65 | def test_pid_from_fd_getsockopt_error( | CODE |
| LOW⚡ | tests/unit/misc/test_wmname.py | 77 | def test_pid_from_fd_no_so_peercred(monkeypatch: pytest.MonkeyPatch): | CODE |
| LOW⚡ | tests/unit/misc/test_wmname.py | 84 | def test_process_name_from_pid(): | CODE |
| LOW⚡ | tests/unit/misc/test_wmname.py | 91 | def test_process_name_from_pid_invalid(): | CODE |
| LOW | tests/unit/misc/test_wmname.py | 124 | def test_wayland_display_error(libwayland_client_mock: unittest.mock.Mock): | CODE |
| LOW | tests/unit/misc/test_wmname.py | 150 | def test_wayland_get_fd_error( | CODE |
| LOW | tests/unit/misc/test_utilcmds.py | 15 | def test_cmd_repeat_last_initial(mocker, mode_manager): | CODE |
| LOW | tests/unit/misc/test_pastebin.py | 61 | def test_paste_without_parent(data, pbclient): | CODE |
| LOW | tests/unit/misc/test_pastebin.py | 97 | def test_client_success_invalid_http(http, pbclient, qtbot): | CODE |
| LOW | tests/unit/misc/test_sessions.py | 196 | def test_last_window_session_none(self, caplog, sess_man, tmp_path): | CODE |
| LOW | tests/unit/misc/test_earlyinit.py | 15 | def test_init_faulthandler_stderr_none(monkeypatch, attr): | CODE |
| LOW | tests/unit/misc/test_keyhints.py | 108 | def test_suggestions_with_count(keyhint, config_stub, monkeypatch, stubs): | CODE |
| LOW⚡ | tests/unit/misc/test_cmdhistory.py | 107 | def test_nextitem_previtem_chain(hist): | CODE |
| LOW⚡ | tests/unit/misc/test_cmdhistory.py | 115 | def test_nextitem_index_error(hist): | CODE |
| LOW⚡ | tests/unit/misc/test_cmdhistory.py | 122 | def test_previtem_index_error(hist): | CODE |
| LOW | tests/unit/misc/test_cmdhistory.py | 146 | def test_append_empty_history(hist): | CODE |
| LOW | tests/unit/misc/test_guiprocess.py | 142 | def test_start_output_message(proc, qtbot, caplog, message_mock, py_proc, | CODE |
| LOW | tests/unit/misc/test_guiprocess.py | 235 | def test_live_messages_output(qtbot, proc, py_proc, message_mock, | CODE |
| LOW | tests/unit/misc/test_guiprocess.py | 317 | def test_start_detached_error(fake_proc, message_mock, caplog): | CODE |
| LOW | tests/unit/misc/test_guiprocess.py | 339 | def test_double_start_finished(qtbot, proc, py_proc): | CODE |
| LOW | tests/unit/misc/test_guiprocess.py | 479 | def test_exit_unsuccessful_output(qtbot, proc, caplog, py_proc, stream): | STRING |
| LOW | tests/unit/misc/test_guiprocess.py | 494 | def test_exit_successful_output(qtbot, proc, py_proc, stream): | STRING |
| LOW | tests/unit/misc/test_guiprocess.py | 508 | def test_stdout_not_decodable(proc, qtbot, message_mock, py_proc): | STRING |
| LOW | tests/unit/misc/test_sql.py | 131 | def test_sqlite_error_codes_reverse(self): | CODE |
| LOW | tests/unit/misc/test_sql.py | 215 | def test_insert_batch_replace(qtbot, database): | CODE |
| LOW | tests/unit/misc/test_sql.py | 402 | def test_run_batch_missing_binding(self, database): | CODE |
| LOW | tests/unit/misc/test_sql.py | 413 | def test_num_rows_affected_not_active(self, database): | CODE |
| LOW | tests/unit/misc/test_sql.py | 418 | def test_num_rows_affected_select(self, database): | CODE |
| LOW | tests/unit/misc/test_sql.py | 440 | def test_successful_transaction(self, database): | CODE |
| LOW | tests/unit/misc/test_throttle.py | 55 | def test_delayed_immediate_delayed(throttled, func, qtbot): | CODE |
| 672 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | tests/unit/misc/test_ipc.py | 496 | (b'{"args": [], "target_arg": null, "protocol_version": ' + OLD_VERSION + | CODE |
| HIGH⚡ | tests/unit/misc/test_ipc.py | 498 | (b'{"args": [], "target_arg": null, "protocol_version": ' + NEW_VERSION + | CODE |
| HIGH⚡ | tests/unit/misc/test_ipc.py | 500 | (b'{"args": [], "target_arg": null, "protocol_version": "foo"}\n', | CODE |
| HIGH⚡ | tests/unit/misc/test_ipc.py | 502 | (b'{"args": [], "target_arg": null}\n', 'invalid version'), | CODE |
| HIGH | tests/unit/misc/test_ipc.py | 521 | '{{"args": ["two"], "target_arg": null,' | CODE |
| HIGH | tests/unit/utils/test_version.py | 886 | // Initializing PDFJS global object (if still undefined) | COMMENT |
| HIGH | tests/unit/browser/test_qutescheme.py | 35 | ids=lambda url: url.toString(), | CODE |
| HIGH | tests/unit/browser/webkit/network/test_pac.py | 149 | return null; | CODE |
| HIGH⚡ | tests/unit/components/test_hostblock.py | 217 | blocklist1.toString(), | CODE |
| HIGH⚡ | tests/unit/components/test_hostblock.py | 218 | blocklist2.toString(), | CODE |
| HIGH⚡ | tests/unit/components/test_hostblock.py | 219 | blocklist3.toString(), | CODE |
| HIGH⚡ | tests/unit/components/test_hostblock.py | 220 | blocklist4.toString(), | CODE |
| HIGH⚡ | tests/unit/components/test_hostblock.py | 221 | blocklist5.toString(), | CODE |
| HIGH | tests/unit/components/test_hostblock.py | 365 | hosts_to_block = generic_blocklists(tmp_path) + [dl_fail_blocklist.toString()] | CODE |
| HIGH | tests/unit/components/test_hostblock.py | 403 | config_stub.val.content.blocking.hosts.lists = [url.toString()] | CODE |
| HIGH | tests/unit/components/test_hostblock.py | 502 | config_stub.val.content.blocking.hosts.lists = [blocklist.toString()] | CODE |
| HIGH⚡ | tests/unit/javascript/test_greasemonkey.py | 386 | result.push(window.$); | CODE |
| HIGH⚡ | tests/unit/javascript/test_greasemonkey.py | 387 | result.push($); | CODE |
| HIGH⚡ | tests/unit/javascript/test_greasemonkey.py | 392 | result.push(window.$); | CODE |
| HIGH⚡ | tests/unit/javascript/test_greasemonkey.py | 393 | result.push($); | CODE |
| HIGH | tests/unit/javascript/test_greasemonkey.py | 407 | result.push(window.$); | CODE |
| HIGH | tests/unit/javascript/test_greasemonkey.py | 408 | result.push($); | CODE |
| HIGH | tests/unit/javascript/stylesheet/test_stylesheet_js.py | 49 | "window.getComputedStyle({document}, null)" | CODE |
| HIGH | qutebrowser/mainwindow/tabbedbrowser.py | 550 | first_tab_urlstr = first_tab_url.toString().rstrip('/') | CODE |
| HIGH | qutebrowser/utils/qtlog.py | 104 | ('QObject::connect: Cannot connect (null)::stateChanged(' | CODE |
| HIGH | qutebrowser/utils/urlutils.py | 65 | QUrl.FormattingOptions values, i.e. can be passed to QUrl.toString(). | STRING |
| HIGH | qutebrowser/utils/urlutils.py | 452 | mimetype, _encoding = mimetypes.guess_type(url.toString()) | CODE |
| HIGH | qutebrowser/browser/webkit/webkittab.py | 482 | (!position && sel.anchorOffset < sel.focusOffset || | CODE |
| HIGH | qutebrowser/browser/webkit/webkittab.py | 495 | } else if (aElm && aElm !== document.body) { | CODE |
| HIGH | qutebrowser/browser/webkit/webkitelem.py | 82 | """Raise an exception if the element vanished (is null).""" | STRING |
| HIGH | qutebrowser/browser/webkit/webkitelem.py | 110 | val = self._elem.evaluateJavaScript('this.isContentEditable || false') | CODE |
| HIGH | qutebrowser/browser/webkit/webkitelem.py | 163 | event.initTextEvent("textInput", true, true, null, text); | CODE |
| HIGH | qutebrowser/browser/network/pac.py | 164 | raise EvalProxyError(err.format(ret.toString())) | CODE |
| HIGH | qutebrowser/browser/network/pac.py | 190 | raise EvalProxyError(err.format(self._resolver.toString())) | CODE |
| HIGH | qutebrowser/browser/network/pac.py | 221 | result_str = result.toString() | CODE |
| HIGH | qutebrowser/components/braveadblock.py | 204 | request_url.toString(), | CODE |
| HIGH | qutebrowser/components/braveadblock.py | 205 | first_party_url.toString(), | CODE |
| HIGH⚡ | scripts/dev/update_version.py | 95 | print("* git checkout main && git cherry-pick -x v{v} && " | CODE |
| HIGH⚡ | scripts/dev/update_version.py | 102 | print("* Linux: git fetch && git checkout v{v} && " | CODE |
| HIGH⚡ | scripts/dev/update_version.py | 108 | print("* macOS: git fetch && git checkout v{v} && " | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | setup.py | 11 | CODE | |
| LOW | tests/conftest.py | 19 | CODE | |
| LOW | tests/conftest.py | 20 | CODE | |
| LOW | tests/conftest.py | 21 | CODE | |
| LOW | tests/conftest.py | 22 | CODE | |
| LOW | tests/conftest.py | 30 | CODE | |
| LOW | tests/conftest.py | 302 | CODE | |
| LOW | tests/conftest.py | 315 | CODE | |
| LOW | tests/conftest.py | 395 | CODE | |
| LOW | tests/conftest.py | 304 | CODE | |
| LOW | tests/conftest.py | 320 | CODE | |
| LOW | tests/unit/misc/test_checkpyver.py | 65 | CODE | |
| LOW | tests/unit/config/test_configfiles.py | 177 | CODE | |
| LOW | tests/unit/config/test_configdata.py | 14 | CODE | |
| LOW | tests/unit/browser/test_notification.py | 18 | CODE | |
| LOW | tests/end2end/conftest.py | 21 | CODE | |
| LOW | tests/end2end/conftest.py | 22 | CODE | |
| LOW | tests/end2end/conftest.py | 22 | CODE | |
| LOW | tests/end2end/conftest.py | 22 | CODE | |
| LOW | tests/end2end/conftest.py | 22 | CODE | |
| LOW | tests/end2end/conftest.py | 23 | CODE | |
| LOW | tests/end2end/conftest.py | 23 | CODE | |
| LOW | tests/end2end/conftest.py | 23 | CODE | |
| LOW | tests/end2end/conftest.py | 23 | CODE | |
| LOW | tests/end2end/conftest.py | 23 | CODE | |
| LOW | tests/end2end/conftest.py | 29 | CODE | |
| LOW | tests/end2end/features/test_caret_bdd.py | 8 | CODE | |
| LOW | tests/helpers/testutils.py | 270 | CODE | |
| LOW | qutebrowser/app.py | 61 | CODE | |
| LOW | qutebrowser/app.py | 62 | CODE | |
| LOW | qutebrowser/misc/utilcmds.py | 22 | CODE | |
| LOW | qutebrowser/misc/backendproblem.py | 202 | CODE | |
| LOW | qutebrowser/misc/backendproblem.py | 202 | CODE | |
| LOW | qutebrowser/misc/backendproblem.py | 211 | CODE | |
| LOW | qutebrowser/misc/backendproblem.py | 211 | CODE | |
| LOW | qutebrowser/misc/objects.py | 14 | CODE | |
| LOW | qutebrowser/misc/objects.py | 15 | CODE | |
| LOW | qutebrowser/misc/objects.py | 16 | CODE | |
| LOW | qutebrowser/misc/earlyinit.py | 209 | CODE | |
| LOW | qutebrowser/misc/earlyinit.py | 316 | CODE | |
| LOW | qutebrowser/mainwindow/windowundo.py | 18 | CODE | |
| LOW | qutebrowser/config/config.py | 22 | CODE | |
| LOW | qutebrowser/config/config.py | 22 | CODE | |
| LOW | qutebrowser/config/config.py | 23 | CODE | |
| LOW | qutebrowser/config/configcommands.py | 22 | CODE | |
| LOW | qutebrowser/config/configcommands.py | 22 | CODE | |
| LOW | qutebrowser/config/configfiles.py | 30 | CODE | |
| LOW | qutebrowser/config/configutils.py | 23 | CODE | |
| LOW | qutebrowser/config/qtargs.py | 56 | CODE | |
| LOW | qutebrowser/qt/webenginewidgets.py | 24 | CODE | |
| LOW | qutebrowser/qt/webenginewidgets.py | 26 | CODE | |
| LOW | qutebrowser/qt/webenginewidgets.py | 28 | CODE | |
| LOW | qutebrowser/qt/webenginecore.py | 24 | CODE | |
| LOW | qutebrowser/qt/webenginecore.py | 26 | CODE | |
| LOW | qutebrowser/qt/webenginecore.py | 27 | CODE | |
| LOW | qutebrowser/qt/webenginecore.py | 27 | CODE | |
| LOW | qutebrowser/qt/webenginecore.py | 27 | CODE | |
| LOW | qutebrowser/qt/webenginecore.py | 27 | CODE | |
| LOW | qutebrowser/qt/webenginecore.py | 27 | CODE | |
| LOW | qutebrowser/qt/webenginecore.py | 27 | CODE | |
| 94 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/conftest.py | 359 | CODE | |
| LOW | tests/unit/misc/test_ipc.py | 545 | CODE | |
| LOW | tests/unit/config/test_configfiles.py | 390 | CODE | |
| LOW | tests/unit/config/test_configtypes.py | 173 | CODE | |
| LOW | tests/unit/config/test_config.py | 524 | CODE | |
| LOW | tests/unit/config/test_configinit.py | 106 | CODE | |
| LOW | tests/unit/utils/test_version.py | 1365 | CODE | |
| LOW | tests/unit/utils/test_urlutils.py | 409 | CODE | |
| LOW | tests/unit/utils/test_jinja.py | 19 | CODE | |
| LOW | tests/unit/utils/test_jinja.py | 21 | CODE | |
| LOW | tests/unit/components/test_hostblock.py | 73 | CODE | |
| LOW | tests/end2end/conftest.py | 70 | CODE | |
| LOW | tests/end2end/conftest.py | 154 | CODE | |
| LOW | tests/end2end/features/conftest.py | 191 | CODE | |
| LOW | tests/helpers/stubs.py | 707 | CODE | |
| LOW | qutebrowser/app.py | 218 | CODE | |
| LOW | qutebrowser/misc/quitter.py | 66 | CODE | |
| LOW | qutebrowser/misc/crashsignal.py | 106 | CODE | |
| LOW | qutebrowser/misc/backendproblem.py | 171 | CODE | |
| LOW | qutebrowser/misc/backendproblem.py | 248 | CODE | |
| LOW | qutebrowser/misc/split.py | 42 | CODE | |
| LOW | qutebrowser/misc/guiprocess.py | 132 | CODE | |
| LOW | qutebrowser/mainwindow/tabwidget.py | 439 | CODE | |
| LOW | qutebrowser/mainwindow/tabwidget.py | 543 | CODE | |
| LOW | qutebrowser/mainwindow/tabwidget.py | 844 | CODE | |
| LOW | qutebrowser/mainwindow/mainwindow.py | 401 | CODE | |
| LOW | qutebrowser/mainwindow/tabbedbrowser.py | 259 | CODE | |
| LOW | qutebrowser/mainwindow/tabbedbrowser.py | 447 | CODE | |
| LOW | qutebrowser/mainwindow/tabbedbrowser.py | 479 | CODE | |
| LOW | qutebrowser/mainwindow/tabbedbrowser.py | 687 | CODE | |
| LOW | qutebrowser/mainwindow/prompt.py | 545 | CODE | |
| LOW | qutebrowser/mainwindow/prompt.py | 695 | CODE | |
| LOW | qutebrowser/mainwindow/statusbar/command.py | 255 | CODE | |
| LOW | qutebrowser/mainwindow/statusbar/bar.py | 202 | CODE | |
| LOW | qutebrowser/mainwindow/statusbar/bar.py | 238 | CODE | |
| LOW | qutebrowser/mainwindow/statusbar/bar.py | 284 | CODE | |
| LOW | qutebrowser/mainwindow/statusbar/bar.py | 322 | CODE | |
| LOW | qutebrowser/config/configtypes.py | 841 | CODE | |
| LOW | qutebrowser/config/configdata.py | 158 | CODE | |
| LOW | qutebrowser/config/configfiles.py | 156 | CODE | |
| LOW | qutebrowser/config/configfiles.py | 878 | CODE | |
| LOW | qutebrowser/config/configexc.py | 80 | CODE | |
| LOW | qutebrowser/config/websettings.py | 160 | CODE | |
| LOW | qutebrowser/config/qtargs.py | 81 | CODE | |
| LOW | qutebrowser/config/qtargs.py | 178 | CODE | |
| LOW | qutebrowser/config/qtargs.py | 404 | CODE | |
| LOW | qutebrowser/completion/completionwidget.py | 180 | CODE | |
| LOW | qutebrowser/completion/completionwidget.py | 299 | CODE | |
| LOW | qutebrowser/utils/version.py | 109 | CODE | |
| LOW | qutebrowser/utils/version.py | 254 | CODE | |
| LOW | qutebrowser/utils/version.py | 453 | CODE | |
| LOW | qutebrowser/utils/debug.py | 43 | CODE | |
| LOW | qutebrowser/utils/debug.py | 57 | CODE | |
| LOW | qutebrowser/utils/urlutils.py | 300 | CODE | |
| LOW | qutebrowser/utils/urlutils.py | 390 | CODE | |
| LOW | qutebrowser/utils/javascript.py | 40 | CODE | |
| LOW | qutebrowser/utils/standarddir.py | 307 | CODE | |
| LOW | qutebrowser/extensions/loader.py | 130 | CODE | |
| LOW | qutebrowser/keyinput/modeparsers.py | 163 | CODE | |
| LOW | qutebrowser/keyinput/modeparsers.py | 265 | CODE | |
| 62 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/unit/config/test_configtypes.py | 0 | patch the cmdutils module to provide fake commands. | STRING |
| HIGH | tests/unit/completion/test_models.py | 0 | patch the cmdutils module to provide fake commands. | STRING |
| HIGH | tests/unit/completion/test_completer.py | 0 | patch the cmdutils module to provide fake commands. | STRING |
| HIGH | tests/unit/commands/test_parser.py | 0 | patch the cmdutils module to provide fake commands. | STRING |
| HIGH | tests/unit/completion/test_listcategory.py | 0 | validate the filtering and sorting results of set_pattern. | STRING |
| HIGH | tests/unit/completion/test_histcategory.py | 0 | validate the filtering and sorting results of set_pattern. | STRING |
| HIGH | tests/unit/completion/test_completionmodel.py | 0 | validate the filtering and sorting results of set_pattern. | STRING |
| HIGH | qutebrowser/qt/webenginewidgets.py | 0 | wrapped qt imports for qt gui. all code in qutebrowser should use this module instead of importing from pyqt/pyside dire | STRING |
| HIGH | qutebrowser/qt/webenginecore.py | 0 | wrapped qt imports for qt gui. all code in qutebrowser should use this module instead of importing from pyqt/pyside dire | STRING |
| HIGH | qutebrowser/qt/dbus.py | 0 | wrapped qt imports for qt gui. all code in qutebrowser should use this module instead of importing from pyqt/pyside dire | STRING |
| HIGH | qutebrowser/qt/core.py | 0 | wrapped qt imports for qt gui. all code in qutebrowser should use this module instead of importing from pyqt/pyside dire | STRING |
| HIGH | qutebrowser/qt/test.py | 0 | wrapped qt imports for qt gui. all code in qutebrowser should use this module instead of importing from pyqt/pyside dire | STRING |
| HIGH | qutebrowser/qt/widgets.py | 0 | wrapped qt imports for qt gui. all code in qutebrowser should use this module instead of importing from pyqt/pyside dire | STRING |
| HIGH | qutebrowser/qt/opengl.py | 0 | wrapped qt imports for qt gui. all code in qutebrowser should use this module instead of importing from pyqt/pyside dire | STRING |
| HIGH | qutebrowser/qt/network.py | 0 | wrapped qt imports for qt gui. all code in qutebrowser should use this module instead of importing from pyqt/pyside dire | STRING |
| HIGH | qutebrowser/qt/printsupport.py | 0 | wrapped qt imports for qt gui. all code in qutebrowser should use this module instead of importing from pyqt/pyside dire | STRING |
| HIGH | qutebrowser/qt/sql.py | 0 | wrapped qt imports for qt gui. all code in qutebrowser should use this module instead of importing from pyqt/pyside dire | STRING |
| HIGH | qutebrowser/qt/qml.py | 0 | wrapped qt imports for qt gui. all code in qutebrowser should use this module instead of importing from pyqt/pyside dire | STRING |
| HIGH | qutebrowser/qt/gui.py | 0 | wrapped qt imports for qt gui. all code in qutebrowser should use this module instead of importing from pyqt/pyside dire | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/misc/userscripts/test_qute_lastpass.py | 80 | 'fake-key \\j\\o\\h\\n\\.<less><less>\\d\\o\\e<greater><greater>\\@' | CODE |
| LOW⚡ | tests/unit/misc/userscripts/test_qute_lastpass.py | 158 | call('fake-key \\f\\a\\k\\e\\@\\f\\a\\k\\e\\.\\c\\o\\m'), | CODE |
| LOW⚡ | tests/unit/misc/userscripts/test_qute_lastpass.py | 159 | call('fake-key <Tab>'), | CODE |
| LOW⚡ | tests/unit/misc/userscripts/test_qute_lastpass.py | 160 | call('fake-key \\f\\o\\o\\b\\a\\r'), | CODE |
| LOW⚡ | tests/unit/misc/userscripts/test_qute_lastpass.py | 206 | call('fake-key \\f\\a\\k\\e\\@\\f\\a\\k\\e\\.\\c\\o\\m'), | CODE |
| LOW⚡ | tests/unit/misc/userscripts/test_qute_lastpass.py | 220 | call('fake-key \\f\\o\\o\\b\\a\\r'), | CODE |
| LOW⚡ | tests/unit/misc/userscripts/test_qute_lastpass.py | 259 | 'fake-key \\j\\o\\h\\n\\.\\d\\o\\e\\@\\f\\a\\k\\e\\.\\c\\o\\m'), | CODE |
| LOW⚡ | tests/unit/misc/userscripts/test_qute_lastpass.py | 260 | call('fake-key <Tab>'), | CODE |
| LOW⚡ | tests/unit/misc/userscripts/test_qute_lastpass.py | 261 | call('fake-key \\b\\a\\r\\f\\o\\o'), | CODE |
| LOW⚡ | tests/unit/misc/userscripts/test_qute_lastpass.py | 330 | 'fake-key \\j\\o\\h\\n\\.\\d\\o\\e\\@\\f\\a\\k\\e\\.\\c\\o\\m'), | CODE |
| LOW⚡ | tests/unit/misc/userscripts/test_qute_lastpass.py | 331 | call('fake-key <Tab>'), | CODE |
| LOW⚡ | tests/unit/misc/userscripts/test_qute_lastpass.py | 332 | call('fake-key \\b\\a\\r\\f\\o\\o'), | CODE |
| LOW⚡ | tests/unit/config/test_configtypes.py | 1863 | ({'placeholder': True}, '[foo, "{}", bar]', ['foo', '{}', 'bar']), | CODE |
| LOW⚡ | tests/unit/config/test_configtypes.py | 1864 | ({'placeholder': True}, '["foo{}bar"]', ['foo{}bar']), | CODE |
| LOW⚡ | tests/unit/config/test_configtypes.py | 1865 | ({'placeholder': True}, '[foo, "bar {}"]', ['foo', 'bar {}']), | CODE |
| LOW⚡ | tests/unit/config/test_configtypes.py | 1866 | ({'placeholder': True}, '[f, "{file}", b]', ['f', '{file}', 'b']), | CODE |
| LOW⚡ | tests/unit/config/test_configtypes.py | 1867 | ({'placeholder': True}, '["f{file}b"]', ['f{file}b']), | CODE |
| LOW⚡ | tests/unit/config/test_configtypes.py | 1868 | ({'placeholder': True}, '[f, "b {file}"]', ['f', 'b {file}']), | CODE |
| LOW⚡ | tests/unit/config/test_configtypes.py | 1876 | ({'placeholder': True}, '[foo, bar]'), | CODE |
| LOW⚡ | tests/unit/config/test_configtypes.py | 1877 | ({'placeholder': True}, '[foo, "{", "}", bar'), | CODE |
| LOW⚡ | tests/unit/config/test_configtypes.py | 1878 | ({'placeholder': True}, '[foo, "{fi", "le}", bar'), | CODE |
| LOW⚡ | tests/unit/config/test_configtypes.py | 1881 | ({'placeholder': True}, '[f, "{wrong}", b]'), | CODE |
| LOW⚡ | tests/unit/config/test_configtypes.py | 1882 | ({'placeholder': True}, '["f{wrong}b"]'), | CODE |
| LOW⚡ | tests/unit/config/test_configtypes.py | 1883 | ({'placeholder': True}, '[f, "b {wrong}"]'), | CODE |
| LOW | …/unit/javascript/position_caret/scrolled_down_img.html | 3 | <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante d | CODE |
| LOW | …/unit/javascript/position_caret/scrolled_down_img.html | 3 | <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante d | CODE |
| LOW | tests/unit/javascript/position_caret/scrolled_down.html | 3 | <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante d | CODE |
| LOW | tests/unit/javascript/position_caret/scrolled_down.html | 3 | <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante d | CODE |
| LOW | tests/end2end/data/hints/html/zoom_precision.html | 12 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolor | CODE |
| LOW | tests/end2end/data/hints/html/zoom_precision.html | 12 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolor | CODE |
| LOW | tests/end2end/data/hints/html/wrapped.html | 12 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolor | CODE |
| LOW | tests/end2end/data/hints/html/wrapped.html | 12 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolor | CODE |
| LOW | tests/end2end/data/hints/html/wrapped_button.html | 12 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolor | CODE |
| LOW | tests/end2end/data/hints/html/wrapped_button.html | 12 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolor | CODE |
| LOW | tests/manual/hints/find_implementation.html | 11 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolor | CODE |
| LOW | tests/manual/hints/find_implementation.html | 11 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolor | CODE |
| LOW | qutebrowser/config/configdata.yml | 3883 | <Shift-Escape>: fake-key <Escape> | CODE |
| LOW⚡ | qutebrowser/browser/hints.py | 1085 | "placeholder": lambda elem: elem["placeholder"], | CODE |
| LOW⚡ | qutebrowser/browser/hints.py | 1094 | "input": ["name", "placeholder"], | CODE |
| LOW⚡ | qutebrowser/browser/hints.py | 1095 | "textarea": ["name", "placeholder"], | CODE |
| LOW⚡ | qutebrowser/browser/commands.py | 1772 | def fake_key(self, keystring, global_=False): | CODE |
| LOW⚡ | qutebrowser/browser/commands.py | 1775 | :fake-key xy - sends the keychain 'xy' | STRING |
| LOW⚡ | qutebrowser/browser/commands.py | 1776 | :fake-key <Ctrl-x> - sends Ctrl-x | STRING |
| LOW⚡ | qutebrowser/browser/commands.py | 1777 | :fake-key <Escape> - sends the escape key | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | qutebrowser/misc/throttle.py | 83 | def set_delay(self, delay_ms: int) -> None: | CODE |
| LOW | qutebrowser/mainwindow/tabwidget.py | 337 | def update_tab_favicon(self, tab: browsertab.AbstractTab) -> None: | CODE |
| LOW | qutebrowser/mainwindow/tabbedbrowser.py | 124 | def update_size(self) -> None: | CODE |
| LOW | qutebrowser/mainwindow/messageview.py | 80 | def update_from_info(self, info: message.MessageInfo) -> None: | CODE |
| LOW | qutebrowser/mainwindow/statusbar/searchmatch.py | 20 | def set_match(self, search_match: browsertab.SearchMatch) -> None: | CODE |
| LOW | qutebrowser/config/configtypes.py | 1215 | def set_defaults(cls, default_family: list[str], default_size: str) -> None: | CODE |
| LOW | qutebrowser/config/configinit.py | 84 | def _update_font_defaults(setting: str) -> None: | CODE |
| LOW | qutebrowser/config/config.py | 537 | def update_mutables(self, *, save_yaml: bool = False) -> None: | CODE |
| LOW | qutebrowser/config/configfiles.py | 137 | def _set_changed_attributes(self) -> None: | CODE |
| LOW | qutebrowser/config/configfiles.py | 156 | def _set_qutebrowser_changed_attribute(self) -> None: | CODE |
| LOW | qutebrowser/config/configfiles.py | 181 | def _set_chromium_changed_attribute(self) -> None: | CODE |
| LOW | qutebrowser/config/websettings.py | 105 | def set_attribute(self, name: str, value: Any) -> None: | CODE |
| LOW | qutebrowser/config/websettings.py | 126 | def set_font_size(self, name: str, value: Union[int, usertypes.Unset]) -> None: | CODE |
| LOW⚡ | qutebrowser/config/websettings.py | 155 | def set_default_text_encoding(self, encoding: Union[str, usertypes.Unset]) -> None: | CODE |
| LOW⚡ | qutebrowser/config/websettings.py | 160 | def _update_setting(self, setting: str, value: Any) -> None: | CODE |
| LOW | qutebrowser/config/websettings.py | 175 | def update_setting(self, setting: str) -> None: | CODE |
| LOW | qutebrowser/config/websettings.py | 180 | def update_for_url(self, url: QUrl) -> None: | CODE |
| LOW | qutebrowser/qt/machinery.py | 112 | def set_module_error(self, name: str, error: Exception) -> None: | CODE |
| LOW | qutebrowser/qt/machinery.py | 236 | def _set_globals(info: SelectionInfo) -> None: | CODE |
| LOW | qutebrowser/completion/completionwidget.py | 383 | def set_pattern(self, pattern: str) -> None: | CODE |
| LOW | qutebrowser/completion/models/filepathcategory.py | 66 | def set_pattern(self, val: str) -> None: | CODE |
| LOW | qutebrowser/utils/log.py | 451 | def update_from(self, other: 'LogFilter') -> None: | CODE |
| LOW | qutebrowser/utils/utils.py | 518 | def set_clipboard(data: str, selection: bool = False) -> None: | CODE |
| LOW | qutebrowser/keyinput/modeparsers.py | 111 | def set_inhibited_timeout(self, timeout: int) -> None: | CODE |
| LOW | qutebrowser/browser/browsertab.py | 477 | def _set_factor_internal(self, factor: float) -> None: | CODE |
| LOW | qutebrowser/browser/browsertab.py | 480 | def set_factor(self, factor: float, *, fuzzyval: bool = True) -> None: | CODE |
| LOW | qutebrowser/browser/browsertab.py | 848 | def set_muted(self, muted: bool, override: bool = False) -> None: | CODE |
| LOW | qutebrowser/browser/browsertab.py | 1068 | def _set_widget(self, widget: _WidgetType) -> None: | CODE |
| LOW | qutebrowser/browser/browsertab.py | 1096 | def _set_load_status(self, val: usertypes.LoadStatus) -> None: | CODE |
| LOW | qutebrowser/browser/browsertab.py | 1197 | def _update_load_status(self, ok: bool) -> None: | CODE |
| LOW | qutebrowser/browser/browsertab.py | 1297 | def set_pinned(self, pinned: bool) -> None: | CODE |
| LOW | qutebrowser/browser/inspector.py | 98 | def _set_widget(self, widget: _WidgetType) -> None: | CODE |
| LOW | qutebrowser/browser/inspector.py | 131 | def set_position(self, position: Optional[Position]) -> None: | CODE |
| LOW | qutebrowser/browser/webelem.py | 116 | def set_value(self, value: JsValueType) -> None: | CODE |
| LOW | qutebrowser/browser/hints.py | 106 | def update_text(self, matched: str, unmatched: str) -> None: | CODE |
| LOW | qutebrowser/browser/webengine/webenginesettings.py | 234 | def _set_js_clipboard(self, value: Union[str, usertypes.Unset]) -> None: | CODE |
| LOW | qutebrowser/browser/webengine/webengineelem.py | 132 | def set_value(self, value: webelem.JsValueType) -> None: | CODE |
| LOW | qutebrowser/browser/webengine/webenginetab.py | 855 | def set_muted(self, muted: bool, override: bool = False) -> None: | CODE |
| LOW | qutebrowser/browser/webkit/webkittab.py | 815 | def set_muted(self, muted: bool, override: bool = False) -> None: | CODE |
| LOW | qutebrowser/browser/webkit/webkitelem.py | 120 | def set_value(self, value: webelem.JsValueType) -> None: | CODE |
| LOW | qutebrowser/components/hostblock.py | 276 | def update_files(self) -> None: | CODE |
| LOW | qutebrowser/components/braveadblock.py | 292 | def update_files(self) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/utils/test_error.py | 34 | except Exception as e: | CODE |
| LOW | qutebrowser/misc/utilcmds.py | 156 | except Exception: | CODE |
| LOW | qutebrowser/misc/utilcmds.py | 162 | except Exception: | CODE |
| LOW | qutebrowser/misc/crashsignal.py | 129 | except Exception: | CODE |
| LOW⚡ | qutebrowser/misc/crashsignal.py | 198 | except Exception as e: | CODE |
| LOW⚡ | qutebrowser/misc/crashsignal.py | 204 | except Exception as e: | CODE |
| LOW⚡ | qutebrowser/misc/crashsignal.py | 210 | except Exception: | CODE |
| LOW | qutebrowser/misc/crashsignal.py | 268 | except Exception: | CODE |
| LOW | qutebrowser/misc/crashdialog.py | 175 | except Exception: | CODE |
| LOW⚡ | qutebrowser/misc/crashdialog.py | 232 | except Exception: | CODE |
| LOW⚡ | qutebrowser/misc/crashdialog.py | 236 | except Exception: | CODE |
| LOW⚡ | qutebrowser/misc/crashdialog.py | 241 | except Exception: | CODE |
| LOW⚡ | qutebrowser/misc/crashdialog.py | 245 | except Exception: | CODE |
| LOW | qutebrowser/misc/crashdialog.py | 282 | except Exception: | CODE |
| LOW | qutebrowser/misc/crashdialog.py | 301 | except Exception: | CODE |
| LOW | qutebrowser/misc/crashdialog.py | 308 | except Exception as e: | CODE |
| LOW | qutebrowser/misc/crashdialog.py | 416 | except Exception: | CODE |
| LOW | qutebrowser/misc/crashdialog.py | 452 | except Exception: | CODE |
| LOW | qutebrowser/misc/crashdialog.py | 512 | except Exception: | CODE |
| LOW | qutebrowser/misc/crashdialog.py | 527 | except Exception: | CODE |
| LOW | qutebrowser/misc/crashdialog.py | 591 | except Exception: | CODE |
| LOW | qutebrowser/misc/crashdialog.py | 642 | except Exception: | CODE |
| LOW | qutebrowser/misc/crashdialog.py | 647 | except Exception: | CODE |
| LOW | qutebrowser/misc/crashdialog.py | 660 | except Exception: | CODE |
| LOW | qutebrowser/config/configfiles.py | 990 | except Exception as e: | CODE |
| LOW | qutebrowser/components/misccommands.py | 410 | except Exception as e: | CODE |
| LOW | scripts/dev/misc_checks.py | 157 | except Exception: | CODE |
| LOW | scripts/dev/misc_checks.py | 334 | except Exception: | CODE |
| LOW | scripts/dev/misc_checks.py | 413 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pytest.ini | 61 | # Qt 6.5 debug build | COMMENT |
| LOW | misc/requirements/README.md | 21 | #@ replace: foo bar | COMMENT |
| LOW | tests/unit/config/test_configfiles.py | 1421 | # you prefer, you can also configure qutebrowser using the | COMMENT |
| LOW | tests/unit/config/test_configfiles.py | 1501 | COMMENT | |
| LOW | tests/unit/browser/webkit/test_webkitelem.py | 541 | elems: webkitelem.WebKitElement | COMMENT |
| LOW | tests/unit/browser/webkit/test_webkitelem.py | 621 | 0, 0 300, 0 | COMMENT |
| LOW | qutebrowser/misc/earlyinit.py | 101 | COMMENT | |
| LOW | qutebrowser/config/qtargs.py | 101 | flag = flag.removeprefix(_DISABLE_FEATURES) | COMMENT |
| LOW | qutebrowser/config/qtargs.py | 121 | # | COMMENT |
| LOW | qutebrowser/qt/__init__.py | 1 | # SPDX-FileCopyrightText: Freya Bruhin (The Compiler) <mail@qutebrowser.org> | COMMENT |
| LOW | qutebrowser/utils/version.py | 821 | parsed = utils.VersionNumber.parse(pyqt_webengine_version) | COMMENT |
| LOW | qutebrowser/utils/qtlog.py | 61 | qtcore.QtMsgType.QtFatalMsg: logging.CRITICAL, | COMMENT |
| LOW | qutebrowser/browser/browsertab.py | 1001 | #: Signal emitted before load starts (URL as QUrl) | COMMENT |
| LOW | qutebrowser/browser/downloads.py | 501 | total=total, errmsg=errmsg)) | COMMENT |
| LOW | qutebrowser/browser/webengine/webenginesettings.py | 541 | if not config.val.content.site_specific_quirks.enabled: | COMMENT |
| LOW | qutebrowser/browser/webengine/notification.py | 1081 | # Or in the words of dunst: | COMMENT |
| LOW | qutebrowser/browser/webengine/tabhistory.py | 21 | COMMENT | |
| LOW | qutebrowser/browser/webengine/tabhistory.py | 41 | COMMENT | |
| LOW | qutebrowser/browser/webkit/network/networkmanager.py | 61 | # https://en.wikipedia.org/wiki/Data_Encryption_Standard#Security_and_cryptanalysis | COMMENT |
| LOW | qutebrowser/components/readlinecommands.py | 101 | is_boundary = text[target_position - 1] in delim | COMMENT |
| LOW | qutebrowser/components/readlinecommands.py | 121 | # trying to delete 7 chars: | COMMENT |
| LOW | qutebrowser/api/config.py | 1 | # SPDX-FileCopyrightText: Freya Bruhin (The Compiler) <mail@qutebrowser.org> | COMMENT |
| LOW | qutebrowser/javascript/.eslintrc.yaml | 1 | # qutebrowser's way of using eslint is perhaps a bit untypical: We turn on *all* | COMMENT |
| LOW | doc/extapi/conf.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | doc/extapi/conf.py | 61 | # | COMMENT |
| LOW | doc/extapi/conf.py | 81 | COMMENT | |
| LOW | doc/extapi/conf.py | 161 | # -- Options for Epub output ------------------------------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/unit/config/test_configutils.py | 359 | CODE | |
| MEDIUM | tests/unit/config/test_configutils.py | 360 | CODE | |
| MEDIUM | tests/unit/config/test_configutils.py | 361 | CODE | |
| MEDIUM | tests/unit/config/test_configutils.py | 363 | CODE | |
| MEDIUM | tests/unit/config/test_configutils.py | 367 | CODE | |
| MEDIUM | tests/unit/config/test_configutils.py | 368 | CODE | |
| MEDIUM | tests/unit/config/test_configutils.py | 369 | CODE | |
| MEDIUM | tests/unit/config/test_configutils.py | 373 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/conftest.py | 275 | Select the backend for running tests. The backend is auto-selected in the following manner: 1. Use QtWebKit if | STRING |
| HIGH | qutebrowser/misc/lineparser.py | 70 | Open self._configfile for reading. Args: mode: The mode to use ('a'/'r'/'w') Raises: | STRING |
| HIGH | qutebrowser/commands/userscripts.py | 372 | Search userscript directories for given command. Raises: NotFoundError if the command could not be found. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/utils/usertypes/test_timer.py | 78 | # Check if there are any stray timers still alive. | COMMENT |
| LOW⚡ | tests/unit/browser/test_hints.py | 94 | # Check if hints are unique | COMMENT |
| LOW⚡ | tests/unit/browser/test_hints.py | 97 | # Check if any hints are shorter than min_len | COMMENT |
| LOW⚡ | tests/unit/browser/test_hints.py | 106 | # Check if hint_lens are more than 1 apart | COMMENT |
| LOW⚡ | tests/unit/browser/test_hints.py | 116 | # Check if we have any unique prefixes. For example, 'la' | COMMENT |
| LOW | tests/unit/scripts/test_check_coverage.py | 85 | # Check if coverage plugin is available | STRING |
| LOW | qutebrowser/utils/urlmatch.py | 265 | # Check if the test host is a subdomain of our host. | COMMENT |
| LOW | qutebrowser/browser/webengine/webenginetab.py | 242 | # Check if the match count change is opposite to the search direction | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | setup.py | 56 | CODE | |
| LOW | tests/unit/browser/webkit/test_webkitelem.py | 26 | CODE | |
| LOW | tests/helpers/stubs.py | 245 | CODE | |
| LOW | qutebrowser/app.py | 117 | CODE | |
| LOW | qutebrowser/misc/sessions.py | 574 | CODE | |
| LOW | qutebrowser/config/configtypes.py | 400 | CODE | |
| LOW | qutebrowser/qt/_core_pyqtproperty.py | 36 | CODE | |
| LOW | qutebrowser/browser/commands.py | 285 | CODE | |
| LOW | qutebrowser/browser/webkit/webkittab.py | 846 | CODE | |
| LOW | qutebrowser/commands/command.py | 65 | CODE | |
| LOW | scripts/dev/update_3rdparty.py | 176 | CODE | |
| LOW | scripts/dev/run_pylint_on_tests.py | 74 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/unit/utils/test_standarddir.py | 303 | # This file is a cache directory tag created by qutebrowser. | COMMENT |
| MEDIUM | qutebrowser/utils/standarddir.py | 360 | f.write("# This file is a cache directory tag created by " | CODE |
| MEDIUM | scripts/dev/recompile_requirements.py | 290 | elif line[1:].startswith('# This file is automatically'): | CODE |
| MEDIUM | scripts/dev/recompile_requirements.py | 375 | f.write("# This file is automatically generated by " | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/completion/test_completer.py | 217 | # open has maxsplit=0, so all args just set the pattern, not the model | COMMENT |
| LOW | qutebrowser/browser/qtnetworkdownloads.py | 553 | # User doesn't want to be asked, so just use the download_dir | COMMENT |
| LOW | qutebrowser/browser/webengine/webenginedownloads.py | 293 | # User doesn't want to be asked, so just use the download_dir | COMMENT |
| LOW | qutebrowser/browser/webengine/webenginetab.py | 1145 | # make sure we replace existing scripts, not just add new ones. | COMMENT |
| LOW | qutebrowser/browser/webengine/webenginequtescheme.py | 107 | # We can't just use the QBuffer constructor taking a QByteArray, | COMMENT |