summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortoofar <toofar@spalge.com>2023-04-30 15:00:43 +1200
committertoofar <toofar@spalge.com>2023-04-30 15:12:46 +1200
commit025757a9c1784c96a9abcbadce8febe301cf41e1 (patch)
tree295eeb3862e00d525acdef269f55798c66107138
parentacb58804c35aef479fa26e5a0b0d8dbf992ec902 (diff)
downloadqutebrowser-025757a9c1784c96a9abcbadce8febe301cf41e1.tar.gz
qutebrowser-025757a9c1784c96a9abcbadce8febe301cf41e1.zip
move JS_WORLD_MAP to usertypes, circular import
-rw-r--r--qutebrowser/browser/webengine/webenginesettings.py2
-rw-r--r--qutebrowser/utils/qtutils.py14
-rw-r--r--qutebrowser/utils/usertypes.py19
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.