summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJimmy <jimmy@spalge.com>2018-06-26 13:05:27 +1200
committerJimmy <jimmy@spalge.com>2018-06-26 15:00:35 +1200
commit324966cfe7316a395f3b043f734cd090b78d54f7 (patch)
tree7b607898b11ddc749243955d1841bd5df9f3a5e5
parent521268a1f719a89e38d779010d4353db612a803f (diff)
downloadqutebrowser-324966cfe7316a395f3b043f734cd090b78d54f7.tar.gz
qutebrowser-324966cfe7316a395f3b043f734cd090b78d54f7.zip
greasemonkey: also support qute-js-world on 5.7.1
A straight copy from webengintab. Yes I know I shouldn't be importing a private thing from webenginetab, I'm working on refactoring now.
-rw-r--r--qutebrowser/browser/webengine/webview.py14
1 files changed, 13 insertions, 1 deletions
diff --git a/qutebrowser/browser/webengine/webview.py b/qutebrowser/browser/webengine/webview.py
index 76007b9d9..2eea5d837 100644
--- a/qutebrowser/browser/webengine/webview.py
+++ b/qutebrowser/browser/webengine/webview.py
@@ -288,7 +288,19 @@ class WebEnginePage(QWebEnginePage):
def _add_script(script, injection_point):
new_script = QWebEngineScript()
new_script.setInjectionPoint(injection_point)
- new_script.setWorldId(QWebEngineScript.MainWorld)
+ try:
+ world = int(script.jsworld)
+ except ValueError:
+ try:
+ from qutebrowser.browser.webengine.webenginetab import _JS_WORLD_MAP
+ world = _JS_WORLD_MAP[usertypes.JsWorld[
+ script.jsworld.lower()]]
+ except KeyError:
+ log.greasemonkey.error(
+ "script {} has invalid value for '@qute-js-world'"
+ ": {}".format(script.name, script.jsworld))
+ return
+ new_script.setWorldId(world)
new_script.setSourceCode(script.code())
new_script.setName("GM-{}".format(script.name))
new_script.setRunsOnSubFrames(script.runs_on_sub_frames)