From f772ccb203340819637af53eb2de308ddef0a220 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Sun, 19 Feb 2017 20:03:27 +0100 Subject: [PATCH] QtWebEngine: Fall back to events for hints if JS is broken *cough* musl *cough* --- qutebrowser/browser/webkit/webkitelem.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/qutebrowser/browser/webkit/webkitelem.py b/qutebrowser/browser/webkit/webkitelem.py index 5813cf8f6..db926e64b 100644 --- a/qutebrowser/browser/webkit/webkitelem.py +++ b/qutebrowser/browser/webkit/webkitelem.py @@ -298,15 +298,21 @@ class WebKitElement(webelem.AbstractWebElement): elem = elem._parent() # pylint: disable=protected-access def _click_editable(self): - self._elem.evaluateJavaScript('this.focus();') + ok = self._elem.evaluateJavaScript('this.focus(); true;') + if not ok: + log.webelem.debug("Failed to focus via JS, falling back to event") + self._click_fake_event(click_target) def _click_js(self, click_target): settings = QWebSettings.globalSettings() attribute = QWebSettings.JavascriptCanOpenWindows could_open_windows = settings.testAttribute(attribute) settings.setAttribute(attribute, True) - self._elem.evaluateJavaScript('this.click();') + ok = self._elem.evaluateJavaScript('this.click(); true;') settings.setAttribute(attribute, could_open_windows) + if not ok: + log.webelem.debug("Failed to click via JS, falling back to event") + self._click_fake_event(click_target) def _click_fake_event(self, click_target): self._tab.data.override_target = click_target