Bug 105158 - [Qt][WK1]REGRESSION(r137811): compositing/tiling/crash-huge-layer.html makes the following test crash on 32 bit
Summary: [Qt][WK1]REGRESSION(r137811): compositing/tiling/crash-huge-layer.html makes ...
Status: RESOLVED INVALID
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: 420+
Hardware: All All
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks: 79668 105073
  Show dependency treegraph
 
Reported: 2012-12-17 02:28 PST by Csaba Osztrogonác
Modified: 2014-02-03 03:23 PST (History)
8 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Csaba Osztrogonác 2012-12-17 02:28:20 PST
After https://trac.webkit.org/changeset/137811 compositing/tiling/huge-layer-img.html
started to crash on 32 bit Qt-WK1 bots with the following crash log:
http://build.webkit.sed.hu/results/x86-32%20Linux%20Qt%20Release%20NRWT/r137886%20%2825490%29/compositing/tiling/huge-layer-img-crash-log.txt
Comment 1 Csaba Osztrogonác 2012-12-17 02:29:13 PST
It passes if we run only this test, but crahes if we run all of them.
And I managed to reproduce the crash with running this two tests:
compositing/tiling/crash-huge-layer.html compositing/tiling/huge-layer-img.html
Comment 2 Csaba Osztrogonác 2012-12-17 02:53:21 PST
Here is the GDB backtrace on r137886:

$ gdb WebKitBuild/Debug/bin/DumpRenderTree
GNU gdb (GDB) 7.0.1-debian
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /mnt/raptor3/slaves/qt-linux-32-debug/build/WebKitBuild/Debug/bin/DumpRenderTree...done.
(gdb) run compositing/tiling/crash-huge-layer.html compositing/tiling/huge-layer-img.html
Starting program: /mnt/raptor3/slaves/qt-linux-32-debug/build/WebKitBuild/Debug/bin/DumpRenderTree compositing/tiling/crash-huge-layer.html compositing/tiling/huge-layer-img.html
[Thread debugging using libthread_db enabled]
[New Thread 0xf150fb70 (LWP 31364)]
[Thread 0xf150fb70 (LWP 31364) exited]
[New Thread 0xf150fb70 (LWP 31365)]
[New Thread 0xf0d78b70 (LWP 31366)]
Source:

<!DOCTYPE html><html><head><script>
    if (window.testRunner)
        testRunner.dumpAsText();
</script>
</head><body><p>This is a test for <a href="https://bugs.webkit.org/show_bug.cgi?id=65637">Bug 65637: Crash beneath PlatformCALayerWinInternal::updateTiles when zooming on Google Maps</a>. The test passes if the browser does not crash.</p>
<div style="width: 33554432px; height: 33554432px; -webkit-transform: translateZ(0);">Did you crash?</div>
</body></html>
Content-Type: text/plain
This is a test for Bug 65637: Crash beneath PlatformCALayerWinInternal::updateTiles when zooming on Google Maps. The test passes if the browser does not crash.

Did you crash?
#EOF
#EOF
#EOF
1   0xf65767d2 /mnt/raptor3/slaves/qt-linux-32-debug/build/WebKitBuild/Debug/lib/libQt5WebKit.so.5(_ZN3WTF10fastMallocEj+0x7a) [0xf65767d2]
2   0xf596e112 /mnt/raptor3/slaves/qt-linux-32-debug/build/WebKitBuild/Debug/lib/libQt5WebKit.so.5(+0x10e0112) [0xf596e112]
3   0xf596e00a /mnt/raptor3/slaves/qt-linux-32-debug/build/WebKitBuild/Debug/lib/libQt5WebKit.so.5(+0x10e000a) [0xf596e00a]
4   0xf596df5c /mnt/raptor3/slaves/qt-linux-32-debug/build/WebKitBuild/Debug/lib/libQt5WebKit.so.5(+0x10dff5c) [0xf596df5c]
5   0xf596dd9b /mnt/raptor3/slaves/qt-linux-32-debug/build/WebKitBuild/Debug/lib/libQt5WebKit.so.5(+0x10dfd9b) [0xf596dd9b]
6   0xf596dafd /mnt/raptor3/slaves/qt-linux-32-debug/build/WebKitBuild/Debug/lib/libQt5WebKit.so.5(+0x10dfafd) [0xf596dafd]
7   0xf596d799 /mnt/raptor3/slaves/qt-linux-32-debug/build/WebKitBuild/Debug/lib/libQt5WebKit.so.5(+0x10df799) [0xf596d799]
8   0xf596d146 /mnt/raptor3/slaves/qt-linux-32-debug/build/WebKitBuild/Debug/lib/libQt5WebKit.so.5(+0x10df146) [0xf596d146]
9   0xf596d305 /mnt/raptor3/slaves/qt-linux-32-debug/build/WebKitBuild/Debug/lib/libQt5WebKit.so.5(+0x10df305) [0xf596d305]
10  0xf5969b26 /mnt/raptor3/slaves/qt-linux-32-debug/build/WebKitBuild/Debug/lib/libQt5WebKit.so.5(+0x10dbb26) [0xf5969b26]
11  0xf5969643 /mnt/raptor3/slaves/qt-linux-32-debug/build/WebKitBuild/Debug/lib/libQt5WebKit.so.5(+0x10db643) [0xf5969643]
12  0xf59694e4 /mnt/raptor3/slaves/qt-linux-32-debug/build/WebKitBuild/Debug/lib/libQt5WebKit.so.5(+0x10db4e4) [0xf59694e4]
13  0xf5969541 /mnt/raptor3/slaves/qt-linux-32-debug/build/WebKitBuild/Debug/lib/libQt5WebKit.so.5(+0x10db541) [0xf5969541]
14  0xf59695e6 /mnt/raptor3/slaves/qt-linux-32-debug/build/WebKitBuild/Debug/lib/libQt5WebKit.so.5(+0x10db5e6) [0xf59695e6]
15  0xf59695e6 /mnt/raptor3/slaves/qt-linux-32-debug/build/WebKitBuild/Debug/lib/libQt5WebKit.so.5(+0x10db5e6) [0xf59695e6]
16  0xf59695e6 /mnt/raptor3/slaves/qt-linux-32-debug/build/WebKitBuild/Debug/lib/libQt5WebKit.so.5(+0x10db5e6) [0xf59695e6]
17  0xf59695e6 /mnt/raptor3/slaves/qt-linux-32-debug/build/WebKitBuild/Debug/lib/libQt5WebKit.so.5(+0x10db5e6) [0xf59695e6]
18  0xf59695e6 /mnt/raptor3/slaves/qt-linux-32-debug/build/WebKitBuild/Debug/lib/libQt5WebKit.so.5(+0x10db5e6) [0xf59695e6]
19  0xf582c4f1 /mnt/raptor3/slaves/qt-linux-32-debug/build/WebKitBuild/Debug/lib/libQt5WebKit.so.5(+0xf9e4f1) [0xf582c4f1]
20  0xf559db48 /mnt/raptor3/slaves/qt-linux-32-debug/build/WebKitBuild/Debug/lib/libQt5WebKit.so.5(+0xd0fb48) [0xf559db48]
21  0xf559de08 /mnt/raptor3/slaves/qt-linux-32-debug/build/WebKitBuild/Debug/lib/libQt5WebKit.so.5(+0xd0fe08) [0xf559de08]
22  0xf4b280b5 /mnt/raptor3/slaves/qt-linux-32-debug/build/WebKitBuild/Debug/lib/libQt5WebKit.so.5(+0x29a0b5) [0xf4b280b5]
23  0xf4b2884e /mnt/raptor3/slaves/qt-linux-32-debug/build/WebKitBuild/Debug/lib/libQt5WebKit.so.5(+0x29a84e) [0xf4b2884e]
24  0xf56bb9a2 /mnt/raptor3/slaves/qt-linux-32-debug/build/WebKitBuild/Debug/lib/libQt5WebKit.so.5(+0xe2d9a2) [0xf56bb9a2]
25  0xf56bb8db /mnt/raptor3/slaves/qt-linux-32-debug/build/WebKitBuild/Debug/lib/libQt5WebKit.so.5(+0xe2d8db) [0xf56bb8db]
26  0xf599efbc /mnt/raptor3/slaves/qt-linux-32-debug/build/WebKitBuild/Debug/lib/libQt5WebKit.so.5(+0x1110fbc) [0xf599efbc]
27  0xf384aeb4 /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Core.so.5(_ZN7QObject5eventEP6QEvent+0x84) [0xf384aeb4]
28  0xf41caa6c /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Widgets.so.5(_ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent+0xac) [0xf41caa6c]
29  0xf41d1152 /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Widgets.so.5(_ZN12QApplication6notifyEP7QObjectP6QEvent+0x152) [0xf41d1152]
30  0xf382395b /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Core.so.5(_ZN16QCoreApplication14notifyInternalEP7QObjectP6QEvent+0x7b) [0xf382395b]
31  0xf3873358 /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Core.so.5(_ZN14QTimerInfoList14activateTimersEv+0x3a8) [0xf3873358]

Program received signal SIGSEGV, Segmentation fault.
0xf65767dc in WTF::fastMalloc (n=1112337744) at /mnt/raptor3/slaves/qt-linux-32-debug/build/Source/WTF/wtf/FastMalloc.cpp:273
273             CRASH();
(gdb) bt
#0  0xf65767dc in WTF::fastMalloc (n=1112337744) at /mnt/raptor3/slaves/qt-linux-32-debug/build/Source/WTF/wtf/FastMalloc.cpp:273
#1  0xf596e112 in WTF::VectorBufferBase<WebCore::TextureMapperTile>::allocateBuffer (this=0x81146a0, newCapacity=46347406)
    at /mnt/raptor3/slaves/qt-linux-32-debug/build/Source/WTF/wtf/Vector.h:258
#2  0xf596e00a in WTF::Vector<WebCore::TextureMapperTile, 0u>::reserveCapacity (this=0x811469c, newCapacity=46347406)
    at /mnt/raptor3/slaves/qt-linux-32-debug/build/Source/WTF/wtf/Vector.h:896
#3  0xf596df5c in WTF::Vector<WebCore::TextureMapperTile, 0u>::expandCapacity (this=0x811469c, newMinCapacity=37077925)
    at /mnt/raptor3/slaves/qt-linux-32-debug/build/Source/WTF/wtf/Vector.h:813
#4  0xf596dd9b in WTF::Vector<WebCore::TextureMapperTile, 0u>::expandCapacity (this=0x811469c, newMinCapacity=37077925, ptr=0xffffc35c)
    at /mnt/raptor3/slaves/qt-linux-32-debug/build/Source/WTF/wtf/Vector.h:820
#5  0xf596dafd in WTF::Vector<WebCore::TextureMapperTile, 0u>::appendSlowCase<WebCore::TextureMapperTile> (this=0x811469c, val=...)
    at /mnt/raptor3/slaves/qt-linux-32-debug/build/Source/WTF/wtf/Vector.h:1010
#6  0xf596d799 in WTF::Vector<WebCore::TextureMapperTile, 0u>::append<WebCore::TextureMapperTile> (this=0x811469c, val=...)
    at /mnt/raptor3/slaves/qt-linux-32-debug/build/Source/WTF/wtf/Vector.h:1001
#7  0xf596d146 in WebCore::TextureMapperTiledBackingStore::createOrDestroyTilesIfNeeded (this=0x8114690, size=..., tileSize=..., hasAlpha=true)
    at /mnt/raptor3/slaves/qt-linux-32-debug/build/Source/WebCore/platform/graphics/texmap/TextureMapperBackingStore.cpp:203
#8  0xf596d305 in WebCore::TextureMapperTiledBackingStore::updateContents (this=0x8114690, textureMapper=0x8136238, sourceLayer=0x814f8e0,
    totalSize=..., dirtyRect=..., updateContentsFlag=WebCore::BitmapTexture::UpdateCanModifyOriginalImageData)
    at /mnt/raptor3/slaves/qt-linux-32-debug/build/Source/WebCore/platform/graphics/texmap/TextureMapperBackingStore.cpp:221
#9  0xf5969b26 in WebCore::GraphicsLayerTextureMapper::prepareBackingStore (this=0x814f8e0)
    at /mnt/raptor3/slaves/qt-linux-32-debug/build/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:492
#10 0xf5969643 in WebCore::GraphicsLayerTextureMapper::updateBackingStore (this=0x814f8e0)
    at /mnt/raptor3/slaves/qt-linux-32-debug/build/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:439
#11 0xf59694e4 in WebCore::GraphicsLayerTextureMapper::flushCompositingStateForThisLayerOnly (this=0x814f8e0)
    at /mnt/raptor3/slaves/qt-linux-32-debug/build/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:408
#12 0xf5969541 in WebCore::GraphicsLayerTextureMapper::flushCompositingState (this=0x814f8e0, rect=...)
    at /mnt/raptor3/slaves/qt-linux-32-debug/build/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:419
#13 0xf59695e6 in WebCore::GraphicsLayerTextureMapper::flushCompositingState (this=0x8140038, rect=...)
    at /mnt/raptor3/slaves/qt-linux-32-debug/build/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:426
#14 0xf59695e6 in WebCore::GraphicsLayerTextureMapper::flushCompositingState (this=0x814a518, rect=...)
    at /mnt/raptor3/slaves/qt-linux-32-debug/build/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:426
#15 0xf59695e6 in WebCore::GraphicsLayerTextureMapper::flushCompositingState (this=0x8156a90, rect=...)
    at /mnt/raptor3/slaves/qt-linux-32-debug/build/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:426
#16 0xf59695e6 in WebCore::GraphicsLayerTextureMapper::flushCompositingState (this=0x8149d98, rect=...)
    at /mnt/raptor3/slaves/qt-linux-32-debug/build/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:426
#17 0xf59695e6 in WebCore::GraphicsLayerTextureMapper::flushCompositingState (this=0x81513a8, rect=...)
    at /mnt/raptor3/slaves/qt-linux-32-debug/build/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:426
#18 0xf582c4f1 in WebCore::RenderLayerCompositor::flushPendingLayerChanges (this=0x8122fc0, isFlushRoot=true)
    at /mnt/raptor3/slaves/qt-linux-32-debug/build/Source/WebCore/rendering/RenderLayerCompositor.cpp:326
#19 0xf559db48 in WebCore::FrameView::flushCompositingStateForThisFrame (this=0x80a6070, rootFrameForFlush=0x80ab228)
    at /mnt/raptor3/slaves/qt-linux-32-debug/build/Source/WebCore/page/FrameView.cpp:847
#20 0xf559de08 in WebCore::FrameView::flushCompositingStateIncludingSubframes (this=0x80a6070)
    at /mnt/raptor3/slaves/qt-linux-32-debug/build/Source/WebCore/page/FrameView.cpp:929
#21 0xf4b280b5 in WebCore::TextureMapperLayerClientQt::syncLayers (this=0x814dac8)
    at /mnt/raptor3/slaves/qt-linux-32-debug/build/Source/WebKit/qt/WebCoreSupport/TextureMapperLayerClientQt.cpp:89
---Type <return> to continue, or q <return> to quit---
#22 0xf4b2884e in WebCore::Timer<WebCore::TextureMapperLayerClientQt>::fired (this=0x814dad0)
    at /mnt/raptor3/slaves/qt-linux-32-debug/build/Source/WebCore/platform/Timer.h:106
#23 0xf56bb9a2 in WebCore::ThreadTimers::sharedTimerFiredInternal (this=0xf1308150)
    at /mnt/raptor3/slaves/qt-linux-32-debug/build/Source/WebCore/platform/ThreadTimers.cpp:116
#24 0xf56bb8db in WebCore::ThreadTimers::sharedTimerFired ()
    at /mnt/raptor3/slaves/qt-linux-32-debug/build/Source/WebCore/platform/ThreadTimers.cpp:93
#25 0xf599efbc in WebCore::SharedTimerQt::timerEvent (this=0xf1308168, ev=0xffffcd6c)
    at /mnt/raptor3/slaves/qt-linux-32-debug/build/Source/WebCore/platform/qt/SharedTimerQt.cpp:113
#26 0xf384aeb4 in QObject::event(QEvent*) () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Core.so.5
#27 0xf41caa6c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Widgets.so.5
#28 0xf41d1152 in QApplication::notify(QObject*, QEvent*) () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Widgets.so.5
#29 0xf382395b in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Core.so.5
#30 0xf3873358 in QTimerInfoList::activateTimers() () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Core.so.5
#31 0xf3873f0a in ?? () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Core.so.5
#32 0xf7a64305 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#33 0xf7a67fe8 in ?? () from /lib/libglib-2.0.so.0
#34 0xf7a681c8 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#35 0xf3873be3 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Core.so.5
#36 0xf16b0267 in ?? () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/plugins/platforms/libxcb.so
#37 0xf3821f59 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Core.so.5
#38 0xf3822927 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Core.so.5
#39 0xf3828f79 in QCoreApplication::exec() () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Core.so.5
#40 0xf3ad3ca7 in QGuiApplication::exec() () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Gui.so.5
#41 0xf41c9d77 in QApplication::exec() () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Widgets.so.5
#42 0x0806f665 in main (argc=3, argv=0xffffd294) at /mnt/raptor3/slaves/qt-linux-32-debug/build/Tools/DumpRenderTree/qt/DumpRenderTreeMain.cpp:203
(gdb)
Comment 3 Csaba Osztrogonác 2012-12-17 02:58:02 PST
I meant WK1.
Comment 4 Simon Hausmann 2012-12-17 03:19:49 PST
This could be an issue in the texture mapper, too. It seems it's trying to allocate rather big tiles. Too bad the size= parameter is not visible in the back-trace.
Comment 5 Csaba Osztrogonác 2012-12-17 04:22:17 PST
I skipped compositing/tiling/crash-huge-layer.html to paint the bots green - r137897. Please unskip it with the proper fix.
Comment 6 Dongseong Hwang 2012-12-17 04:43:37 PST
I think it is a WK1 texture mapper bug instead of REGRESSION(r137811).
WK1 texture mapper does not have something like TiledBackingStore, so GraphicsLayerTextureMapper::prepareBackingStore can create tiles until consuming all system memory. However, Coordinated Graphics on WK2 uses TiledBackingStore so it ensures we can not consume memory within some threshold (currently cover rect that is about 9 times of the viewport).
In my conclusion, we can not solve this problem until GrahpicsLayerTextureMapper uses TiledBackingStore as a backing store.
Comment 7 Simon Hausmann 2012-12-17 05:04:36 PST
(In reply to comment #6)
> I think it is a WK1 texture mapper bug instead of REGRESSION(r137811).
> WK1 texture mapper does not have something like TiledBackingStore, so GraphicsLayerTextureMapper::prepareBackingStore can create tiles until consuming all system memory. However, Coordinated Graphics on WK2 uses TiledBackingStore so it ensures we can not consume memory within some threshold (currently cover rect that is about 9 times of the viewport).
> In my conclusion, we can not solve this problem until GrahpicsLayerTextureMapper uses TiledBackingStore as a backing store.

You're right, only WK1 uses TextureMapperTiledBackingStore. Darn.
Comment 8 Dongseong Hwang 2012-12-17 05:09:36 PST
(In reply to comment #7)
> (In reply to comment #6)
> > I think it is a WK1 texture mapper bug instead of REGRESSION(r137811).
> > WK1 texture mapper does not have something like TiledBackingStore, so GraphicsLayerTextureMapper::prepareBackingStore can create tiles until consuming all system memory. However, Coordinated Graphics on WK2 uses TiledBackingStore so it ensures we can not consume memory within some threshold (currently cover rect that is about 9 times of the viewport).
> > In my conclusion, we can not solve this problem until GrahpicsLayerTextureMapper uses TiledBackingStore as a backing store.
> 
> You're right, only WK1 uses TextureMapperTiledBackingStore. Darn.

Yes, right!

If we can fix this bug via TiledBackingStore, I think it is convenient to skip this layout test until Bug 102994 completes.
I'm working on Bug 102994 to enable Coordinated Graphics in WK1 QT. Bug 102994 can fix this bug as well as increase CSS Animations performance as running AC off the main thread. I want Qt maintainers to like our plan in Bug 102994. If you implement and review together, I'll be very glad :)
Comment 9 Paul Gideon Dann 2013-11-25 08:00:07 PST
I'm working on a single-purpose Qt5WebKit-based browser for a web app we're developing, and I've run into a problem in WebCore that I'm pretty sure is related to this.  Please correct me if I'm wrong.

Essentially, when Google Maps is zoomed in quickly, you end up with a very, very large div before new tiles can be brought down to replace it.  During that time, when GraphicsLayerTextureMapper updates its backing store, the TextureMapperTiledBackingStore::createOrDestroyTilesIfNeeded() method attempts to allocate *massive* tiles, leading to allocation of several Gb of RAM, and the browser process gets killed by the kernel OOM killer.

I've dived into the code in the hope of finding a fix, and it seems to me that it should be possible to fix this by passing clipRect (which represents the size of the viewport, but is currently ignored) down from GraphicsLayerTextureMapper to the backing store, and restrict the area that is covered by tiles.

I'm having trouble, though, and I've clearly introduced painting bugs in the process, and am having trouble figuring out why.  Does anyone know if this is an approach that is doomed to failure because of some behaviour I'm unfamiliar with, or should this work in principle?
Comment 10 Jocelyn Turcotte 2014-02-03 03:23:54 PST
=== Bulk closing of Qt bugs ===

If you believe that this bug report is still relevant for a non-Qt port of webkit.org, please re-open it and remove [Qt] from the summary.

If you believe that this is still an important QtWebKit bug, please fill a new report at https://bugreports.qt-project.org and add a link to this issue. See http://qt-project.org/wiki/ReportingBugsInQt for additional guidelines.