Bug 107499 - double click on link with shift and control key down crashes khtml every time
Summary: double click on link with shift and control key down crashes khtml every time
Status: RESOLVED DUPLICATE of bug 95319
Alias: None
Product: konqueror
Classification: Applications
Component: khtml (show other bugs)
Version: unspecified
Platform: Slackware Linux
: NOR crash
Target Milestone: ---
Assignee: Konqueror Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-06-15 22:06 UTC by David Weimer
Modified: 2006-07-27 14:45 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description David Weimer 2005-06-15 22:06:10 UTC
Version:            (using KDE KDE 3.4.1)
Installed from:    Slackware Packages
OS:                Linux

I am developing a qt application with the embedded khtml browser.
Someone in my shop has developed a page with links that have javascript
handlers that treat a click on the link differently if shift and control keys
are both held down during the click. For some reason I tried shift+control+double click
and boom. The khtml browser and the application crashes. This happens every time I double click
on any link in any page, with or without any javascript. The backtrace showed
that it was failing somewhere in the khtmlDoubleClickEvent of the viewport object.
Since I hate any possible method of crashing our application, I decided to work around this!

My work around to this was to install an event handler on the khtml->widget()->viewport()
with the following line taken from the konqueror source code:

(static_cast<QScrollView *>(widget()))->viewport()->installEventFilter( myObject );

The eventFilter method for myObject catches event type doubleclick, and checks to see
if both shift and control keys are pressed. If so it eats the event.

Note: this had to be done for all frames, and nested frames in the page, otherwise
links inside iframes and these nested frames would also cause the crash. Since this is
a little tedious for the developer to worry about, I thought you might prefer fixing this.

Hope this helps out
- Dave
Comment 1 Tommi Tervo 2005-06-16 11:01:48 UTC
Do you get same backtrace here?
http://bugs.kde.org/show_bug.cgi?id=95319
Comment 2 David Weimer 2005-06-16 14:39:44 UTC
Here is some compiler information from "g++ -v"
--------------------------------------------------
Reading specs from /usr/lib/gcc-lib/i486-slackware-linux/3.3.5/specs
Configured with: ../gcc-3.3.5/configure --prefix=/usr --enable-shared --enable-threads=posix --enable-__cxa_atexit --disable-checking --with-gnu-ld --verbose --target=i486-slackware-linux --host=i486-slackware-linux
Thread model: posix
gcc version 3.3.5


And here is a backtrace after taking my workaround out:
Using host libthread_db library "/lib/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread 16384 (LWP 11370)]
[New Thread 32769 (LWP 11373)]
[Thread debugging using libthread_db enabled]
[New Thread 16384 (LWP 11370)]
[New Thread 32769 (LWP 11373)]
[Thread debugging using libthread_db enabled]
[New Thread 16384 (LWP 11370)]
[New Thread 32769 (LWP 11373)]
[New Thread 16386 (LWP 11374)]
[New Thread 32771 (LWP 11375)]
[New Thread 49156 (LWP 11376)]
[New Thread 65541 (LWP 11377)]
[New Thread 81926 (LWP 11378)]
[New Thread 98311 (LWP 11379)]
[New Thread 114696 (LWP 11380)]
[New Thread 131081 (LWP 11381)]
[New Thread 147466 (LWP 11382)]
[New Thread 163851 (LWP 11383)]
[New Thread 180236 (LWP 11384)]
[New Thread 196621 (LWP 11385)]
[New Thread 213006 (LWP 11386)]
[New Thread 229391 (LWP 11387)]
[New Thread 245776 (LWP 11388)]
[New Thread 262161 (LWP 11389)]
[New Thread 278546 (LWP 11390)]
[New Thread 294931 (LWP 11391)]
[New Thread 311316 (LWP 11392)]
[New Thread 327701 (LWP 11393)]
[New Thread 344086 (LWP 11394)]
[KCrash handler]
#6  0x4021ce37 in KStaticDeleter<QPtrList<DOM::DocumentImpl> >::~KStaticDeleter
    () from /opt/kde/lib/libkhtml.so.4
#7  0x401d7b79 in KHTMLPart::khtmlMouseDoubleClickEvent ()
   from /opt/kde/lib/libkhtml.so.4
#8  0x401d71ab in KHTMLPart::customEvent () from /opt/kde/lib/libkhtml.so.4
#9  0x4077cdba in QObject::event () from /usr/local/qt/lib/libqt-mt.so.3
#10 0x4071715d in QApplication::internalNotify ()
   from /usr/local/qt/lib/libqt-mt.so.3
#11 0x407166ed in QApplication::notify () from /usr/local/qt/lib/libqt-mt.so.3
#12 0x416ea4f5 in KApplication::notify () from /opt/kde/lib/libkdecore.so.4
#13 0x401a02fe in KHTMLView::viewportMouseDoubleClickEvent ()
   from /opt/kde/lib/libkhtml.so.4
#14 0x408b734a in QScrollView::eventFilter ()
   from /usr/local/qt/lib/libqt-mt.so.3
#15 0x401a3312 in KHTMLView::eventFilter () from /opt/kde/lib/libkhtml.so.4
#16 0x4077cf0b in QObject::activate_filters ()
   from /usr/local/qt/lib/libqt-mt.so.3
#17 0x4077ce2a in QObject::event () from /usr/local/qt/lib/libqt-mt.so.3
#18 0x407bda72 in QWidget::event () from /usr/local/qt/lib/libqt-mt.so.3
#19 0x4071715d in QApplication::internalNotify ()
   from /usr/local/qt/lib/libqt-mt.so.3
#20 0x407167d9 in QApplication::notify () from /usr/local/qt/lib/libqt-mt.so.3
#21 0x416ea4f5 in KApplication::notify () from /opt/kde/lib/libkdecore.so.4
#22 0x406a1731 in QETWidget::translateMouseEvent ()
   from /usr/local/qt/lib/libqt-mt.so.3
#23 0x4069f16a in QApplication::x11ProcessEvent ()
   from /usr/local/qt/lib/libqt-mt.so.3
#24 0x406b79b0 in QEventLoop::processEvents ()
   from /usr/local/qt/lib/libqt-mt.so.3
#25 0x4072bd5b in QEventLoop::enterLoop () from /usr/local/qt/lib/libqt-mt.so.3
#26 0x4072bc04 in QEventLoop::exec () from /usr/local/qt/lib/libqt-mt.so.3
#27 0x407173e0 in QApplication::exec () from /usr/local/qt/lib/libqt-mt.so.3
#28 0x08069f80 in main (argc=1, argv=0xbffff424) at main.cpp:214

Comment 3 Tommi Tervo 2006-07-27 14:45:02 UTC
Should be fixed

*** This bug has been marked as a duplicate of 95319 ***