From fac0f66e52c189344c8d5c27e0018c5909cda7f9 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Wed, 14 Mar 2018 07:50:41 +0100 Subject: [PATCH] Insert qutebrowser scripts on DocumentCreation and DocumentReady In #3521, the injection point was changed to DocumentReady as a fix for https://bugreports.qt.io/browse/QTBUG-66011 / #3490. However, that prevents e.g. using hints before a page is fully loaded, which can be annoying on a mobile connection. Instead, just run the scripts twice, which won't hurt and makes sure they're available. --- qutebrowser/browser/webengine/webenginetab.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py index 6206a7774..c21d29fef 100644 --- a/qutebrowser/browser/webengine/webenginetab.py +++ b/qutebrowser/browser/webengine/webenginetab.py @@ -640,17 +640,21 @@ class WebEngineTab(browsertab.AbstractTab): utils.read_file('javascript/webelem.js'), utils.read_file('javascript/caret.js'), ]) + scripts = self._widget.page().scripts() + script = QWebEngineScript() - # We can't use DocumentCreation here as WORKAROUND for - # https://bugreports.qt.io/browse/QTBUG-66011 - script.setInjectionPoint(QWebEngineScript.DocumentReady) + script.setInjectionPoint(QWebEngineScript.DocumentCreation) script.setSourceCode(js_code) - - page = self._widget.page() script.setWorldId(QWebEngineScript.ApplicationWorld) - # FIXME:qtwebengine what about runsOnSubFrames? - page.scripts().insert(script) + scripts.insert(script) + + # WORKAROUND for https://bugreports.qt.io/browse/QTBUG-66011 + script2 = QWebEngineScript() + script2.setInjectionPoint(QWebEngineScript.DocumentReady) + script2.setSourceCode(js_code) + script2.setWorldId(QWebEngineScript.ApplicationWorld) + scripts.insert(script2) def _install_event_filter(self): self._widget.focusProxy().installEventFilter(self._mouse_event_filter)