Bobby Philip | 3 Dec 17:05 2014
Picon

Building qtwebkit for mips

Hi,
 I have successfully built qtwebkit from the qt5.3 source tarball for a mips based platform.
I see that the qtwebkit shared library size is around 600MB, which is an order of magnitude higher than what I remember for qt4.8
Is this an expected size? Is is possible to configure it so that I can reduce the size, by maybe removing unwanted modules?

Regards
Bob
_______________________________________________
webkit-qt mailing list
webkit-qt <at> lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-qt
Florian Bruhin | 16 Nov 23:24 2014

Handling downloads with QtWebKit

Hi,

I'm searching for some howto or example on how to handle downloads
with QtWebkit correctly, especially the unsupportedContent signal.

My main problem is what to do with the open QNetworkReply while asking
the user for a filename to save the file to. I've looked into some
existing projects using QtWebKit and I've seen these approaches so
far:

- Just downloading to RAM (i.e. the default Qt behaviour, ignoring
  readRead with no buffer size set) -> RAM could fill up rather fast.
  I have a 250 MBit connection here, so potentially a gigabyte of RAM
  is filled if I take 30 seconds to enter a filename.

- Not downloading anything until the filename is entered -> server
  will probably close the connection after some seconds.

- Just re-doing the request using the URL from the reply -> Could lead
  to a lot of problems, e.g. with DRM-like "you may download this file
  N times" sites.

- Downloading to a temporary file until the user has entered the
  filename, then copying it over and deleting the temporary file.

The last approach seems to be the cleanest to me, and this seems to be
what Firefox/Chrome do as well. I've seen the Otter browser[1] doing
this, but not anything else yet.

Am I on the right track? Is there some documentation about how to do
this the right way anywhere?

Thanks!

Florian

[1] http://otter-browser.org/

--

-- 
http://www.the-compiler.org | me <at> the-compiler.org (Mail/XMPP)
             GPG 0xFD55A072 | http://the-compiler.org/pubkey.asc
         I love long mails! | http://email.is-not-s.ms/
_______________________________________________
webkit-qt mailing list
webkit-qt <at> lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-qt
Jorge Fernandez Monteagudo | 9 Nov 10:25 2014

WebGL rendering offscreen

Hi all!

This is my first message in this list. Maybe this question has been asked before several times
but I've not been able to find a link with an answer, then I go to the source :)

I'm trying to embed a WebGL page render in my OpenGL application. I've develop a little test case
using Qt 5.3.2, when I'm able to show a static html page rendered in a OpenGL texture in a QGLWidget.
This texture comes from a QGLFramebufferObject. I use the QWebPage 'repaintRequested' signal to
do the FBO generation. This is the code:

QGLFramebufferObject *mp_fbo;
QWebPage *mp_Page;
QPainter m_Painter;

void TGSWebNavigator::onRepaintRequested(const QRect& _rect)
{
        ...
        // Paint the view in the FBO.
        m_Painter.begin( mp_fbo );
        mp_Page->mainFrame()->render( &m_Painter, _rect );
        m_Painter.end();

        // Repaint QGLWidget with the new FBO.
}

If I try to do the same with an URL pointing to a WebGL I get OpenGL errors. The problem I think is related
to OpenGL contexts because the OpenGL widget has his own context and the WebGL rendering is done
is another one. In a static html page no new context is created when rendering is done. I've set several
traces to show the current context:

        qDebug() << "[TGSWebNavigator] onRepaintRequested 1... ctx" << QGLContext::currentContext();
        m_Painter.begin( mp_fbo );
        qDebug() << "[TGSWebNavigator] onRepaintRequested 2... ctx" << QGLContext::currentContext();
        mp_Page->mainFrame()->render( &m_Painter, _rect );
        qDebug() << "[TGSWebNavigator] onRepaintRequested 3... ctx" << QGLContext::currentContext();
        m_Painter.end();
        qDebug() << "[TGSWebNavigator] onRepaintRequested 4... ctx" << QGLContext::currentContext();

When I start seeing different context in trace 2 and 3, the OpenGL errors begins.

I've tried using 'QGLPixelBuffer' because you can set a shared widget which you want to share textures
(my QGLWidget) with no luck. The only solution comes from replace the FBO with a QImage, render
on it and finally change the texture I use in the QGLWidget with the contents from the QImage but this
it's not an option, the perfomance is very affected.

Then my question is: are there any options? Can I set the context where the WebGL rendering is done?
Or, at least make it share with a given context? Maybe I'm totally wrong and there is other ways to do
what I'm trying to do... Any comment, link, info is welcome!

Best regards,
Jorge

Este mensaje se dirige exclusivamente a su destinatario y puede contener información privilegiada o
CONFIDENCIAL. Si no es vd. el destinatario indicado, queda notificado de que la utilización,
divulgación y/o copia sin autorización está prohibida en virtud de la legislación vigente. Si ha
recibido este mensaje por error, le rogamos que nos lo comunique inmediatamente por esta misma vía y
proceda a su destrucción.

This message is intended exclusively for its addressee and may contain information that is CONFIDENTIAL
and protected by professional privilege.
If you are not the intended recipient you are hereby notified that any dissemination, copy or disclosure of
this communication is strictly prohibited by law. If this message has been received in error, please
immediately notify us via e-mail and delete it.
_______________________________________________
webkit-qt mailing list
webkit-qt <at> lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-qt
Emanuel Koczwara | 14 Oct 22:45 2014
Picon

Vimeo

Hi,

   Video from vimeo doesn't work on windows and linux. Qt 5.3.2 from 
git. Any ideas? Should it work?

Thanks,
Emanuel
Andre Barth | 14 Oct 15:46 2014

Qt 5.2.1 / 5.3.2 with JIT_ENABLED=0: Assert / Crash in LLIntData.cpp; Windows 7 x64

Hi all,

I tried building QtWebkit with JIT_ENABLED=0 what enables LLINT.

For Qt 5.2.1 & 5.3.2, I'm running into this assert then

bitwise_cast<uint32_t*>(&testVector)[sizeof(void*)/sizeof(uint32_t) + 1] == 42

in \qt\qtwebkit\Source\JavaScriptCore\llint\LLIntData.cpp

Here's the memory layout I'm seeing:

&testVector
0x000000000026e8e8 {m_size=42 }
    WTF::VectorBuffer<int,0>: {...}
    m_size: 42
&testVector.m_size
0x000000000026e8f8 {42}
&testVector.m_capacity
0x000000000026e8f0 {42}

And memory: (0x000000000026E8E8  is &testVector)
0x000000000026E8E8  | 06339100 00000000 0000002a cccccccc 0000002a cccccccc cccccccc

Where the assert reads out [0xcccccccc] at index 3.

Can this assert be "ignored" and/or would I have to define another build setting for LLINT? 

I asked that question on the qt-project already:
http://comments.gmane.org/gmane.comp.lib.qt.user/13631 and it was suggested to log a bug.
If it was, do you see any ways to fix that problem locally?

Thanks,
Andre
Emanuel Koczwara | 3 Oct 11:49 2014
Picon

Silverlight

Hi,

   Silverlight doesn't work with Qt 4.8.6 and Qt 5.3.2 on linux (debian) 
and windows (7). It just doesn't work, or can I somehow force it to 
work? The same situation with videos from vimeo.

Thanks,
Emanuel
Allan Sandfeld Jensen | 25 Sep 15:26 2014

QtWebKit 2.3.4 released

Hi all

It has been more than a year since I tagged QtWebKit 2.3.3. I have recently 
tagged 2.3.4 and you can find the tarball graciously hosted by KDE at 
http://download.kde.org/stable/qtwebkit-2.3/2.3.4/src/

As always there are no new features, just bug-fixes and support for newer 
compilers, third party libraries, and more platforms. It can now also link 
build against gstreamer 1.0 instead of 0.10.

Best regards
`Allan Jensen
Jonathan Alley | 11 Sep 23:30 2014

Safe to ignore assert?

Hello everybody,

 

We are repeatedly running into an assert while clicking in a web page shown using QtWebKit, we currently using Qt 4.8.5. After changing the ASSERT macro to not call the CRASH macro to prevent our application from crashing while in debug mode there don’t appear to be any issues but is it safe to ignore this assert?

 

Assert on double click:

ASSERT(prev != *this);
WebCore::VisiblePosition::previous(WebCore::EditingBoundaryCrossingRule rule)  Line 87 + 0x46 bytes                C++

WebCore::positionAvoidingFirstPositionInTable(const WebCore::VisiblePosition & c)  Line 339 + 0xe bytes           C++

WebCore::startPositionForLine(const WebCore::VisiblePosition & c)  Line 384 + 0xd bytes            C++

WebCore::startOfLine(const WebCore::VisiblePosition & c)  Line 389 + 0xd bytes              C++

WebCore::inSameLine(const WebCore::VisiblePosition & a, const WebCore::VisiblePosition & b)  Line 465 + 0x1c bytes  C++

WebCore::VisiblePosition::init(const WebCore::Position & position, WebCore::EAffinity affinity)  Line 59 + 0x4c bytes     C++

WebCore::VisiblePosition::VisiblePosition(const WebCore::Position & pos, WebCore::EAffinity affinity)  Line 50 C++

WebCore::endPositionForLine(const WebCore::VisiblePosition & c)  Line 441 + 0xe bytes              C++

WebCore::endOfLine(const WebCore::VisiblePosition & c)  Line 446 + 0xd bytes                C++

WebCore::isEndOfLine(const WebCore::VisiblePosition & p)  Line 475 + 0x1c bytes           C++

WebCore::VisibleSelection::setStartAndEndFromBaseAndExtentRespectingGranularity(WebCore::TextGranularity granularity)  Line 290 + 0x1c bytes            C++

WebCore::VisibleSelection::validate(WebCore::TextGranularity granularity)  Line 413     C++

WebCore::VisibleSelection::expandUsingGranularity(WebCore::TextGranularity granularity)  Line 191    C++

WebCore::EventHandler::selectClosestWordFromMouseEvent(const WebCore::MouseEventWithHitTestResults & result)  Line 286                C++

WebCore::EventHandler::handleMousePressEventDoubleClick(const WebCore::MouseEventWithHitTestResults & event)  Line 336                C++

WebCore::EventHandler::handleMousePressEvent(const WebCore::MouseEventWithHitTestResults & event)  Line 492 + 0xc bytes             C++

WebCore::EventHandler::handleMousePressEvent(const WebCore::PlatformMouseEvent & mouseEvent)  Line 1465 + 0xf bytes     C++

QWebPagePrivate::mouseDoubleClickEvent<QMouseEvent>(QMouseEvent * ev)  Line 737 + 0x13 bytes             C++

QWebPage::event(QEvent * ev)  Line 3058          C++

QWebView::mouseDoubleClickEvent(QMouseEvent * ev)  Line 1016      C++

 

Assert on clicking on text:

ASSERT(prev != *this);

WebCore::VisiblePosition::previous(WebCore::EditingBoundaryCrossingRule rule)  Line 87 + 0x46 bytes                C++

WebCore::positionAvoidingFirstPositionInTable(const WebCore::VisiblePosition & c)  Line 339 + 0xe bytes           C++

WebCore::startPositionForLine(const WebCore::VisiblePosition & c)  Line 384 + 0xd bytes            C++

WebCore::startOfLine(const WebCore::VisiblePosition & c)  Line 389 + 0xd bytes              C++

WebCore::inSameLine(const WebCore::VisiblePosition & a, const WebCore::VisiblePosition & b)  Line 465 + 0x1c bytes  C++

WebCore::VisiblePosition::init(const WebCore::Position & position, WebCore::EAffinity affinity)  Line 59 + 0x4c bytes     C++

WebCore::VisiblePosition::VisiblePosition(const WebCore::Position & pos, WebCore::EAffinity affinity)  Line 50 C++

WebCore::RenderObject::createVisiblePosition(int offset, WebCore::EAffinity affinity)  Line 2572 + 0x4d bytes  C++

WebCore::RenderText::positionForPoint(const WebCore::IntPoint & point)  Line 544 + 0x1c bytes            C++

WebCore::EventHandler::handleMousePressEventSingleClick(const WebCore::MouseEventWithHitTestResults & event)  Line 391 + 0x38 bytes     C++

WebCore::EventHandler::handleMousePressEvent(const WebCore::MouseEventWithHitTestResults & event)  Line 496 + 0xc bytes             C++

WebCore::EventHandler::handleMousePressEvent(const WebCore::PlatformMouseEvent & mouseEvent)  Line 1465 + 0xf bytes     C++

QWebPagePrivate::mousePressEvent<QMouseEvent>(QMouseEvent * ev)  Line 714 + 0x13 bytes          C++

QWebPage::event(QEvent * ev)  Line 3055          C++

QWebView::mousePressEvent(QMouseEvent * ev)  Line 1005  C++

 

Thanks you any help you can provide,

 

Jonathan

_______________________________________________
webkit-qt mailing list
webkit-qt <at> lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-qt
Emanuel Koczwara | 11 Sep 05:11 2014
Picon

Need help with optional features

Hi,

   I'm building Qt 5.3 (from git) under windows 7 with msvc2010. I wan 
to enable some addidional features. The problem is: every time I modify 
features.pri (when I enable a feature) I get compilation error.

   I'm trying to solve this couple of days now and it's a little 
frustrating. First, I've enabled many of these features in command line 
(build-webkit perl script parameters) with hope that it will increase 
support for html5. Compilation failed, too long command at some point. 
Then I've found features.pri. So I've enabled many of them there. 
Compilation failed with an error. I've found that error, disabled 
responsible feature, build again. Another error. I've found that error, 
disabled responsible feature, build again. Another error. I've found 
that error, disabled responsible feature, build again... and i'm running 
win 7 on virtual machine, every compilation is about 1 hour (or more). 
At some point I realised that this is hopeless and I've changed my 
strategy. I've returned to default settings and enabled only one 
feature. Compilation failed. I've enabled other feature. Compilation 
failed. Well... Hm...

The question is: why are some features disabled? Are they incomplete? 
Are they only for webkit devs? End user shoudn't modify this file? I'm 
totally lost.

Thanks,
Emanuel
Nancy Feng (defeng | 10 Sep 23:00 2014
Picon

where does the updateEvent being posted

I am using qtwebkit on a embedded device, I am wondering where does the QtEvent "UpdateRequest" (77) are posted.

I have a test webpage which only contains a video tag(media source is valid, no auto play). After load the page, I do not see video starts to play which is expected. But I still see "UpdateRequest" are being handled and trigger repaint.

I have already hard coded "m_player->didLoadingProgress()" to be false, so it does not call RenderVideo::updateFromElement for re-layout. It puzzled me that where does the "UpdateRequest" come from? 

I am new to webkit, so please anyone could explain a little bit? Or point me out to any wiki or part of the code?

Thanks,
Nancy
_______________________________________________
webkit-qt mailing list
webkit-qt <at> lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-qt
Massimo Callegari | 5 Sep 13:01 2014
Picon

Custom keycodes not accepted

Hi everyone,
I have a problem with QtWebKit 5.3.1 not forwarding custom keycodes to the Javascript layer. Basically the "onkeypress" event is not fired.

I am developing my own IR remote control driver inside the eglfs plugin. I submit the keycodes to the upper layers like this:

QWindowSystemInterface::handleKeyEvent(0, QEvent::KeyPress, keyCode, Qt::NoModifier);
QWindowSystemInterface::handleKeyEvent(0, QEvent::KeyRelease, keyCode, Qt::NoModifier);

As long as I send Qt keycodes (like Qt::Key_0, Qt::Key_Up, etc..) I receive the Javascript event. When I send custom keycodes like 61506, 61507, etc, they get marked as not accepted. I guess by the QWebView class.
In my previous system I was using QtWebKit 2.3.3 + Qt 4.8.6 + DirectFB and it was working fine with the same keycodes.

In my simple browser application I redefined the keyPressEvent method like this:

void MainWindow::keyPressEvent(QKeyEvent *ev)
{
    qDebug() << "key pressed:" << ev->key() << "accepted:" << ev->isAccepted();
    ev->accept();
    m_view->event(ev);
    if (ev->isAccepted())
        qDebug()  << "Event accepted";
    else
        qDebug()  << "Event NOT accepted";
    QWidget::keyPressEvent(ev);
}

m_view is a pointer to QWebView.

I receive all the keycodes and at the beginning of the function the events are still marked as accepted. 
But even if I try to force to accept them, when they enter the QWebView they are always not accepted, thus not forwarded to the Javascript layer.

Is there a particular reason for this or is there a way to workaround it ?

Thanks in advance,
Massimo

_______________________________________________
webkit-qt mailing list
webkit-qt <at> lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-qt

Gmane