QtWebEngine: Add JS logging
This commit is contained in:
parent
e35dfe7aa3
commit
9c49900f9e
@ -25,6 +25,9 @@ from PyQt5.QtCore import pyqtSignal, Qt, QPoint
|
||||
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)
|
||||
|
6
tests/end2end/data/javascript/consolelog.html
Normal file
6
tests/end2end/data/javascript/consolelog.html
Normal file
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user