Details
Description
The attached sample application uses QtWebKit's QWebPluginFactory to add a simple OpenGL based plugin(QGLWidget based).
On resizing the application , it crashes in QPainter::save() with a warning message "QPaintDevice: Cannot destroy paint device that is being painted"
This crash happens on windows 7 and I am able to resize the app without issues on mac. (although "QWidget::repaint: Recursive repaint detected" warning occurs)
Tested with Qt 5.1.1, msvc c++ compiler(visual studio 2012), windows 7
Also, it appears that this bug has been introduced after QT4.8.4 as the crash does not occur when tested with Qt4.8.4
The crash log I see appears to be similar to the issue reported in https://bugs.webkit.org/show_bug.cgi?id=109785
I have added my comments to this bug as well.
Attached is a simple sample application that demonstrates the crash.
Crash log:
0 QPainter::save qpainter.cpp 1581 0xbcd94a
1 WebCore::GraphicsContext::savePlatformState GraphicsContextQt.cpp 349 0x29b4260
2 WebCore::GraphicsContext::save GraphicsContext.cpp 103 0x29aae32
3 QWebFrameAdapter::renderRelativeCoords QWebFrameAdapter.cpp 520 0x25c8c8e
4 QWebFrame::render qwebframe.cpp 643 0xf94ac06
5 QWebFrame::render qwebframe.cpp 654 0xf94abc4
6 QWebView::paintEvent qwebview.cpp 831 0xf95a868
7 QWidget::event qwidget.cpp 8043 0x648c6d8f
8 QWebView::event qwebview.cpp 730 0xf95a465
9 QApplicationPrivate::notify_helper qapplication.cpp 3457 0x6488131e
10 QApplication::notify qapplication.cpp 3422 0x6487f3ac
11 QCoreApplication::notifyInternal qcoreapplication.cpp 867 0x66c7fdc4
12 QCoreApplication::sendSpontaneousEvent qcoreapplication.h 235 0x66d91938
13 QWidgetPrivate::drawWidget qwidget.cpp 5132 0x648cc61e
14 QWidgetPrivate::paintSiblingsRecursive qwidget.cpp 5327 0x648ccc8a
15 QWidgetPrivate::drawWidget qwidget.cpp 5185 0x648cc90c
16 QWidgetBackingStore::sync qwidgetbackingstore.cpp 1093 0x64890c36
17 QWidgetPrivate::syncBackingStore qwidget.cpp 1678 0x648ce501
18 QWidgetWindow::handleResizeEvent qwidgetwindow.cpp 539 0x6490051b
19 QWidgetWindow::event qwidgetwindow.cpp 181 0x648ff61a
20 QApplicationPrivate::notify_helper qapplication.cpp 3457 0x6488131e
21 QApplication::notify qapplication.cpp 2878 0x6487d58c
22 QCoreApplication::notifyInternal qcoreapplication.cpp 867 0x66c7fdc4
23 QCoreApplication::sendSpontaneousEvent qcoreapplication.h 235 0x66d91938
24 QGuiApplicationPrivate::processGeometryChangeEvent qguiapplication.cpp 1747 0x9472ed
... <More>
Attachments
Issue Links
- is required for
-
QTBUG-33863 Issues to be fixed before Qt5.2 RC1 release
- Closed
For Gerrit Dashboard: QTBUG-34277 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
71072,1 | Prevent resizing of the backing store when painting is active. | release | qt/qtbase | Status: ABANDONED | -1 | 0 |
71229,1 | Trigger layout after resizing the FrameView. | release | qt/qtwebkit | Status: MERGED | +2 | 0 |