diff --git a/qutebrowser/browser/browsertab.py b/qutebrowser/browser/browsertab.py index 29b82d969..22f1c7e51 100644 --- a/qutebrowser/browser/browsertab.py +++ b/qutebrowser/browser/browsertab.py @@ -761,10 +761,6 @@ class AbstractTab(QWidget): """ raise NotImplementedError - def has_js(self): - """Check if qutebrowser can run javascript in this tab.""" - raise NotImplementedError - def shutdown(self): raise NotImplementedError diff --git a/qutebrowser/browser/commands.py b/qutebrowser/browser/commands.py index dc17c598f..f1849b0bf 100644 --- a/qutebrowser/browser/commands.py +++ b/qutebrowser/browser/commands.py @@ -1539,8 +1539,6 @@ class CommandDispatcher: text: The text to insert. """ tab = self._current_widget() - if not tab.has_js(): - raise cmdexc.CommandError("This command needs javascript enabled.") def _insert_text_cb(elem): if elem is None: diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py index 81f5604ad..8d1a1ac1c 100644 --- a/qutebrowser/browser/webengine/webenginetab.py +++ b/qutebrowser/browser/webengine/webenginetab.py @@ -528,10 +528,6 @@ class WebEngineTab(browsertab.AbstractTab): else: self._widget.page().runJavaScript(code, callback) - def has_js(self): - # QtWebEngine can run JS even if the page can't - return True - def shutdown(self): log.stub() diff --git a/qutebrowser/browser/webkit/webkittab.py b/qutebrowser/browser/webkit/webkittab.py index 6fefaa655..765c9d01d 100644 --- a/qutebrowser/browser/webkit/webkittab.py +++ b/qutebrowser/browser/webkit/webkittab.py @@ -629,10 +629,6 @@ class WebKitTab(browsertab.AbstractTab): if callback is not None: callback(result) - def has_js(self): - settings = QWebSettings.globalSettings() - return settings.testAttribute(QWebSettings.JavascriptEnabled) - def icon(self): return self._widget.icon() diff --git a/tests/end2end/features/yankpaste.feature b/tests/end2end/features/yankpaste.feature index bc9bc7ab6..f67c65103 100644 --- a/tests/end2end/features/yankpaste.feature +++ b/tests/end2end/features/yankpaste.feature @@ -256,6 +256,19 @@ Feature: Yanking and pasting. # Compare Then the javascript message "textarea contents: Hello world" should be logged + Scenario: Inserting text into an empty text field with javascript disabled + When I set general -> log-javascript-console to info + And I set content -> allow-javascript to false + And I open data/paste_primary.html + And I run :click-element id qute-textarea + And I wait for "Clicked editable element!" in the log + And I run :insert-text Hello world + And I press the keys "" + And I run :yank selection + And I set content -> allow-javascript to true + # Compare + Then the clipboard should contain "Hello world" + Scenario: Inserting text into a text field at specific position When I set general -> log-javascript-console to info And I open data/paste_primary.html