Bug 30375

Summary: QWebView crashes with Flash content
Product: WebKit Reporter: Paul Colby <webkit>
Component: Plug-insAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Major CC: hausmann, jturcotte
Priority: P2 Keywords: Qt
Version: 528+ (Nightly build)   
Hardware: PC   
OS: Windows XP   
Attachments:
Description Flags
Example application compiled with Qt 4.6.0-beta1; source code in bug description. none

Paul Colby
Reported 2009-10-14 21:32:04 PDT
Created attachment 41205 [details] Example application compiled with Qt 4.6.0-beta1; source code in bug description. Steps to reproduce / test case: Enable QWebView plugins, then show the following URL: http://www.adobe.com/software/flash/about/ Example: #include <QApplication> #include <QWebView> int main(int argc, char *argv[]) { QApplication app(argc, argv); QWebView webView; webView.settings()->setAttribute(QWebSettings::PluginsEnabled,true); //webView.setUrl(QUrl::fromEncoded("http://www.google.com.au")); // Works fine. webView.setUrl(QUrl::fromEncoded("http://www.adobe.com/software/flash/about/")); // Crashes with 4.6.0-tp1. webView.show(); return app.exec(); } The problem occurs on many (but not all) webpages with Flash content. Examples include: * http://www.adobe.com/software/flash/about/ * http://developer.yahoo.com/search/boss/ Crash occurs on Windows XP, but not on OSX. Crash occurs when built with, and run-time linked to, Qt 4.6.0-tp1 or Qt 4.6.0-beta1. Interestingly, the crash does *not* occur if the example is built with 4.6.0, but runs with 4.5.x DLLs. All Qt 4.6.0 versions were build via: make confclean configure -debug-and-release -opensource -no-exceptions -no-qt3support -openssl-linked OPENSSL_LIBS="-lssl -lcrypto -lgdi32 -lWs2_32" -I C:\OpenSSL\include -L C:\OpenSSL\lib make -j2 sub-src Qt Creator's debugger shows that the crash is somewhere in WebCore::PluginView::hookedBeginPaint. Example crash debug stack: 0 ?? 0 1 WebCore::PluginView::hookedBeginPaint D:\Qt\4.6.0-tp1-dynamic\bin\QtWebKitd4.dll 0 2 npswf32!Flash_DisableLocalSecurity C:\WINDOWS\system32\macromed\Flash\NPSWF32.dll 0 3 ?? 0 4 ?? 0 5 ?? 0 6 ?? 0 7 ?? 0 8 ?? 0 9 ?? 0 10 ?? 0 11 ?? 0 12 ?? 0 13 ?? 0 14 ?? 0 I've attached a copy if above example compiled with Qt 4.6.0-beta1; just run it with Qt 4.6.0-beta1 DLLs and it should crash (but runs fine with Qt 4.6.0-beta1 DLLs, but with QtWebKit4.dll replaced with 4.5.3 version). In case it helps, Qt 4.6.0-beta1 appears to be using WebKit 532.1.
Attachments
Example application compiled with Qt 4.6.0-beta1; source code in bug description. (23.00 KB, application/octet-stream)
2009-10-14 21:32 PDT, Paul Colby
no flags
Paul Colby
Comment 1 2009-11-17 20:20:42 PST
Crash still occurs with the just-released Qt 4.6.0 rc1 :(
Jocelyn Turcotte
Comment 2 2009-11-18 04:44:27 PST
I tried the sample on Windows 7 with 4.6.0 RC and I couldn't reproduce the crash. My version of flash is 10.0.32.18, I am running the 32 bit version on a 64bit system. Could you give us the version of flash you are using and try with an upgraded version if possible?
Paul Colby
Comment 3 2009-11-18 14:07:03 PST
(In reply to comment #2) > Could you give us the version of flash you are using and try with an upgraded > version if possible? Adobe says: "You have version 10,0,32,18 installed" - which is, as far as I know, the latest version available. The crash is on at least two different 32bit Windows XP machines (I don't have any 64 bit XP machines to test on). If there's anything at all I can do to help track it down, I'm only too happy to :)
Paul Colby
Comment 4 2009-11-18 14:50:14 PST
To rule out my own Qt SDK compilation, I've just compiled the sample application from a completely clean install of "Qt 4.6.0 RC for Windows: minGW 4.4" (http://get.qt.nokia.com/qt/source/qt-win-opensource-4.6.0-rc1-mingw.exe). Crash still occurs, though Qt Creator's stack dump does look slightly more interesting now: 0 ?? 0 0xfe0300ba 1 WebCore::PluginView::hookedBeginPaint C:\Qt\2009.05-rc1\qt\bin\QtWebKitd4.dll 0 0x0911391f 2 QETWidget::translatePaintEvent qapplication_win.cpp 3596 0x006383f4 3 QtWndProc@16 qapplication_win.cpp 1917 0x00633414 4 USER32!GetDC C:\WINDOWS\system32\user32.dll 0 0x7e418734 5 QAlgorithmsPrivate::qSortHelper<QList<QString>::iterator, QString, qLess<QString> > qalgorithms.h 356 0x00c306ee 6 USER32!GetDC C:\WINDOWS\system32\user32.dll 0 0x7e418816 7 qt_is_translatable_mouse_event qapplication_win.cpp 1389 0x00631acd 8 USER32!DefWindowProcW C:\WINDOWS\system32\user32.dll 0 0x7e428ea0 9 ?? 0 0x00000000 Don't know if that makes anymore sense to anyone. Has anyone tested this bug against the MinGW version of Qt? Perhaps it's not a problem with the Visual Studio compiler? I've just tried, and again, the exe produced by 4.6.0 RC1 works correctly if I replace the 4.6.0 QtWebKit4.dll/QtWebKit4d.dll files with the 4.5.0 versions. Hope that helps in some way.
Jocelyn Turcotte
Comment 5 2009-12-01 08:36:48 PST
(In reply to comment #4) > Has anyone tested this bug against the MinGW version of Qt? Perhaps it's not a > problem with the Visual Studio compiler? > You were right, the problem was due to mingw-specific code in plugin handling. Thanks for your report, we were able to correct this bug before 4.6.0! Resolved in r51388
Paul Colby
Comment 6 2009-12-01 21:08:40 PST
(In reply to comment #5) > You were right, the problem was due to mingw-specific code in plugin handling. > Thanks for your report, we were able to correct this bug before 4.6.0! > > Resolved in r51388 Beautiful! I've just tested, and it works perfectly now. Thanks for all your efforts! :)
Note You need to log in before you can comment on or make changes to this bug.