From 56515321dd3670ea41abed39378cff1b7c984910 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Thu, 28 Jul 2016 17:09:17 +0200 Subject: [PATCH] Handle failing javascript in webelem.rect_on_view Fixes #1641. --- CHANGELOG.asciidoc | 5 +++++ qutebrowser/browser/webkit/webelem.py | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index b954f54a3..e3ced7cfb 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -25,6 +25,11 @@ Changed - `:bookmark-load` now has a `--delete` flag which deletes the bookmark after loading it. +Fixed +----- + +- Fixed crash when using hints with JS disabled in some rare circumstances. + v0.8.1 ------ diff --git a/qutebrowser/browser/webkit/webelem.py b/qutebrowser/browser/webkit/webelem.py index b8b898fa3..8044ccee2 100644 --- a/qutebrowser/browser/webkit/webelem.py +++ b/qutebrowser/browser/webkit/webelem.py @@ -367,6 +367,12 @@ class WebElementWrapper(collections.abc.MutableMapping): def _rect_on_view_js(self, adjust_zoom): """Javascript implementation for rect_on_view.""" rects = self._elem.evaluateJavaScript("this.getClientRects()") + if rects is None: + # Depending on unknown circumstances, this might not work with JS + # disabled in QWebSettings: + # https://github.com/The-Compiler/qutebrowser/issues/1641 + return None + text = utils.compact_text(self._elem.toOuterXml(), 500) log.hints.vdebug("Client rectangles of element '{}': {}".format( text, rects))