Bug 37317

Summary: [Qt] tests/qgraphicswebview fails
Product: WebKit Reporter: Simon Hausmann <hausmann@webkit.org>
Component: Tools / TestsAssignee: QtWebKit Unassigned <webkit-qt-unassigned@trolltech.com>
Status: CLOSED FIXED    
Severity: Blocker CC: eric@webkit.org, ossy@webkit.org
Priority: P1 Keywords: Qt
Version: 528+ (Nightly build)   
Hardware: All   
OS: Linux   
Bug Depends on:    
Bug Blocks: 35784    
Attachments:
Description Flags
Patch none

Description From 2010-04-09 02:51:19 PST
tests/qgraphicswebview fails:

********* Start testing of tst_QGraphicsWebView *********                                                              
Config: Using QTest library 4.6.3, Qt 4.6.3                                                                            
PASS   : tst_QGraphicsWebView::initTestCase()                                                                          
QFATAL : tst_QGraphicsWebView::qgraphicswebview() Received signal 11                                                   
FAIL!  : tst_QGraphicsWebView::qgraphicswebview() Received a fatal error.                                              
   Loc: [Unknown file(0)]                                                                                              
Totals: 1 passed, 1 failed, 0 skipped                                                                                  


Backtrace:

#2  0x00007ffff3a761ac in QWidget::d_func (this=0x0) at ../../include/QtGui/../../../qt-4.6/src/gui/kernel/qwidget.h:143                                                                    
#3  0x00007ffff3a66450 in QWidget::locale (this=0x0) at /home/shausman/dev/qt-4.6/src/gui/kernel/qwidget.cpp:5649                                                                           
#4  0x00007ffff6a5ffa8 in QWebPage::userAgentForUrl (this=0x7626d0, url=...) at /home/shausman/src/webkit/trunk/WebKit/qt/Api/qwebpage.cpp:3394                                             
#5  0x00007ffff6a3b54e in WebCore::FrameLoaderClientQt::userAgent (this=0x7a4b40, url=...) at /home/shausman/src/webkit/trunk/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp:600          
#6  0x00007ffff66f0978 in WebCore::FrameLoader::applyUserAgent (this=0x7757a0, request=...) at ../../../WebCore/loader/FrameLoader.cpp:3675                                                 
#7  0x00007ffff6724ad1 in WebCore::ResourceLoadNotifier::willSendRequest (this=0x7758f0, loader=0x7b8410, clientRequest=..., redirectResponse=...)                                          
    at /home/shausman/src/webkit/trunk/WebCore/loader/ResourceLoadNotifier.cpp:62                                                                                                           
#8  0x00007ffff6723792 in WebCore::ResourceLoader::willSendRequest (this=0x7b8410, request=..., redirectResponse=...) at /home/shausman/src/webkit/trunk/WebCore/loader/ResourceLoader.cpp:221
#9  0x00007ffff67143bc in WebCore::MainResourceLoader::willSendRequest (this=0x7b8410, newRequest=..., redirectResponse=...) at /home/shausman/src/webkit/trunk/WebCore/loader/MainResourceLoader.cpp:173
#10 0x00007ffff6715e13 in WebCore::MainResourceLoader::loadNow (this=0x7b8410, r=...) at /home/shausman/src/webkit/trunk/WebCore/loader/MainResourceLoader.cpp:502                                       
#11 0x00007ffff6716251 in WebCore::MainResourceLoader::load (this=0x7b8410, r=..., substituteData=...) at /home/shausman/src/webkit/trunk/WebCore/loader/MainResourceLoader.cpp:544                      
#12 0x00007ffff66d0e83 in WebCore::DocumentLoader::startLoadingMainResource (this=0x7b7400, identifier=1) at ../../../WebCore/loader/DocumentLoader.cpp:727                                              
#13 0x00007ffff66edc4f in WebCore::FrameLoader::continueLoadAfterWillSubmitForm (this=0x7757a0) at ../../../WebCore/loader/FrameLoader.cpp:3110                                                          
#14 0x00007ffff66effa6 in WebCore::FrameLoader::continueLoadAfterNavigationPolicy (this=0x7757a0, formState=..., shouldContinue=true) at ../../../WebCore/loader/FrameLoader.cpp:3590                    
#15 0x00007ffff66efb54 in WebCore::FrameLoader::callContinueLoadAfterNavigationPolicy (argument=0x7757a0, request=..., formState=..., shouldContinue=true) at ../../../WebCore/loader/FrameLoader.cpp:3521
#16 0x00007ffff671a5b5 in WebCore::PolicyCallback::call (this=0x7fffffffc040, shouldContinue=true) at /home/shausman/src/webkit/trunk/WebCore/loader/PolicyCallback.cpp:101                               
#17 0x00007ffff671b872 in WebCore::PolicyChecker::continueAfterNavigationPolicy (this=0x7757b0, policy=WebCore::PolicyUse) at /home/shausman/src/webkit/trunk/WebCore/loader/PolicyChecker.cpp:160
#18 0x00007ffff6a38fe6 in WebCore::FrameLoaderClientQt::callPolicyFunction (this=0x7a4b40, function=0x7ffff671b668 <WebCore::PolicyChecker::continueAfterNavigationPolicy(WebCore::PolicyAction)>,
    action=WebCore::PolicyUse) at /home/shausman/src/webkit/trunk/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp:189
#19 0x00007ffff6a3e3dc in WebCore::FrameLoaderClientQt::dispatchDecidePolicyForNavigationAction (this=0x7a4b40,
    function=0x7ffff671b668 <WebCore::PolicyChecker::continueAfterNavigationPolicy(WebCore::PolicyAction)>, action=..., request=...)
    at /home/shausman/src/webkit/trunk/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp:1020
#20 0x00007ffff671b13b in WebCore::PolicyChecker::checkNavigationPolicy (this=0x7757b0, request=..., loader=0x7b7400, formState=...,
    function=0x7ffff66efafe <WebCore::FrameLoader::callContinueLoadAfterNavigationPolicy(void*, WebCore::ResourceRequest const&, WTF::PassRefPtr<WebCore::FormState>, bool)>, argument=0x7757a0)
    at /home/shausman/src/webkit/trunk/WebCore/loader/PolicyChecker.cpp:88
#21 0x00007ffff66e976e in WebCore::FrameLoader::loadWithDocumentLoader (this=0x7757a0, loader=0x7b7400, type=WebCore::FrameLoadTypeStandard, prpFormState=...) at ../../../WebCore/loader/FrameLoader.cpp:2155
#22 0x00007ffff66e91de in WebCore::FrameLoader::load (this=0x7757a0, newDocumentLoader=0x7b7400) at ../../../WebCore/loader/FrameLoader.cpp:2109
#23 0x00007ffff66e8b0c in WebCore::FrameLoader::load (this=0x7757a0, request=..., substituteData=..., lockHistory=false) at ../../../WebCore/loader/FrameLoader.cpp:2050
#24 0x00007ffff66e888c in WebCore::FrameLoader::load (this=0x7757a0, request=..., lockHistory=false) at ../../../WebCore/loader/FrameLoader.cpp:2037
#25 0x00007ffff6a4805d in QWebFrame::load (this=0x756800, req=..., operation=QNetworkAccessManager::GetOperation, body=...) at /home/shausman/src/webkit/trunk/WebKit/qt/Api/qwebframe.cpp:938
#26 0x00007ffff6a47a22 in QWebFrame::load (this=0x756800, url=...) at /home/shausman/src/webkit/trunk/WebKit/qt/Api/qwebframe.cpp:882
#27 0x00007ffff6a47591 in QWebFrame::setUrl (this=0x756800, url=...) at /home/shausman/src/webkit/trunk/WebKit/qt/Api/qwebframe.cpp:791
#28 0x00007ffff6a50c4f in QGraphicsWebView::setUrl (this=0x7fffffffcbe0, url=...) at /home/shausman/src/webkit/trunk/WebKit/qt/Api/qgraphicswebview.cpp:808
#29 0x000000000040713a in tst_QGraphicsWebView::qgraphicswebview (this=0x7fffffffdfd0) at /home/shausman/src/webkit/trunk/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp:48
#30 0x0000000000407845 in tst_QGraphicsWebView::qt_metacall (this=0x7fffffffdfd0, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7fffffffcdc0)
    at /home/shausman/src/webkit/trunk/WebKitBuild/Debug/WebKit/qt/tests/qgraphicswebview/./tst_qgraphicswebview.moc:73


It appears a simple missing null-pointer check for d->client->ownerWidget() in QWebPage::userAgentForUrl.
------- Comment #1 From 2010-04-09 02:53:46 PST -------
Created an attachment (id=52949) [details]
Patch
------- Comment #2 From 2010-04-09 03:08:17 PST -------
(From update of attachment 52949 [details])
Reviewed by Lars in real life, landing manually.
------- Comment #3 From 2010-04-09 03:10:28 PST -------
Committed r57323: <http://trac.webkit.org/changeset/57323>
------- Comment #4 From 2010-04-09 03:50:41 PST -------
I think this may have broken all layout tests on Qt.
http://build.webkit.org/builders/Qt%20Linux%20Release/builds/9829/steps/layout-test/logs/stdio
------- Comment #5 From 2010-04-09 03:51:15 PST -------
Qt should be using --exit-after-N-failures to prevent this sort of bot-hosage anyway. :)
------- Comment #6 From 2010-04-09 03:54:40 PST -------
(In reply to comment #4)
> I think this may have broken all layout tests on Qt.
> http://build.webkit.org/builders/Qt%20Linux%20Release/builds/9829/steps/layout-test/logs/stdio

Thx, it is a false positive alarm.

I catched it: http://trac.webkit.org/changeset/57320. This patch modified Qt build system and make a semi-release/semi-debug build. :S
------- Comment #7 From 2010-04-09 07:15:45 PST -------
Revision r57323 cherry-picked into qtwebkit-2.0 with commit 607fc3da68768d68d774779493973fc36abcc18b