WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
107812
[Qt] Hidden WebView triggers crash on exit.
https://bugs.webkit.org/show_bug.cgi?id=107812
Summary
[Qt] Hidden WebView triggers crash on exit.
Milian Wolff
Reported
2013-01-24 05:21:17 PST
Open this file in qmlscene and close it: ~~~~~ test.qml ~~~~~ import QtQuick 2.0 import QtWebKit 3.0 import QtWebKit.experimental 1.0 WebView { visible: false } ~~~~~ This will trigger a crash, see
http://paste.kde.org/655388/
for a valgrind log and
http://paste.kde.org/655394/
for a GDB backtrace. It shows that the m_rootLayer in LayerTreeRenderer is invalid, when called from LayerTreeRenderer::purgeGLResources. Other places contain explicit checks for the validity, so maybe the check is just missing there?
Attachments
Add attachment
proposed patch, testcase, etc.
Jocelyn Turcotte
Comment 1
2013-01-24 06:00:03 PST
My quick look at this issue is that LayerTreeRenderer::purgeGLResources is called immediately in the UI process before CoordinatedLayerTreeHost::purgeBackingStores had the time to complete in the WebProcess. So any message sent from the WebProcess in-between might access resources that, at this point, the web process thought valid but that the UI process already cleared. I didn't investigate very deep so this might be wrong, but a way that seemed worth trying to fix this was to make sure that LayerTreeRenderer::purgeGLResources is only called once the web process confirmed that id destroyed the resource through some didPurgeBackingStores message.
Jocelyn Turcotte
Comment 2
2013-01-24 06:02:18 PST
(In reply to
comment #0
)
> It shows that the m_rootLayer in LayerTreeRenderer is invalid, when called from LayerTreeRenderer::purgeGLResources. Other places contain explicit checks for the validity, so maybe the check is just missing there?
Humm thinking more about it, your explanation is probably a lot better. If there is no root layer yet, then there is nothing to purge anyway.
Milian Wolff
Comment 3
2013-01-28 06:25:09 PST
This is apparently fixed in WebKit upstream by 18ac4c73a22b42cf2783dee9dfa285fe149f7821: Coordinated Graphics: Remove redundant behaviors in LayerTreeRenderer.
https://bugs.webkit.org/show_bug.cgi?id=107084
Can someone backport that into QtWebKit stable?
Jocelyn Turcotte
Comment 4
2013-01-29 07:45:11 PST
(In reply to
comment #3
)
> Can someone backport that into QtWebKit stable?
I tried to cherry-pick it but I'm not sure that this fix can safely be applied since some stuff changed lately. It would probably be better for 5.0.x to just apply the check before the removeAllChildren call like you proposed. I'll have a bit of time for it later. You can do a branch-only fix in the qtwebkit module if you need it before.
Milian Wolff
Comment 5
2013-02-04 03:09:14 PST
I created a simple commit for the stable branch:
https://codereview.qt-project.org/#change,46641
Please review - thanks!
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug