Allow configuring web view console logging via environment variable
This commit is contained in:
parent
2ceb9a31b0
commit
01dceb588a
|
@ -512,6 +512,7 @@ It is possible to turn on logging of the underlying library by setting environme
|
|||
* `LIB_SYNCTHING_CONNECTOR_LOG_API_REPLIES`: log replies from Syncthing's REST-API (except events)
|
||||
* `LIB_SYNCTHING_CONNECTOR_LOG_EVENTS`: log events emitted by Syncthing's events REST-API endpoint
|
||||
* `LIB_SYNCTHING_CONNECTOR_LOG_DIRS_OR_DEVS_RESETTED`: log when folders/devices are internally reset
|
||||
* `SYNCTHINGWIDGETS_LOG_JS_CONSOLE`: log message from the JavaScript console of the built-in web view
|
||||
|
||||
### Useful environment variables for development
|
||||
* `QT_QPA_PLATFORM`: set to `offscreen` to disable graphical output, e.g. to run tests in headless
|
||||
|
|
|
@ -108,16 +108,6 @@ if (USE_LIBSYNCTHING)
|
|||
list(APPEND META_PUBLIC_COMPILE_DEFINITIONS SYNCTHINGWIDGETS_USE_LIBSYNCTHING)
|
||||
endif ()
|
||||
|
||||
# configure logging JavaScript events to stderr
|
||||
option(SYNCTHING_WIDGETS_LOG_JAVASCRIPT_CONSOLE "enables logging JavaScript events of webview to stderr" OFF)
|
||||
if (SYNCTHING_WIDGETS_LOG_JAVASCRIPT_CONSOLE)
|
||||
set_property(
|
||||
SOURCE webview/webpage.cpp
|
||||
APPEND
|
||||
PROPERTY COMPILE_DEFINITIONS SYNCTHINGWIDGETS_LOG_JAVASCRIPT_CONSOLE)
|
||||
message(STATUS_MESSAGE "JavaScript console of web view will be logged to stderr")
|
||||
endif ()
|
||||
|
||||
# configure autostart .desktop file exec path
|
||||
set(AUTOSTART_EXEC_PATH
|
||||
""
|
||||
|
|
|
@ -33,9 +33,7 @@
|
|||
#include <QWebEngineScriptCollection>
|
||||
#endif
|
||||
|
||||
#ifdef SYNCTHINGWIDGETS_LOG_JAVASCRIPT_CONSOLE
|
||||
#include <iostream>
|
||||
#endif
|
||||
|
||||
using namespace Data;
|
||||
|
||||
|
@ -285,26 +283,25 @@ bool WebPage::acceptNavigationRequest(const QUrl &url, SYNCTHINGWIDGETS_WEB_PAGE
|
|||
void WebPage::javaScriptConsoleMessage(
|
||||
QWebEnginePage::JavaScriptConsoleMessageLevel level, const QString &message, int lineNumber, const QString &sourceID)
|
||||
{
|
||||
Q_UNUSED(level)
|
||||
Q_UNUSED(lineNumber)
|
||||
Q_UNUSED(sourceID)
|
||||
#ifdef SYNCTHINGWIDGETS_LOG_JAVASCRIPT_CONSOLE
|
||||
auto levelName = std::string_view();
|
||||
switch (level) {
|
||||
case QWebEnginePage::InfoMessageLevel:
|
||||
levelName = "info";
|
||||
break;
|
||||
case QWebEnginePage::WarningMessageLevel:
|
||||
levelName = "warning";
|
||||
break;
|
||||
case QWebEnginePage::ErrorMessageLevel:
|
||||
levelName = "error";
|
||||
break;
|
||||
default:
|
||||
levelName = "message";
|
||||
static const auto loggingEnabled = qEnvironmentVariableIntValue(PROJECT_VARNAME_UPPER "_LOG_JS_CONSOLE");
|
||||
if (loggingEnabled) {
|
||||
auto levelName = std::string_view();
|
||||
switch (level) {
|
||||
case QWebEnginePage::InfoMessageLevel:
|
||||
levelName = "info";
|
||||
break;
|
||||
case QWebEnginePage::WarningMessageLevel:
|
||||
levelName = "warning";
|
||||
break;
|
||||
case QWebEnginePage::ErrorMessageLevel:
|
||||
levelName = "error";
|
||||
break;
|
||||
default:
|
||||
levelName = "message";
|
||||
}
|
||||
std::cerr << "JS " << levelName << ": line " << lineNumber << ": " << message.toLocal8Bit().data() << '\n';
|
||||
}
|
||||
std::cerr << "JS " << levelName << ": line " << lineNumber << ": " << message.toLocal8Bit().data() << '\n';
|
||||
#endif
|
||||
if (level == QWebEnginePage::InfoMessageLevel) {
|
||||
processJavaScriptConsoleMessage(message);
|
||||
}
|
||||
|
@ -326,11 +323,11 @@ bool WebPage::acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &r
|
|||
*/
|
||||
void WebPage::javaScriptConsoleMessage(const QString &message, int lineNumber, const QString &sourceID)
|
||||
{
|
||||
Q_UNUSED(lineNumber)
|
||||
Q_UNUSED(sourceID)
|
||||
#ifdef SYNCTHINGWIDGETS_LOG_JAVASCRIPT_CONSOLE
|
||||
std::cerr << "JS console: line " << lineNumber << ": " << message.toLocal8Bit().data() << '\n';
|
||||
#endif
|
||||
static const auto loggingEnabled = qEnvironmentVariableIntValue(PROJECT_VARNAME_UPPER "_LOG_JS_CONSOLE");
|
||||
if (loggingEnabled) {
|
||||
std::cerr << "JS console: line " << lineNumber << ": " << message.toLocal8Bit().data() << '\n';
|
||||
}
|
||||
processJavaScriptConsoleMessage(message);
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue