[Development] Qt WebEngine (Thiago Macieira)

Sundareson, Prabindh prabu at ti.com
Fri Sep 13 07:24:40 CEST 2013


Hello Thiago, Simon,

This is a good step, and will help reduce the current implementation gaps between webkit2 and chromium's engine in terms of CSS, among others.

What is the roadmap for Graphics-surface implementation (needed for WebGL) for full screen platforms like eglfs ? I have been carrying patches for this from 5.0.0, and need to understand how this will change in the new renderer.

regards,
Prabu


-----Original Message-----
From: development-bounces+prabu=ti.com at qt-project.org [mailto:development-bounces+prabu=ti.com at qt-project.org] On Behalf Of development-request at qt-project.org
Sent: Thursday, September 12, 2013 10:23 PM
To: development at qt-project.org
Subject: Development Digest, Vol 24, Issue 44

Send Development mailing list submissions to
	development at qt-project.org

To subscribe or unsubscribe via the World Wide Web, visit
	http://lists.qt-project.org/mailman/listinfo/development
or, via email, send a message with subject or body 'help' to
	development-request at qt-project.org

You can reach the person managing the list at
	development-owner at qt-project.org

When replying, please edit your Subject line so it is more specific than "Re: Contents of Development digest..."


Today's Topics:

   1. Re: Qt WebEngine (Cornelius Hald)
   2. Re: Qt WebEngine (Thiago Macieira)
   3. Re: Qt WebEngine (Hausmann Simon)
   4. Re: constexpr and qMetaTypeId<>() (achartier at fastmail.fm)
   5. Re: New SceneGraph related issue (Tomasz Olszak)


----------------------------------------------------------------------

Message: 1
Date: Thu, 12 Sep 2013 17:06:58 +0200
From: Cornelius Hald <hald at icandy.de>
Subject: Re: [Development] Qt WebEngine
To: Knoll Lars <Lars.Knoll at digia.com>
Cc: "development at qt-project.org" <development at qt-project.org>
Message-ID: <1378998418.1660.12.camel at blackbox>
Content-Type: text/plain; charset="UTF-8"

Hi,

the FAQ states: "We intend to make QtWebEngine available on all platforms that the upstream Chromium project supports, with the exception of Android. This also means iOS won?t be supported."

So what are the plans for Android and iOS? We currently do not have QtWebkit on those platforms and support for QtWebEngine is not planned.
Does that mean we won't have any WebView at all for Android and iOS or are some kind of wrappers around native widgets planned for those systems?

Thanks!
Conny


On Thu, 2013-09-12 at 12:03 +0000, Knoll Lars wrote:
> Hi,
> 
> As many of you know, we've been doing some research on a (chromium 
> based) new web engine for Qt during spring and summer. I wanted to let 
> you know that we've now come to the conclusion that we want to 
> continue these efforts in the future.
> 
> Please check
> http://blog.qt.digia.com/blog/2013/09/12/introducing-the-qt-webengine/ 
> for all the details.
> 
> Cheers,
> Lars
> 
> _______________________________________________
> Development mailing list
> Development at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development




------------------------------

Message: 2
Date: Thu, 12 Sep 2013 08:44:20 -0700
From: Thiago Macieira <thiago.macieira at intel.com>
Subject: Re: [Development] Qt WebEngine
To: development at qt-project.org
Message-ID: <36389277.z2O0UiZeT6 at tjmaciei-mobl2>
Content-Type: text/plain; charset="us-ascii"

On quinta-feira, 12 de setembro de 2013 12:03:39, Knoll Lars wrote:
> Hi,
> 
> As many of you know, we've been doing some research on a (chromium 
> based) new web engine for Qt during spring and summer. I wanted to let 
> you know that we've now come to the conclusion that we want to 
> continue these efforts in the future.
> 
> Please check
> http://blog.qt.digia.com/blog/2013/09/12/introducing-the-qt-webengine/ 
> for all the details.

Hi Lars

Thanks for the link. I also see it making the news in social media very quickly.

I'd like to point out that Intel announced Crosswalk two days ago and it's a
Blink- & Chromium-based web runtime. That is, it overlaps quite a bit between a web engine.

I spoke to Alexis and Kenneth a while ago about Crosswalk and Qt and they assured me there is a lot that can be shared. But not knowing the details, I don't know for sure, and we couldn't interact until the project was announced.

They now are. So I ask: is there mutual benefit?

https://crosswalk-project.org/
(not other crosswalks on the web)

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part.
Url : http://lists.qt-project.org/pipermail/development/attachments/20130912/0049934f/attachment-0001.bin 

------------------------------

Message: 3
Date: Thu, 12 Sep 2013 16:04:41 +0000
From: Hausmann Simon <Simon.Hausmann at digia.com>
Subject: Re: [Development] Qt WebEngine
To: Thiago Macieira <thiago.macieira at intel.com>,
	"development at qt-project.org"	<development at qt-project.org>
Message-ID: <20130912160441.4632704.21625.54916 at digia.com>
Content-Type: text/plain; charset="us-ascii"

We're going to meet Alexis and Kenneth in two weeks. I was planning on talking to them about exactly that :)

Simon

Fra: Thiago Macieira
Sendt: 17:44 torsdag 12. september 2013
Til: development at qt-project.org
Emne: Re: [Development] Qt WebEngine


On quinta-feira, 12 de setembro de 2013 12:03:39, Knoll Lars wrote:
> Hi,
>
> As many of you know, we've been doing some research on a (chromium 
> based) new web engine for Qt during spring and summer. I wanted to let 
> you know that we've now come to the conclusion that we want to 
> continue these efforts in the future.
>
> Please check
> http://blog.qt.digia.com/blog/2013/09/12/introducing-the-qt-webengine/ 
> for all the details.

Hi Lars

Thanks for the link. I also see it making the news in social media very quickly.

I'd like to point out that Intel announced Crosswalk two days ago and it's a
Blink- & Chromium-based web runtime. That is, it overlaps quite a bit between a web engine.

I spoke to Alexis and Kenneth a while ago about Crosswalk and Qt and they assured me there is a lot that can be shared. But not knowing the details, I don't know for sure, and we couldn't interact until the project was announced.

They now are. So I ask: is there mutual benefit?

https://crosswalk-project.org/
(not other crosswalks on the web)

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.qt-project.org/pipermail/development/attachments/20130912/f646e8f2/attachment-0001.html 

------------------------------

Message: 4
Date: Thu, 12 Sep 2013 09:38:16 -0700
From: achartier at fastmail.fm
Subject: Re: [Development] constexpr and qMetaTypeId<>()
To: development at qt-project.org
Message-ID:
	<1379003896.3822.21199589.07023C11 at webmail.messagingengine.com>
Content-Type: text/plain

> Message: 1
> Date: Wed, 11 Sep 2013 19:12:26 -0700
> From: Thiago Macieira <thiago.macieira at intel.com>
> Subject: Re: [Development] constexpr and qMetaTypeId<>()
> To: development at qt-project.org
> Message-ID: <3962396.DaoebYs1tu at tjmaciei-mobl2>
> Content-Type: text/plain; charset="us-ascii"
> 
> On quarta-feira, 11 de setembro de 2013 14:29:44, 
> achartier at fastmail.fm
> wrote:
> > Hello,
> > 
> > I'd like to use qMetaTypeId<>() in a constexpr expression. 
> 
> You can't. The types are registered at runtime.
> 
> > Any help is greatly appreciated.
> 
> --
> Thiago Macieira - thiago.macieira (AT) intel.com
>   Software Architect - Intel Open Source Technology Center

> Message: 5
> Date: Thu, 12 Sep 2013 09:47:26 +0200
> From: Stephen Kelly <stephen.kelly at kdab.com>
> Subject: Re: [Development] constexpr and qMetaTypeId<>()
> To: development at qt-project.org
> Message-ID: <6202252.jE7UbQaEne at hal>
> Content-Type: text/plain; charset="us-ascii"
> 
> On Wednesday, September 11, 2013 14:29:44 achartier at fastmail.fm wrote:
> > Hello,
> > 
> > I'd like to use qMetaTypeId<>() in a constexpr expression. I have my 
> > own custom type declared as such:
> > 
> > class MyCustomClass : public QObject {
> >      Q_OBJECT
> > 
> >      // ...
> > };
> > 
> > Q_DECLARE_METATYPE(MyCustomClass*)
> 
> Unless you need to stay Qt 4 compatible, you can remove this line.
> Pointers to
> QObject derived types are automatically treated as metatypes if needed.
> 
> > 
> > I then try the following:
> > 
> > constexpr qint32 metaTypeId = qMetaTypeId<MyCustomClass*>();
> 
> This only works for built-in metatypes which have an id value defined 
> in the QMetaType::Type enum.
> 
> Thanks,
> 
> --
> Join us in October at Qt Developer Days 2013 - 
> https://devdays.kdab.com
> 
> Stephen Kelly <stephen.kelly at kdab.com> | Software Engineer KDAB 
> (Deutschland) GmbH & Co.KG, a KDAB Group Company www.kdab.com || 
> Germany +49-30-521325470 || Sweden (HQ) +46-563-540090 KDAB - Qt 
> Experts - Platform-Independent Software Solutions

Thank you Thiago and Stephen for the information. I am, however, still confused by both of your responses.

Thiago - The qMetaTypeId documentation
(http://qt-project.org/doc/qt-5.1/qtcore/qmetatype.html#qMetaTypeId)
specifically states that the type registration using this function is resolved at compile-time, not run-time.

Stephen - The qMetaTypeId documentation goes on to provide a code snippet where a custom type (MyStruct) is registered, so it would seem this should work for non-built-in types as well.

As such, the documentation leads one to believe that qMetaTypeId can be used to register one's custom type at compile-time, as I tried to do in the code snippet in my original query.

Is the documentation completely wrong or is a compile-time type registration still possible in some way? I am very interested in this, as the system I am working on would greatly benefit from this functionality.

Thanks again,

Alfonso


------------------------------

Message: 5
Date: Thu, 12 Sep 2013 18:53:13 +0200
From: Tomasz Olszak <olszak.tomasz at gmail.com>
Subject: Re: [Development] New SceneGraph related issue
To: Sletta Gunnar <Gunnar.Sletta at digia.com>
Cc: "development at qt-project.org" <development at qt-project.org>
Message-ID:
	<CAGuVYzDbA7s0hshJNa_2qc0FcvD+h_Kpx0HB5tuvrJJ4Gs8FFw at mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"

I got stracktrace. It is as you predicted glDrwaElements. Is there any possibility to make some kind of workaround patch to make it work on emulator (I suppose it is emulator GL issue), perhabs by turning off some optimizations and so on? I would like to add such patch to rpm emulator package until problem will be fixed.

#0  0xb7fe1424 in __kernel_vsyscall ()
No symbol table info available.
#1  0xb69a0cc1 in raise () from /lib/libc.so.6 No symbol table info available.
#2  0xb69a40ee in abort () from /lib/libc.so.6 No symbol table info available.
#3  0xb6999888 in __assert_fail () from /lib/libc.so.6 No symbol table info available.
#4  0xb4866d2c in glGetBufferSubDataARB () from
/usr/lib/host-gl/libGL.so.1.2
No symbol table info available.
#5  0xb4866d62 in glGetBufferSubData () from /usr/lib/host-gl/libGL.so.1.2 No symbol table info available.
#6  0xb6c20dec in glDrawElements () from /usr/lib/libGLESv2.so.1 No symbol table info available.
#7  0xb7cc3096 in QSGBatchRenderer::Renderer::renderMergedBatch (
    this=0x84e6800, batch=0x84e8100)
    at scenegraph/coreapi/qsgbatchrenderer.cpp:1863
        draw = <value optimized out>
        offset = <value optimized out>
        i = <value optimized out>
        e = <value optimized out>
        __PRETTY_FUNCTION__ = "void
QSGBatchRenderer::Renderer::renderMergedBatch(const
QSGBatchRenderer::Batch*)"
---Type <return> to continue, or q <return> to quit---
        sms = 0x84e5420
        g = 0x84e7bbc
        attrNames = <value optimized out>
        gn = 0xb7fc2e5c
        material = <value optimized out>
        program = <value optimized out>
#8  0xb7cc4e3f in QSGBatchRenderer::Renderer::renderBatches (this=0x84e6800)
    at scenegraph/coreapi/qsgbatchrenderer.cpp:2008
        b = <value optimized out>
        i = <value optimized out>
        __PRETTY_FUNCTION__ = "void
QSGBatchRenderer::Renderer::renderBatches()"
        renderOpaque = <value optimized out>
        renderAlpha = true
#9  0xb7cc6718 in QSGBatchRenderer::Renderer::render (this=0x84e6800)
    at scenegraph/coreapi/qsgbatchrenderer.cpp:2168
        __PRETTY_FUNCTION__ = "virtual void QSGBatchRenderer::Renderer::render()"
#10 0xb7cd5e10 in QSGRenderer::renderScene (this=0x84e6800, bindable=...)
    at scenegraph/coreapi/qsgrenderer.cpp:274
        profileFrames = <value optimized out>
        bindTime = 0
        renderTime = 0
---Type <return> to continue, or q <return> to quit---
        __PRETTY_FUNCTION__ = "void QSGRenderer::renderScene(const QSGBindable&)"
#11 0xb7cd60dd in QSGRenderer::renderScene (this=0x84e6800)
    at scenegraph/coreapi/qsgrenderer.cpp:231
        b = warning: RTTI symbol not found for class 'QSGRenderer::renderScene()::B'
{<QSGBindable> = {
            _vptr.QSGBindable = 0xb7fb4240}, <No data fields>}
#12 0xb7ce7e4c in QSGContext::renderNextFrame (this=0x845d620,
    renderer=0x84e6800, fboId=0) at scenegraph/qsgcontext.cpp:367 No locals.
#13 0xb7d3273e in QQuickWindowPrivate::renderSceneGraph (this=0x848c870,
    size=...) at items/qquickwindow.cpp:358
        _qml_memory_scope = {pushed = false}
        q = 0x845dc30
        fboId = 0
        devicePixelRatio = <value optimized out>
#14 0xb7d0bb04 in QSGGuiThreadRenderLoop::renderWindow (this=0x8498128,
    window=0x845dc30) at scenegraph/qsgrenderloop.cpp:288
        data = @0x8489ba4
        current = <value optimized out>
        alsoSwap = true
        cd = 0x848c870
        renderTime = 0
        swapTime = <value optimized out> ---Type <return> to continue, or q <return> to quit---
        __PRETTY_FUNCTION__ = "void
QSGGuiThreadRenderLoop::renderWindow(QQuickWindow*)"
        syncTime = 0
        renderTimer = {t1 = -4611697219702095867, t2 = 55969188728}
        profileFrames = false
#15 0xb7d0c4ee in QSGGuiThreadRenderLoop::exposureChanged (this=0x8498128,
    window=0x845dc30) at scenegraph/qsgrenderloop.cpp:335 No locals.
#16 0xb7d319be in QQuickWindow::exposeEvent (this=0x845dc30)
    at items/qquickwindow.cpp:214
        d = <value optimized out>
#17 0xb71f6b94 in QWindow::event(QEvent*) () from /usr/lib/libQt5Gui.so.5 No symbol table info available.
#18 0xb7d3dcb4 in QQuickWindow::event (this=0x845dc30, e=0xbffff880)
    at items/qquickwindow.cpp:1241
        d = <value optimized out>
#19 0xb6ec782a in QCoreApplicationPrivate::notify_helper (this=0x8055458,
    receiver=0x845dc30, event=0xbffff880) at kernel/qcoreapplication.cpp:986 No locals.
#20 0xb6ec78cb in QCoreApplication::notify (this=0xbffffc80,
    receiver=0x845dc30, event=0xbffff880) at kernel/qcoreapplication.cpp:931
        d = 0x8055458
        __PRETTY_FUNCTION__ = "virtual bool QCoreApplication::notify(QObject*, Q---Type <return> to continue, or q <return> to quit--- Event*)"
#21 0xb71e643b in QGuiApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/libQt5Gui.so.5
No symbol table info available.
#22 0xb6ec752b in QCoreApplication::notifyInternal (this=0xbffffc80,
    receiver=0x845dc30, event=0xbffff880) at kernel/qcoreapplication.cpp:869
        threadData = 0x80545b0
        result = false
        cbdata = {0x845dc30, 0xbffff880, 0xbffff81f}
        d = <value optimized out>
#23 0xb71e747a in
QGuiApplicationPrivate::processExposeEvent(QWindowSystemInterfacePrivate::ExposeEvent*)
() from /usr/lib/libQt5Gui.so.5
No symbol table info available.
#24 0xb71ee7b0 in
QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*)
() from /usr/lib/libQt5Gui.so.5
No symbol table info available.

#25 0xb71d6497 in
QWindowSystemInterface::sendWindowSystemEventsImplementation(QFlags<QEventLoop::ProcessEventsFlag>)
() from /usr/lib/libQt5Gui.so.5
No symbol table info available.
#26 0xb71d6501 in
QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>)
() from /usr/lib/libQt5Gui.so.5
No symbol table info available.
#27 0xb4e616f3 in userEventSourceDispatch(_GSource*, int (*)(void*), void*)
()
---Type <return> to continue, or q <return> to quit---
   from /usr/lib/qt5/plugins/platforms/libqxcb.so
No symbol table info available.
#28 0xb64c2a13 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 No symbol table info available.
#29 0xb64c2da8 in g_main_context_iterate.clone.5 ()
   from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#30 0xb64c2e8f in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 No symbol table info available.
#31 0xb6f2839d in QEventDispatcherGlib::processEvents (this=0x80572a0,
    flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:426
        d = 0x80562b0
        canWait = true
        result = <value optimized out>
#32 0xb4e61937 in
QPAEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
() from /usr/lib/qt5/plugins/platforms/libqxcb.so
No symbol table info available.

#33 0xb6ec5637 in QEventLoop::processEvents (this=0xbffffc18, flags=...)
    at kernel/qeventloop.cpp:136
        d = <value optimized out>
#34 0xb6ec5b67 in QEventLoop::exec (this=0xbffffc18,
    flags=<value optimized out>) at kernel/qeventloop.cpp:212
        locker = {val = 134563376}
---Type <return> to continue, or q <return> to quit---
        __PRETTY_FUNCTION__ = "int
QEventLoop::exec(QEventLoop::ProcessEventsFlags)"
        app = 0x24
        d = 0x8482d20
#35 0xb6ecd629 in QCoreApplication::exec () at
kernel/qcoreapplication.cpp:1122
        threadData = 0x80545b0
        __PRETTY_FUNCTION__ = "static int QCoreApplication::exec()"
        eventLoop = {<QObject> = {_vptr.QObject = 0xb712af08,
            static staticMetaObject = {d = {superdata = 0x0,
                stringdata = 0xb7039860, data = 0xb703a360,
                static_metacall = 0xb6f05bb0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0,
                extradata = 0x0}}, d_ptr = {d = 0x8482d20},
            static staticQtMetaObject = {d = {superdata = 0x0,
                stringdata = 0xb7083340, data = 0xb708aee0,
                static_metacall = 0, relatedMetaObjects = 0x0,
                extradata = 0x0}}}, static staticMetaObject = {d = {
              superdata = 0xb7129394, stringdata = 0xb7095480,
              data = 0xb70954e0,
              static_metacall = 0xb6f7e9d0 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0,
              extradata = 0x0}}}
        returnCode = <value optimized out> ---Type <return> to continue, or q <return> to quit---
#36 0xb71e6387 in QGuiApplication::exec() () from /usr/lib/libQt5Gui.so.5 No symbol table info available.
#37 0x08049216 in OspMain (argc=1, argv=0xbffffd94) at main.cpp:48
        app = <incomplete type>





        engine = {<QQmlEngine> = {<QJSEngine> = {<QObject> = {
                _vptr.QObject = 0xb7ba7868, static staticMetaObject = {d = {
                    superdata = 0x0, stringdata = 0xb7039860,
                    data = 0xb703a360,
                    static_metacall = 0xb6f05bb0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0,
                    extradata = 0x0}}, d_ptr = {d = 0x8092420},
                static staticQtMetaObject = {d = {superdata = 0x0,
                    stringdata = 0xb7083340, data = 0xb708aee0,
                    static_metacall = 0, relatedMetaObjects = 0x0,
                    extradata = 0x0}}}, static staticMetaObject = {d = {
                  superdata = 0xb7129394, stringdata = 0xb7adb39c,
                  data = 0xb7adb3c0,
                  static_metacall = 0xb7883f30 <QJSEngine::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0,
                  extradata = 0x0}

}, d = 0x8094120},
            static staticMetaObject = {d = {superdata = 0xb7ba463c,
                stringdata = 0xb7af9e20, data = 0xb7af9ec0,
                static_metacall = 0xb7a98aa0 <QQmlEngine::qt_static_metacall(QOb---Type <return> to continue, or q <return> to quit--- ject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0,
                extradata = 0x0}}}, static staticMetaObject = {d = {
              superdata = 0xb7ba8990, stringdata = 0xb7af2ec0,
              data = 0xb7af3000,
              static_metacall = 0xb7a25fd0 <QQmlApplicationEngine::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0,
              extradata = 0x0}}}
        window = 0x845dc30
        __PRETTY_FUNCTION__ = "int OspMain(int, char**)"
#38 0x08049375 in main (argc=1, argv=0xbffffd94) at main.cpp:56 No locals.


--
regards / pozdrawiam, Tomasz Olszak
Qt for Tizen | http://qt-project.org/wiki/Tizen Qt Certified Developer | http://qt-project.org http://linkedin.com/in/tolszak
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.qt-project.org/pipermail/development/attachments/20130912/dcb2e3ac/attachment.html 

------------------------------

_______________________________________________
Development mailing list
Development at qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


End of Development Digest, Vol 24, Issue 44
*******************************************



More information about the Development mailing list