From 324966cfe7316a395f3b043f734cd090b78d54f7 Mon Sep 17 00:00:00 2001 From: Jimmy Date: Tue, 26 Jun 2018 13:05:27 +1200 Subject: [PATCH] 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. --- qutebrowser/browser/webengine/webview.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) 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)