[Qtwebengine] [Interest] Fixing up console.log() in QtWebEngine

Kai Köhne Kai.Koehne at qt.io
Wed Mar 6 15:18:37 CET 2019

Alright, it's qtwebengine at qt-project.org ...

From: Interest <interest-bounces at qt-project.org> on behalf of Kai Köhne <Kai.Koehne at qt.io>
Sent: Wednesday, March 6, 2019 3:14 PM
To: Steve Atkins; Qt Project; webengine at qt-project.org
Subject: Re: [Interest] Fixing up console.log() in QtWebEngine

Hi Steve,

I agree with you that the current console.log behavior in Qt WebEngine is pretty basic. Anyhow, looking at the code the problem can be traced back to v8, Chromium's JavaScript engine:



So it looks like fixing this would either above change to be merged, or finding other ways to get the same information ...



PS: webengine at qt-project.org is arguably the better mailing list for discussion implementation details like this, CC'ed

From: Interest <interest-bounces at qt-project.org> on behalf of Steve Atkins <steve at blighty.com>
Sent: Monday, March 4, 2019 2:42:12 PM
To: Qt Project
Subject: [Interest] Fixing up console.log() in QtWebEngine

In a normal web browser console.log() takes one or more values as parameters and renders them for the user in some appropriate way. If the first parameter is a string containing %s style escapes it'll do some printf style formatting of the remaining parameters. ( https://developers.google.com/web/tools/chrome-devtools/console/api#log ).

Console API Reference | Tools for Web Developers | Google Developers<https://developers.google.com/web/tools/chrome-devtools/console/api#log>
Use the Console API to write information to the console, create JavaScript profiles, and start a debugging session. console.assert(expression, object)

Inside a QtWebEngine page console.log() accepts any number of parameters of any type. But by the time we get to Qt it arrives as QWebEnginePage::javaScriptConsoleMessage(QWebEnginePage::JavaScriptConsoleMessageLevellevel, const QString &message, int lineNumber, const QString &sourceID)

The first parameter of console.log() is converted to a string - e.g. "[Object object]" - and delivered as a QString. The remaining parameters are discarded.

That's better than nothing, but still a little annoying if you're working on javascript logic running inside a Qt app.

Does anyone know where inside the Qt-Chromium interface I should start looking if I wanted to improve things?

Interest mailing list
Interest at qt-project.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/qtwebengine/attachments/20190306/3d9499ba/attachment.html>

More information about the QtWebEngine mailing list