Permalink
Browse files

QtWebEngine: Add JS logging

  • Loading branch information...
The-Compiler committed Jul 13, 2016
1 parent e35dfe7 commit 9c49900f9e98fc9f11115ce2bca864ece6899b59
@@ -25,6 +25,9 @@
from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEnginePage
# pylint: enable=no-name-in-module,import-error,useless-suppression
+from qutebrowser.config import config
+from qutebrowser.utils import log
+
class WebEngineView(QWebEngineView):
@@ -58,3 +61,19 @@ class WebEnginePage(QWebEnginePage):
def certificateError(self, error):
self.certificate_error.emit()
return super().certificateError(error)
+
+ def javaScriptConsoleMessage(self, level, msg, line, source):
+ """Log javascript messages to qutebrowser's log."""
+ # FIXME:qtwebengine maybe unify this in the tab api somehow?
+ setting = config.get('general', 'log-javascript-console')
+ if setting == 'none':
+ return
+
+ level_to_logger = {
+ QWebEnginePage.InfoMessageLevel: log.js.info,
+ QWebEnginePage.WarningMessageLevel: log.js.warning,
+ QWebEnginePage.ErrorMessageLevel: log.js.error,
+ }
+ logstring = "[{}:{}] {}".format(source, line, msg)
+ logger = level_to_logger[level]
+ logger(logstring)
@@ -0,0 +1,6 @@
+<!DOCTYPE html>
+<html>
+ <body onload="console.log('console.log works!')">
+ <p>This page logs a line via console.log</p>
+ </body>
+</html>
@@ -2,6 +2,11 @@ Feature: Javascript stuff
Integration with javascript.
+ Scenario: Using console.log
+ When I set general -> log-javascript-console to debug
+ And I open data/javascript/consolelog.html
+ Then the javascript message "console.log works!" should be logged
+
# https://github.com/The-Compiler/qutebrowser/issues/906
Scenario: Closing a JS window twice (issue 906)

0 comments on commit 9c49900

Please sign in to comment.