From e83b99b0e1c120ec480c6b0a4410bdf1aa7b89cc Mon Sep 17 00:00:00 2001 From: Kevin Velghe Date: Thu, 20 Oct 2016 17:44:10 +0200 Subject: [PATCH 1/4] Run javascript on document element This enables `:jseval` for users who disable javascript on webpages. --- qutebrowser/browser/webkit/webkittab.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/qutebrowser/browser/webkit/webkittab.py b/qutebrowser/browser/webkit/webkittab.py index 507a9ba94..2a7fcc3b4 100644 --- a/qutebrowser/browser/webkit/webkittab.py +++ b/qutebrowser/browser/webkit/webkittab.py @@ -624,7 +624,8 @@ class WebKitTab(browsertab.AbstractTab): def run_js_async(self, code, callback=None, *, world=None): if world is not None and world != usertypes.JsWorld.jseval: log.webview.warning("Ignoring world ID {}".format(world)) - result = self._widget.page().mainFrame().evaluateJavaScript(code) + result = self._widget.page().mainFrame().documentElement() \ + .evaluateJavaScript(code) if callback is not None: callback(result) From c537b901f07bd00ee938a5bc8b355cb95b3dd6e3 Mon Sep 17 00:00:00 2001 From: Kevin Velghe Date: Fri, 21 Oct 2016 00:31:02 +0200 Subject: [PATCH 2/4] Add test for jseval when javascript is disabled --- tests/end2end/features/javascript.feature | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/end2end/features/javascript.feature b/tests/end2end/features/javascript.feature index a86d88e20..dda097f00 100644 --- a/tests/end2end/features/javascript.feature +++ b/tests/end2end/features/javascript.feature @@ -71,3 +71,8 @@ Feature: Javascript stuff And I run :tab-only And I run :jseval if (window.open('about:blank')) { console.log('window opened'); } else { console.log('error while opening window'); } Then the javascript message "error while opening window" should be logged + + Scenario: Executing jseval when javascript is disabled + When I set content -> allow-javascript to false + And I run :jseval console.log('jseval executed') + Then the javascript message "jseval executed" should be logged From f4022a86fd5329920df0d861c9093b5e327a0c31 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Sun, 30 Oct 2016 18:49:41 +0100 Subject: [PATCH 3/4] Improve line breaking --- qutebrowser/browser/webkit/webkittab.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qutebrowser/browser/webkit/webkittab.py b/qutebrowser/browser/webkit/webkittab.py index 2a7fcc3b4..6fefaa655 100644 --- a/qutebrowser/browser/webkit/webkittab.py +++ b/qutebrowser/browser/webkit/webkittab.py @@ -624,8 +624,8 @@ class WebKitTab(browsertab.AbstractTab): def run_js_async(self, code, callback=None, *, world=None): if world is not None and world != usertypes.JsWorld.jseval: log.webview.warning("Ignoring world ID {}".format(world)) - result = self._widget.page().mainFrame().documentElement() \ - .evaluateJavaScript(code) + document_element = self._widget.page().mainFrame().documentElement() + result = document_element.evaluateJavaScript(code) if callback is not None: callback(result) From d3f815702011450ec76ddf49f35d7dbc8dac2635 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Sun, 30 Oct 2016 18:52:45 +0100 Subject: [PATCH 4/4] Update docs --- CHANGELOG.asciidoc | 1 + README.asciidoc | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index 09dcca173..7ae6965c8 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -139,6 +139,7 @@ Changed - The `qute:settings` page now also shows option descriptions. - `qute:version` and `qutebrowser --version` now show various important paths - `:spawn`/userscripts now show a nicer error when a script wasn't found +- Various functionality now works when javascript is disabled with QtWebKit Deprecated ~~~~~~~~~~ diff --git a/README.asciidoc b/README.asciidoc index d1320ab83..0036e3c6f 100644 --- a/README.asciidoc +++ b/README.asciidoc @@ -158,8 +158,8 @@ Contributors, sorted by the number of commits in descending order: * Raphael Pierzina * Joel Torstensson * Patric Schmitz -* Tarcisio Fedrizzi * Kevin Velghe +* Tarcisio Fedrizzi * Claude * Corentin Julé * meles5