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_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_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
|
* `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
|
### Useful environment variables for development
|
||||||
* `QT_QPA_PLATFORM`: set to `offscreen` to disable graphical output, e.g. to run tests in headless
|
* `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)
|
list(APPEND META_PUBLIC_COMPILE_DEFINITIONS SYNCTHINGWIDGETS_USE_LIBSYNCTHING)
|
||||||
endif ()
|
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
|
# configure autostart .desktop file exec path
|
||||||
set(AUTOSTART_EXEC_PATH
|
set(AUTOSTART_EXEC_PATH
|
||||||
""
|
""
|
||||||
|
|
|
@ -33,9 +33,7 @@
|
||||||
#include <QWebEngineScriptCollection>
|
#include <QWebEngineScriptCollection>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef SYNCTHINGWIDGETS_LOG_JAVASCRIPT_CONSOLE
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#endif
|
|
||||||
|
|
||||||
using namespace Data;
|
using namespace Data;
|
||||||
|
|
||||||
|
@ -285,26 +283,25 @@ bool WebPage::acceptNavigationRequest(const QUrl &url, SYNCTHINGWIDGETS_WEB_PAGE
|
||||||
void WebPage::javaScriptConsoleMessage(
|
void WebPage::javaScriptConsoleMessage(
|
||||||
QWebEnginePage::JavaScriptConsoleMessageLevel level, const QString &message, int lineNumber, const QString &sourceID)
|
QWebEnginePage::JavaScriptConsoleMessageLevel level, const QString &message, int lineNumber, const QString &sourceID)
|
||||||
{
|
{
|
||||||
Q_UNUSED(level)
|
|
||||||
Q_UNUSED(lineNumber)
|
|
||||||
Q_UNUSED(sourceID)
|
Q_UNUSED(sourceID)
|
||||||
#ifdef SYNCTHINGWIDGETS_LOG_JAVASCRIPT_CONSOLE
|
static const auto loggingEnabled = qEnvironmentVariableIntValue(PROJECT_VARNAME_UPPER "_LOG_JS_CONSOLE");
|
||||||
auto levelName = std::string_view();
|
if (loggingEnabled) {
|
||||||
switch (level) {
|
auto levelName = std::string_view();
|
||||||
case QWebEnginePage::InfoMessageLevel:
|
switch (level) {
|
||||||
levelName = "info";
|
case QWebEnginePage::InfoMessageLevel:
|
||||||
break;
|
levelName = "info";
|
||||||
case QWebEnginePage::WarningMessageLevel:
|
break;
|
||||||
levelName = "warning";
|
case QWebEnginePage::WarningMessageLevel:
|
||||||
break;
|
levelName = "warning";
|
||||||
case QWebEnginePage::ErrorMessageLevel:
|
break;
|
||||||
levelName = "error";
|
case QWebEnginePage::ErrorMessageLevel:
|
||||||
break;
|
levelName = "error";
|
||||||
default:
|
break;
|
||||||
levelName = "message";
|
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) {
|
if (level == QWebEnginePage::InfoMessageLevel) {
|
||||||
processJavaScriptConsoleMessage(message);
|
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)
|
void WebPage::javaScriptConsoleMessage(const QString &message, int lineNumber, const QString &sourceID)
|
||||||
{
|
{
|
||||||
Q_UNUSED(lineNumber)
|
|
||||||
Q_UNUSED(sourceID)
|
Q_UNUSED(sourceID)
|
||||||
#ifdef SYNCTHINGWIDGETS_LOG_JAVASCRIPT_CONSOLE
|
static const auto loggingEnabled = qEnvironmentVariableIntValue(PROJECT_VARNAME_UPPER "_LOG_JS_CONSOLE");
|
||||||
std::cerr << "JS console: line " << lineNumber << ": " << message.toLocal8Bit().data() << '\n';
|
if (loggingEnabled) {
|
||||||
#endif
|
std::cerr << "JS console: line " << lineNumber << ": " << message.toLocal8Bit().data() << '\n';
|
||||||
|
}
|
||||||
processJavaScriptConsoleMessage(message);
|
processJavaScriptConsoleMessage(message);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue