Bug 112132
Summary: | Crash when changing URL in WebView | ||
---|---|---|---|
Product: | WebKit | Reporter: | Thomas McGuire <thomas.mcguire> |
Component: | WebKit Qt | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED INVALID | ||
Severity: | Normal | CC: | milian.wolff |
Priority: | P2 | ||
Version: | 528+ (Nightly build) | ||
Hardware: | PC | ||
OS: | Linux |
Thomas McGuire
The simple QML snippet below causes a crash, even though all it does is changing the URL.
Backtrace:
#0 0x00007ff496aaf3b1 in WebCore::FrameView::scheduleRelayout (this=0x1536a80) at /home/thomas/src/webkit-stable/Source/WebCore/page/FrameView.cpp:2275
#1 0x00007ff497a37867 in WebCore::RenderObject::markContainingBlocksForLayout (this=0x154c458, scheduleRelayout=true, newRoot=0x0) at /home/thomas/src/webkit-stable/Source/WebCore/rendering/RenderObject.cpp:713
#3 setNeedsLayout (this=<optimized out>) at /home/thomas/src/webkit-stable/Source/WebCore/page/FrameView.cpp:2388
#4 WebCore::FrameView::setNeedsLayout (this=<optimized out>) at /home/thomas/src/webkit-stable/Source/WebCore/page/FrameView.cpp:2380
#5 0x00007ff496bd57c8 in WebCore::ScrollView::setUseFixedLayout (this=0x15d5a90, enable=<optimized out>) at /home/thomas/src/webkit-stable/Source/WebCore/platform/ScrollView.cpp:296
#6 0x00007ff496a9d453 in WebCore::Frame::createView (this=0x1526e70, viewportSize=..., backgroundColor=..., transparent=false, fixedLayoutSize=..., fixedVisibleContentRect=..., useFixedLayout=true, horizontalScrollbarMode=WebCore::Scrol
lbarAlwaysOff, horizontalLock=true, verticalScrollbarMode=WebCore::ScrollbarAlwaysOff, verticalLock=true) at /home/thomas/src/webkit-stable/Source/WebCore/page/Frame.cpp:800
#7 0x00007ff496313b20 in WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage (this=0x1526ae8) at /home/thomas/src/webkit-stable/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:1217
#8 0x00007ff4969d3ade in WebCore::FrameLoader::transitionToCommitted (this=this@entry=0x1526ef8, cachedPage=...) at /home/thomas/src/webkit-stable/Source/WebCore/loader/FrameLoader.cpp:1888
#9 0x00007ff4969d6d91 in WebCore::FrameLoader::commitProvisionalLoad (this=0x1526ef8) at /home/thomas/src/webkit-stable/Source/WebCore/loader/FrameLoader.cpp:1725
#10 0x00007ff4969b8d4d in WebCore::DocumentLoader::commitLoad (this=0x1572bf0, data=0x15e8650 "<!doctype html><html itemscope=\"itemscope\" itemtype=\"http://schema.org/WebPage\"><head><meta itemprop=\"image\" content=\"/images/google_fa
vicon_128.png\"><title>Google</title><script>(function(){\nwindow.g"..., length=2347) at /home/thomas/src/webkit-stable/Source/WebCore/loader/DocumentLoader.cpp:329
#11 0x00007ff4969ee771 in WebCore::MainResourceLoader::dataReceived (this=0x15774c0, resource=<optimized out>, data=0x15e8650 "<!doctype html><html itemscope=\"itemscope\" itemtype=\"http://schema.org/WebPage\"><head><meta itemprop=\"ima
ge\" content=\"/images/google_favicon_128.png\"><title>Google</title><script>(function(){\nwindow.g"..., length=2347) at /home/thomas/src/webkit-stable/Source/WebCore/loader/MainResourceLoader.cpp:526
#12 0x00007ff496993c89 in WebCore::CachedRawResource::data (this=0x15734c0, data=..., allDataReceived=allDataReceived@entry=false) at /home/thomas/src/webkit-stable/Source/WebCore/loader/cache/CachedRawResource.cpp:70
#13 0x00007ff496a1bfdd in WebCore::SubresourceLoader::sendDataToResource (this=this@entry=0x15780a0, data=data@entry=0x15e7d18 "<!doctype html><html itemscope=\"itemscope\" itemtype=\"http://schema.org/WebPage\"><head><meta itemprop=\"im
age\" content=\"/images/google_favicon_128.png\"><title>Google</title><script>(function(){\nwindow.g"..., length=length@entry=2347) at /home/thomas/src/webkit-stable/Source/WebCore/loader/SubresourceLoader.cpp:256
#14 0x00007ff496a1c4be in didReceiveData (allAtOnce=false, encodedDataLength=-1, length=2347, data=0x15e7d18 "<!doctype html><html itemscope=\"itemscope\" itemtype=\"http://schema.org/WebPage\"><head><meta itemprop=\"image\" content=\"/i
mages/google_favicon_128.png\"><title>Google</title><script>(function(){\nwindow.g"..., this=0x15780a0) at /home/thomas/src/webkit-stable/Source/WebCore/loader/SubresourceLoader.cpp:228
#15 WebCore::SubresourceLoader::didReceiveData (this=0x15780a0, data=0x15e7d18 "<!doctype html><html itemscope=\"itemscope\" itemtype=\"http://schema.org/WebPage\"><head><meta itemprop=\"image\" content=\"/images/google_favicon_128.png\"
><title>Google</title><script>(function(){\nwindow.g"..., length=2347, encodedDataLength=-1, allAtOnce=false) at /home/thomas/src/webkit-stable/Source/WebCore/loader/SubresourceLoader.cpp:216
#16 0x00007ff496a0adad in WebCore::ResourceLoader::didReceiveData (this=0x15780a0, data=0x15e7d18 "<!doctype html><html itemscope=\"itemscope\" itemtype=\"http://schema.org/WebPage\"><head><meta itemprop=\"image\" content=\"/images/googl
e_favicon_128.png\"><title>Google</title><script>(function(){\nwindow.g"..., length=2347, encodedDataLength=-1) at /home/thomas/src/webkit-stable/Source/WebCore/loader/ResourceLoader.cpp:468
#17 0x00007ff496cf3a6d in WebCore::QNetworkReplyHandler::forwardData (this=0x1578c20) at /home/thomas/src/webkit-stable/Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:674
#18 0x00007ff496cf8b6b in flush (this=0x1578c58) at /home/thomas/src/webkit-stable/Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:250
#19 WebCore::QNetworkReplyHandlerCallQueue::flush (this=0x1578c58) at /home/thomas/src/webkit-stable/Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:242
#20 0x00007ff496cf93e6 in ~QueueLocker (this=<synthetic pointer>, __in_chrg=<optimized out>) at /home/thomas/src/webkit-stable/Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:258
#21 WebCore::QNetworkReplyWrapper::emitMetaDataChanged (this=this@entry=0x15d6a30) at /home/thomas/src/webkit-stable/Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:390
#22 0x00007ff496cf94bd in WebCore::QNetworkReplyWrapper::receiveSniffedMIMEType (this=0x15d6a30) at /home/thomas/src/webkit-stable/Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:360
#23 0x00007ff496cf9751 in WebCore::QNetworkReplyWrapper::receiveMetaData (this=0x15d6a30) at /home/thomas/src/webkit-stable/Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:346
#24 0x00007ff4942e4368 in QMetaObject::activate (sender=0x15bba00, signalOffset=3, local_signal_index=0, argv=0x0) at /home/thomas/src/qtbase-stable/src/corelib/kernel/qobject.cpp:3445
#25 0x00007ff4942e3bbc in QMetaObject::activate (sender=0x15bba00, m=0x7ff49476aec0 <QIODevice::staticMetaObject>, local_signal_index=0, argv=0x0) at /home/thomas/src/qtbase-stable/src/corelib/kernel/qobject.cpp:3320
#26 0x00007ff49436c67b in QIODevice::readyRead (this=0x15bba00) at .moc/debug-shared/moc_qiodevice.cpp:153
#27 0x00007ff494f55519 in QNetworkReplyHttpImplPrivate::replyDownloadData (this=0x15bbe50, d=Python Exception <class 'gdb.error'> cannot resolve overloaded method `data': no arguments supplied:
) at /home/thomas/src/qtbase-stable/src/network/access/qnetworkreplyhttpimpl.cpp:1026
#28 0x00007ff494fe88cb in QNetworkReplyHttpImpl::qt_static_metacall (_o=0x15bba00, _c=QMetaObject::InvokeMetaMethod, _id=15, _a=0x7ff424009e50) at .moc/debug-shared/moc_qnetworkreplyhttpimpl_p.cpp:211
#29 0x00007ff4942dcbdb in QMetaCallEvent::placeMetaCall (this=0x7ff424009e90, object=0x15bba00) at /home/thomas/src/qtbase-stable/src/corelib/kernel/qobject.cpp:479
#30 0x00007ff4942ddb4a in QObject::event (this=0x15bba00, e=0x7ff424009e90) at /home/thomas/src/qtbase-stable/src/corelib/kernel/qobject.cpp:1070
#31 0x00007ff4953daa9c in QApplicationPrivate::notify_helper (this=0x14bcbe0, receiver=0x15bba00, e=0x7ff424009e90) at /home/thomas/src/qtbase-stable/src/widgets/kernel/qapplication.cpp:3398
#32 0x00007ff4953d80ac in QApplication::notify (this=0x14bcbc0, receiver=0x15bba00, e=0x7ff424009e90) at /home/thomas/src/qtbase-stable/src/widgets/kernel/qapplication.cpp:2829
#33 0x00007ff4942a39a2 in QCoreApplication::notifyInternal (this=0x14bcbc0, receiver=0x15bba00, event=0x7ff424009e90) at /home/thomas/src/qtbase-stable/src/corelib/kernel/qcoreapplication.cpp:767
#34 0x00007ff4942a7283 in QCoreApplication::sendEvent (receiver=0x15bba00, event=0x7ff424009e90) at /home/thomas/src/qtbase-stable/src/corelib/kernel/qcoreapplication.h:203
#35 0x00007ff4942a4cc4 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x14bcd50) at /home/thomas/src/qtbase-stable/src/corelib/kernel/qcoreapplication.cpp:1368
#36 0x00007ff4942a4675 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at /home/thomas/src/qtbase-stable/src/corelib/kernel/qcoreapplication.cpp:1228
#37 0x00007ff49431515a in postEventSourceDispatch (s=0x14cbf70) at /home/thomas/src/qtbase-stable/src/corelib/kernel/qeventdispatcher_glib.cpp:278
#38 0x00007ff49af343b5 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#39 0x00007ff49af346e8 in ?? () from /usr/lib64/libglib-2.0.so.0
#40 0x00007ff49af347a4 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#41 0x00007ff49431599b in QEventDispatcherGlib::processEvents (this=0x14c3330, flags=...) at /home/thomas/src/qtbase-stable/src/corelib/kernel/qeventdispatcher_glib.cpp:423
#42 0x00007ff48d58f49e in QPAEventDispatcherGlib::processEvents (this=0x14c3330, flags=...) at /home/thomas/src/qtbase-stable/src/platformsupport/eventdispatchers/qeventdispatcher_glib.cpp:123
#43 0x00007ff4942a0975 in QEventLoop::processEvents (this=0x7fff8ee4f5c0, flags=...) at /home/thomas/src/qtbase-stable/src/corelib/kernel/qeventloop.cpp:136
#44 0x00007ff4942a0c57 in QEventLoop::exec (this=0x7fff8ee4f5c0, flags=...) at /home/thomas/src/qtbase-stable/src/corelib/kernel/qeventloop.cpp:212
#45 0x00007ff4942a4056 in QCoreApplication::exec () at /home/thomas/src/qtbase-stable/src/corelib/kernel/qcoreapplication.cpp:1020
#46 0x00007ff496d0281c in WebCore::RunLoop::run () at /home/thomas/src/webkit-stable/Source/WebCore/platform/qt/RunLoopQt.cpp:69
#47 0x00007ff49637f2da in WebKit::WebProcessMainQt (app=0x14bcbc0) at /home/thomas/src/webkit-stable/Source/WebKit2/WebProcess/qt/WebProcessMainQt.cpp:261
#48 0x0000000000401283 in main (argc=2, argv=0x7fff8ee4fa18) at /home/thomas/src/webkit-stable/Source/WebKit2/qt/MainQt.cpp:100
QML File:
import QtQuick 2.0
import QtWebKit 3.0
WebView
{
width: 400
height: 400
url: "about:blank"
Timer {
running: true
interval: 1000
onTriggered: parent.url = "http://www.google.com"
}
}
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Milian Wolff
On the CLI I see this:
ASSERTION FAILED: m_frame->view() == this
/ssd/milian/projects/qt5/qtwebkit/Source/WebCore/page/FrameView.cpp(2275) : void WebCore::FrameView::scheduleRelayout()
1 0x7fa6497aa0fa /ssd/milian/projects/qt5/build-x86/qtwebkit-upstream/Release/lib/libQt5WebKit.so.5(+0xd650fa) [0x7fa6497aa0fa]
2 0x7fa64a74af57 /ssd/milian/projects/qt5/build-x86/qtwebkit-upstream/Release/lib/libQt5WebKit.so.5(+0x1d05f57) [0x7fa64a74af57]
3 0x7fa6497aa7ae /ssd/milian/projects/qt5/build-x86/qtwebkit-upstream/Release/lib/libQt5WebKit.so.5(+0xd657ae) [0x7fa6497aa7ae]
4 0x7fa6498d2108 /ssd/milian/projects/qt5/build-x86/qtwebkit-upstream/Release/lib/libQt5WebKit.so.5(+0xe8d108) [0x7fa6498d2108]
5 0x7fa649797e43 /ssd/milian/projects/qt5/build-x86/qtwebkit-upstream/Release/lib/libQt5WebKit.so.5(+0xd52e43) [0x7fa649797e43]
6 0x7fa64913ad12 /ssd/milian/projects/qt5/build-x86/qtwebkit-upstream/Release/lib/libQt5WebKit.so.5(+0x6f5d12) [0x7fa64913ad12]
7 0x7fa6496cda5e /ssd/milian/projects/qt5/build-x86/qtwebkit-upstream/Release/lib/libQt5WebKit.so.5(+0xc88a5e) [0x7fa6496cda5e]
8 0x7fa6496d0ea1 /ssd/milian/projects/qt5/build-x86/qtwebkit-upstream/Release/lib/libQt5WebKit.so.5(+0xc8bea1) [0x7fa6496d0ea1]
9 0x7fa6496b299d /ssd/milian/projects/qt5/build-x86/qtwebkit-upstream/Release/lib/libQt5WebKit.so.5(+0xc6d99d) [0x7fa6496b299d]
10 0x7fa6496e8961 /ssd/milian/projects/qt5/build-x86/qtwebkit-upstream/Release/lib/libQt5WebKit.so.5(+0xca3961) [0x7fa6496e8961]
11 0x7fa64968c429 /ssd/milian/projects/qt5/build-x86/qtwebkit-upstream/Release/lib/libQt5WebKit.so.5(+0xc47429) [0x7fa64968c429]
12 0x7fa64971620d /ssd/milian/projects/qt5/build-x86/qtwebkit-upstream/Release/lib/libQt5WebKit.so.5(+0xcd120d) [0x7fa64971620d]
13 0x7fa6497166ee /ssd/milian/projects/qt5/build-x86/qtwebkit-upstream/Release/lib/libQt5WebKit.so.5(+0xcd16ee) [0x7fa6497166ee]
14 0x7fa649704fdd /ssd/milian/projects/qt5/build-x86/qtwebkit-upstream/Release/lib/libQt5WebKit.so.5(+0xcbffdd) [0x7fa649704fdd]
15 0x7fa6499ede7d /ssd/milian/projects/qt5/build-x86/qtwebkit-upstream/Release/lib/libQt5WebKit.so.5(+0xfa8e7d) [0x7fa6499ede7d]
16 0x7fa6499f2f7b /ssd/milian/projects/qt5/build-x86/qtwebkit-upstream/Release/lib/libQt5WebKit.so.5(+0xfadf7b) [0x7fa6499f2f7b]
17 0x7fa6499f37f6 /ssd/milian/projects/qt5/build-x86/qtwebkit-upstream/Release/lib/libQt5WebKit.so.5(+0xfae7f6) [0x7fa6499f37f6]
18 0x7fa6499f38cd /ssd/milian/projects/qt5/build-x86/qtwebkit-upstream/Release/lib/libQt5WebKit.so.5(+0xfae8cd) [0x7fa6499f38cd]
19 0x7fa6499f3b61 /ssd/milian/projects/qt5/build-x86/qtwebkit-upstream/Release/lib/libQt5WebKit.so.5(+0xfaeb61) [0x7fa6499f3b61]
20 0x7fa64714ea20 /home/milian/projects/compiled/qt5/lib/libQt5Core.so.5(_ZN11QMetaObject8activateEP7QObjectiiPPv+0x6ce) [0x7fa64714ea20]
21 0x7fa64714e274 /home/milian/projects/compiled/qt5/lib/libQt5Core.so.5(_ZN11QMetaObject8activateEP7QObjectPKS_iPPv+0x38) [0x7fa64714e274]
22 0x7fa6471d6de3 /home/milian/projects/compiled/qt5/lib/libQt5Core.so.5(_ZN9QIODevice9readyReadEv+0x29) [0x7fa6471d6de3]
23 0x7fa647d720a1 /home/milian/projects/compiled/qt5/lib/libQt5Network.so.5(+0x840a1) [0x7fa647d720a1]
24 0x7fa647e05237 /home/milian/projects/compiled/qt5/lib/libQt5Network.so.5(+0x117237) [0x7fa647e05237]
25 0x7fa647147293 /home/milian/projects/compiled/qt5/lib/libQt5Core.so.5(_ZN14QMetaCallEvent13placeMetaCallEP7QObject+0xaf) [0x7fa647147293]
26 0x7fa647148202 /home/milian/projects/compiled/qt5/lib/libQt5Core.so.5(_ZN7QObject5eventEP6QEvent+0x124) [0x7fa647148202]
27 0x7fa6481d2b26 /home/milian/projects/compiled/qt5/lib/libQt5Widgets.so.5(_ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent+0x17c) [0x7fa6481d2b26]
28 0x7fa6481d0136 /home/milian/projects/compiled/qt5/lib/libQt5Widgets.so.5(_ZN12QApplication6notifyEP7QObjectP6QEvent+0x3b8) [0x7fa6481d0136]
29 0x7fa64710e022 /home/milian/projects/compiled/qt5/lib/libQt5Core.so.5(_ZN16QCoreApplication14notifyInternalEP7QObjectP6QEvent+0x9a) [0x7fa64710e022]
30 0x7fa647111903 /home/milian/projects/compiled/qt5/lib/libQt5Core.so.5(_ZN16QCoreApplication9sendEventEP7QObjectP6QEvent+0x51) [0x7fa647111903]
31 0x7fa64710f344 /home/milian/projects/compiled/qt5/lib/libQt5Core.so.5(_ZN23QCoreApplicationPrivate16sendPostedEventsEP7QObjectiP11QThreadData+0x440) [0x7fa64710f344]
I also get this, e.g. when changing URLs in a simple "browser":
```
import QtQuick 2.0
import QtWebKit 3.0
import QtWebKit.experimental 1.0
Rectangle {
width: 500
height: 500
TextInput {
id: location
height: 20
width: parent.width
text: "http://www.google.com"
onAccepted: {
webView.url = location.text
}
}
WebView {
id: webView
y: location.height
height: parent.height - location.height
width: parent.width
experimental {
preferences.developerExtrasEnabled: true
}
}
}
```
Alexey Proskuryakov
The Qt port has been removed from WebKit, resolving this bug.