RESOLVED WORKSFORME Bug 28706
yan [Qt] ASSERT in RenderScrollbar destructor when ::-webkit-scrollbar css is used on body
https://bugs.webkit.org/show_bug.cgi?id=28706
Summary [Qt] ASSERT in RenderScrollbar destructor when ::-webkit-scrollbar css is use...
verdavaine
Reported 2009-08-25 02:16:22 PDT
Hi, when ::-webkit-scrollbar css are apply on body and scrollbar are visible, when you change html, webcore crash on ScrollBar destruction. I find a temporary solution : 1- hide webkit scrollbar 2- reinit html to empty 3- reactive webkit scrollbar 4- load new html 5- call repaint(). m_MailBody->page()->mainFrame()->setScrollBarPolicy ( Qt::Horizontal,Qt::ScrollBarAlwaysOff); m_MailBody->page()->mainFrame()->setScrollBarPolicy ( Qt::Vertical,Qt::ScrollBarAlwaysOff); m_MailBody->setHtml(""); m_MailBody->page()->mainFrame()->setScrollBarPolicy ( Qt::Horizontal,Qt::ScrollBarAsNeeded); m_MailBody->page()->mainFrame()->setScrollBarPolicy ( Qt::Vertical,Qt::ScrollBarAsNeeded); m_MailBody->setHtml(html); m_MailBody->repaint();
Attachments
Tor Arne Vestbø
Comment 1 2009-09-07 10:52:57 PDT
Do you have a testcase for this?
verdavaine
Comment 2 2009-09-11 03:03:41 PDT
simple example #include <QtGui> #include <QtWebKit> int main(int argc, char *argv[]) { QApplication a(argc, argv); QWebView w; w.load(QUrl("http://trac.webkit.org/export/41842/trunk/LayoutTests/scrollbars/overflow-scrollbar-combinations.html")); w.show(); w.resize(50,50); return a.exec(); } Under Qt 4.5.2 Visual 2008 : crash when you close. Under Qt 4.5.2 abd Qt 4.6 tech preview 1 visual 2008 : body scrollbar are not display correctely the first time.
Tor Arne Vestbø
Comment 3 2010-03-10 07:43:09 PST
Reproducible in trunk on Mac OS 10.6 by opening http://trac.webkit.org/export/41842/trunk/LayoutTests/scrollbars/overflow-scrollbar-combinations.html in the QtLauncher and resizing the window to a small size. Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_INVALID_ADDRESS at address: 0xbbadbeef 0x00cb419a in WebCore::RenderScrollbar::~RenderScrollbar (this=0x148719a0) at /Users/torarne/dev/webkit/land/WebCore/rendering/RenderScrollbar.cpp:57 57 ASSERT(m_parts.isEmpty()); (gdb) bt 15 #0 0x00cb419a in WebCore::RenderScrollbar::~RenderScrollbar (this=0x148719a0) at /Users/torarne/dev/webkit/land/WebCore/rendering/RenderScrollbar.cpp:57 #1 0x006ab497 in WTF::RefCounted<WebCore::Widget>::deref (this=0x148719a4) at RefCounted.h:109 #2 0x00ae874f in WTF::derefIfNotNull<WebCore::Scrollbar> (ptr=0x148719a0) at PassRefPtr.h:53 #3 0x00ae877e in WTF::RefPtr<WebCore::Scrollbar>::operator= (this=0x180034cc, optr=0x0) at RefPtr.h:123 #4 0x00ada748 in WebCore::EventHandler::updateLastScrollbarUnderMouse (this=0x1800342c, scrollbar=0x0, setLast=0x1) at /Users/torarne/dev/webkit/land/WebCore/page/EventHandler.cpp:2600 #5 0x00ae3a29 in WebCore::EventHandler::handleMouseMoveEvent (this=0x1800342c, mouseEvent=@0xbfff94ac, hoveredNode=0xbfff944c) at /Users/torarne/dev/webkit/land/WebCore/page/EventHandler.cpp:1380 #6 0x00ae3f8d in WebCore::EventHandler::mouseMoved (this=0x1800342c, event=@0xbfff94ac) at /Users/torarne/dev/webkit/land/WebCore/page/EventHandler.cpp:1313 #7 0x00d9d857 in QWebPagePrivate::mouseMoveEvent (this=0x14f02560, ev=0xbfff9528) at /Users/torarne/dev/webkit/land/WebKit/qt/Api/qwebpage.cpp:762 #8 0x00d9d8ea in QWebPagePrivate::leaveEvent (this=0x14f02560) at /Users/torarne/dev/webkit/land/WebKit/qt/Api/qwebpage.cpp:1243 #9 0x00d9e027 in QWebPage::event (this=0x14f02500, ev=0xbfff9bf4) at /Users/torarne/dev/webkit/land/WebKit/qt/Api/qwebpage.cpp:2658 #10 0x00da78a8 in QWebView::event (this=0x15105b80, e=0xbfff9bf4) at /Users/torarne/dev/webkit/land/WebKit/qt/Api/qwebview.cpp:809
Jesus Sanchez-Palencia
Comment 4 2010-05-14 07:01:07 PDT
Can't reproduce on Snow Leopard with Qt 4.7 trunk (HEAD 03f8f1df0d88f5ffe0b3120cffce614cbeefdb70) and WebKit trunk (r59155), by using QtLauncher. Even tried resizing the window and reloading the page afterwards.
Kenneth Rohde Christiansen
Comment 5 2010-05-14 07:30:46 PDT
(In reply to comment #4) > Can't reproduce on Snow Leopard with Qt 4.7 trunk (HEAD 03f8f1df0d88f5ffe0b3120cffce614cbeefdb70) and WebKit trunk (r59155), by using QtLauncher. Even tried resizing the window and reloading the page afterwards. Debug build? it is an Assert after all
Jesus Sanchez-Palencia
Comment 6 2010-05-14 08:01:29 PDT
(In reply to comment #5) > (In reply to comment #4) > > Can't reproduce on Snow Leopard with Qt 4.7 trunk (HEAD 03f8f1df0d88f5ffe0b3120cffce614cbeefdb70) and WebKit trunk (r59155), by using QtLauncher. Even tried resizing the window and reloading the page afterwards. > > Debug build? it is an Assert after all Yes...
Note You need to log in before you can comment on or make changes to this bug.