diff options
author | toofar <toofar@spalge.com> | 2023-04-30 15:00:43 +1200 |
---|---|---|
committer | toofar <toofar@spalge.com> | 2023-04-30 15:12:46 +1200 |
commit | 025757a9c1784c96a9abcbadce8febe301cf41e1 (patch) | |
tree | 295eeb3862e00d525acdef269f55798c66107138 | |
parent | acb58804c35aef479fa26e5a0b0d8dbf992ec902 (diff) | |
download | qutebrowser-025757a9c1784c96a9abcbadce8febe301cf41e1.tar.gz qutebrowser-025757a9c1784c96a9abcbadce8febe301cf41e1.zip |
move JS_WORLD_MAP to usertypes, circular import
-rw-r--r-- | qutebrowser/browser/webengine/webenginesettings.py | 2 | ||||
-rw-r--r-- | qutebrowser/utils/qtutils.py | 14 | ||||
-rw-r--r-- | qutebrowser/utils/usertypes.py | 19 |
3 files changed, 18 insertions, 17 deletions
diff --git a/qutebrowser/browser/webengine/webenginesettings.py b/qutebrowser/browser/webengine/webenginesettings.py index e6c4bae98..4d6db0f1d 100644 --- a/qutebrowser/browser/webengine/webenginesettings.py +++ b/qutebrowser/browser/webengine/webenginesettings.py @@ -469,7 +469,7 @@ def _inject_greasemonkey_scripts(profile, scripts): continue except ValueError: try: - world = qtutils.JS_WORLD_MAP[usertypes.JsWorld[script.jsworld.lower()]] + world = usertypes.JS_WORLD_MAP[usertypes.JsWorld[script.jsworld.lower()]] except KeyError: log.greasemonkey.error( f"script {script.name} has invalid value for '@qute-js-world'" diff --git a/qutebrowser/utils/qtutils.py b/qutebrowser/utils/qtutils.py index d2cd4bb49..0ecc4cba6 100644 --- a/qutebrowser/utils/qtutils.py +++ b/qutebrowser/utils/qtutils.py @@ -25,7 +25,6 @@ Module attributes: MINVALS: A dictionary of C/Qt types (as string) mapped to their minimum value. MAX_WORLD_ID: The highest world ID allowed by QtWebEngine. - JS_WORLD_MAP: Mapping form usertypes.JsWorld to QWebEngineScript.ScriptWorldId """ @@ -42,7 +41,6 @@ from qutebrowser.qt.core import (qVersion, QEventLoop, QDataStream, QByteArray, QIODevice, QFileDevice, QSaveFile, QT_VERSION_STR, PYQT_VERSION_STR, QObject, QUrl, QLibraryInfo) from qutebrowser.qt.gui import QColor -from qutebrowser.qt.webenginecore import QWebEngineScript try: from qutebrowser.qt.webkit import qWebKitVersion except ImportError: # pragma: no cover @@ -119,18 +117,6 @@ def version_check(version: str, MAX_WORLD_ID = 256 -# Mapping worlds from usertypes.JsWorld to QWebEngineScript world IDs. -if not QWebEngineScript: - JS_WORLD_MAP = {} -else: - JS_WORLD_MAP = { - usertypes.JsWorld.main: QWebEngineScript.ScriptWorldId.MainWorld, - usertypes.JsWorld.application: QWebEngineScript.ScriptWorldId.ApplicationWorld, - usertypes.JsWorld.user: QWebEngineScript.ScriptWorldId.UserWorld, - usertypes.JsWorld.jseval: QWebEngineScript.ScriptWorldId.UserWorld + 1, - } - - def is_new_qtwebkit() -> bool: """Check if the given version is a new QtWebKit.""" assert qWebKitVersion is not None diff --git a/qutebrowser/utils/usertypes.py b/qutebrowser/utils/usertypes.py index aadda000b..b97322777 100644 --- a/qutebrowser/utils/usertypes.py +++ b/qutebrowser/utils/usertypes.py @@ -25,8 +25,11 @@ import enum import dataclasses from typing import Optional, Sequence, TypeVar, Union -from qutebrowser.qt.core import pyqtSignal, pyqtSlot, QObject, QTimer -from qutebrowser.qt.core import QUrl +from qutebrowser.qt.core import pyqtSignal, pyqtSlot, QObject, QTimer, QUrl +try: + from qutebrowser.qt.webenginecore import QWebEngineScript +except ImportError: + QWebEngineScript = None from qutebrowser.utils import log, qtutils, utils @@ -316,6 +319,18 @@ class JsWorld(enum.Enum): jseval = enum.auto() #: World used for the jseval-command. +# Mapping worlds from JsWorld to QWebEngineScript world IDs. +if QWebEngineScript: # type: ignore[truthy-function] + JS_WORLD_MAP = { + JsWorld.main: QWebEngineScript.ScriptWorldId.MainWorld, + JsWorld.application: QWebEngineScript.ScriptWorldId.ApplicationWorld, + JsWorld.user: QWebEngineScript.ScriptWorldId.UserWorld, + JsWorld.jseval: QWebEngineScript.ScriptWorldId.UserWorld + 1, + } +else: + JS_WORLD_MAP = {} # type: ignore[unreachable] + + class JsLogLevel(enum.Enum): """Log level of a JS message. |