<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p style="margin-top:0;margin-bottom:0">Alright, it's qtwebengine@qt-project.org ...<br>
</p>
<br>
<br>
<div style="color: rgb(35, 38, 39);">
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font style="font-size:11pt" color="#000000" face="Calibri, sans-serif"><b>From:</b> Interest <interest-bounces@qt-project.org> on behalf of Kai Köhne <Kai.Koehne@qt.io><br>
<b>Sent:</b> Wednesday, March 6, 2019 3:14 PM<br>
<b>To:</b> Steve Atkins; Qt Project; webengine@qt-project.org<br>
<b>Subject:</b> Re: [Interest] Fixing up console.log() in QtWebEngine</font>
<div> </div>
</div>
<div dir="ltr">
<div id="x_divtagdefaultwrapper" dir="ltr" style="font-size:12pt; color:#000000; font-family:Calibri,Helvetica,sans-serif">
<p style="margin-top:0; margin-bottom:0">Hi Steve,</p>
<p style="margin-top:0; margin-bottom:0"><br>
</p>
<p style="margin-top:0; margin-bottom:0">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:</p>
<p style="margin-top:0; margin-bottom:0"><br>
</p>
<p style="margin-top:0; margin-bottom:0"><a href="https://bugs.chromium.org/p/v8/issues/detail?id=5579" class="x_OWAAutoLink" id="LPlnk801627" previewremoved="true">https://bugs.chromium.org/p/v8/issues/detail?id=5579</a><br>
</p>
<p style="margin-top:0; margin-bottom:0"><a href="https://955-bad0a5abd2d1-tainted-dot-chromiumcodereview.appspot.com/2899113003/" class="x_OWAAutoLink" id="LPlnk881243" previewremoved="true">https://955-bad0a5abd2d1-tainted-dot-chromiumcodereview.appspot.com/2899113003/</a></p>
<p style="margin-top:0; margin-bottom:0"><br>
</p>
<p style="margin-top:0; margin-bottom:0">So it looks like fixing this would either above change to be merged, or finding other ways to get the same information ...</p>
<p style="margin-top:0; margin-bottom:0"><br>
</p>
<p style="margin-top:0; margin-bottom:0">Regards</p>
<p style="margin-top:0; margin-bottom:0"><br>
</p>
<p style="margin-top:0; margin-bottom:0">Kai</p>
<p style="margin-top:0; margin-bottom:0"><br>
</p>
<p style="margin-top:0; margin-bottom:0">PS: webengine@qt-project.org is arguably the better mailing list for discussion implementation details like this, CC'ed<br>
</p>
</div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="x_divRplyFwdMsg" dir="ltr"><font style="font-size:11pt" color="#000000" face="Calibri, sans-serif"><b>From:</b> Interest <interest-bounces@qt-project.org> on behalf of Steve Atkins <steve@blighty.com><br>
<b>Sent:</b> Monday, March 4, 2019 2:42:12 PM<br>
<b>To:</b> Qt Project<br>
<b>Subject:</b> [Interest] Fixing up console.log() in QtWebEngine</font>
<div> </div>
</div>
<div class="x_BodyFragment"><font size="2"><span style="font-size:11pt">
<div class="x_PlainText">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. ( <a href="https://developers.google.com/web/tools/chrome-devtools/console/api#log" id="LPlnk338488" class="OWAAutoLink" previewremoved="true">
https://developers.google.com/web/tools/chrome-devtools/console/api#log</a> ).
<div id="LPBorder_GT_15518818856690.39487587485415176" style="margin-bottom: 20px; overflow: auto; width: 100%; text-indent: 0px;">
<table id="LPContainer_15518818856660.7462690779268722" style="width: 90%; background-color: rgb(255, 255, 255); position: relative; overflow: auto; padding-top: 20px; padding-bottom: 20px; margin-top: 20px; border-top: 1px dotted rgb(200, 200, 200); border-bottom: 1px dotted rgb(200, 200, 200);" role="presentation" cellspacing="0">
<tbody>
<tr style="border-spacing: 0px;" valign="top">
<td id="ImageCell_15518818856670.3644435456050822" style="width: 250px; position: relative; display: table-cell; padding-right: 20px;" colspan="1">
<div id="LPImageContainer_15518818856670.38352217378943554" style="background-color: rgb(255, 255, 255); height: 140px; position: relative; margin: auto; display: table; width: 250px;">
<a id="LPImageAnchor_15518818856680.2249689730862524" style="display: table-cell; text-align: center;" href="https://developers.google.com/web/tools/chrome-devtools/console/api#log" target="_blank"><img style="display: inline-block; max-width: 250px; max-height: 250px; height: 140px; width: 250px; border-width: 0px; vertical-align: bottom;" id="LPThumbnailImageID_15518818856680.5548126772536229" width="250" height="140" src="https://developers.google.com/web/images/social-webfu-16x9.png"></a></div>
</td>
<td id="TextCell_15518818856680.8455506050119196" style="vertical-align: top; position: relative; padding: 0px; display: table-cell;" colspan="2">
<div id="LPRemovePreviewContainer_15518818856680.35122841029840124"></div>
<div id="LPTitle_15518818856680.9617109260322043" style="top: 0px; color: rgb(66, 205, 83); font-weight: 400; font-size: 21px; font-family: "wf_segoe-ui_light", "Segoe UI Light", "Segoe WP Light", "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif; line-height: 21px;">
<a id="LPUrlAnchor_15518818856680.1521708360686811" style="text-decoration: none;" href="https://developers.google.com/web/tools/chrome-devtools/console/api#log" target="_blank">Console API Reference | Tools for Web Developers | Google Developers</a></div>
<div id="LPMetadata_15518818856690.15123557460595838" style="margin: 10px 0px 16px; color: rgb(102, 102, 102); font-weight: 400; font-family: "wf_segoe-ui_normal", "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif; font-size: 14px; line-height: 14px;">
developers.google.com</div>
<div id="LPDescription_15518818856690.49958534510350305" style="display: block; color: rgb(102, 102, 102); font-weight: 400; font-family: "wf_segoe-ui_normal", "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif; font-size: 14px; line-height: 20px; max-height: 100px; overflow: hidden;">
Use the Console API to write information to the console, create JavaScript profiles, and start a debugging session. console.assert(expression, object)</div>
</td>
</tr>
</tbody>
</table>
</div>
<br>
<br>
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)<br>
<br>
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.<br>
<br>
That's better than nothing, but still a little annoying if you're working on javascript logic running inside a Qt app.<br>
<br>
Does anyone know where inside the Qt-Chromium interface I should start looking if I wanted to improve things?<br>
<br>
Cheers,<br>
  Steve<br>
_______________________________________________<br>
Interest mailing list<br>
Interest@qt-project.org<br>
<a href="https://lists.qt-project.org/listinfo/interest" id="LPlnk695108" class="OWAAutoLink" previewremoved="true">https://lists.qt-project.org/listinfo/interest</a><br>
</div>
</span></font></div>
</div>
</div>
</div>
</body>
</html>