c3980646f6
We were getting crashes due to using methods of already half-destroyed object when wxWebView window was destroyed in wxGTK, with the following abbreviated stack: #0 wxgtk_webview_webkit_load_status (widget=0x12eb380, webKitCtrl=0x13ee040) at src/gtk/webview_webkit.cpp:38 ... #8 0x00007ffff05ca281 in dispatchDidFailLoad (error=..., this=0x7fffe32db900) at ../Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp:1054 #9 WebKit::FrameLoaderClient::dispatchDidFailLoad (this=0x7fffe32db900, error=...) at ../Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp:1049 #10 0x00007ffff0b0de54 in WebCore::FrameLoader::checkLoadCompleteForThisFrame (this=0x7fffe3221b70) at ../Source/WebCore/loader/FrameLoader.cpp:2128 #11 0x00007ffff0b0cfde in WebCore::FrameLoader::checkLoadComplete (this=<optimized out>) at ../Source/WebCore/loader/FrameLoader.cpp:2370 #12 0x00007ffff0b0a3b2 in WebCore::FrameLoader::receivedMainResourceError (this=0x7fffe3221b70, error=..., isComplete=true) at ../Source/WebCore/loader/FrameLoader.cpp:2640 #13 0x00007ffff0b423b7 in cancel (error=..., this=0x7fffe3279680) at ../Source/WebCore/loader/ResourceLoader.cpp:399 #14 WebCore::ResourceLoader::cancel (this=0x7fffe3279680, error=...) at ../Source/WebCore/loader/ResourceLoader.cpp:353 #15 0x00007ffff0b420c0 in WebCore::ResourceLoader::cancel (this=<optimized out>) at ../Source/WebCore/loader/ResourceLoader.cpp:350 #16 0x00007ffff0afda9e in WebCore::DocumentLoader::stopLoading (this=0x7fffa081d800) at ../Source/WebCore/loader/DocumentLoader.cpp:258 #17 0x00007ffff0b09561 in stopAllLoaders (clearProvisionalItemPolicy=WebCore::ShouldClearProvisionalItem, this=0x7fffe3221b70) at ../Source/WebCore/loader/FrameLoader.cpp:1523 #18 WebCore::FrameLoader::stopAllLoaders (this=0x7fffe3221b70, clearProvisionalItemPolicy=WebCore::ShouldClearProvisionalItem) at ../Source/WebCore/loader/FrameLoader.cpp:1501 #19 0x00007ffff0b0d17a in WebCore::FrameLoader::stopForUserCancel (this=0x7fffe3221b70, deferCheckLoadComplete=false) at ../Source/WebCore/loader/FrameLoader.cpp:1541 #20 0x00007ffff05f3a36 in webkit_web_view_dispose (object=0x12eb380) at ../Source/WebKit/gtk/webkit/webkitwebview.cpp:1327 #21 0x00007ffff27ff7a0 in g_object_run_dispose (object=0x12eb380) at /tmp/buildd/glib2.0-2.32.3/./gobject/gobject.c:1061 #22 0x00007ffff4476c1e in gtk_scrolled_window_forall (container=0x7fff9c007d10, include_internals=0, callback=0x7ffff452cd20 <IA__gtk_widget_destroy>, callback_data=0x0) at /tmp/buildd/gtk+2.0-2.24.10/gtk/gtkscrolledwindow.c:1085 #23 0x00007ffff439872f in gtk_container_destroy (object=0x7fff9c007d10) at /tmp/buildd/gtk+2.0-2.24.10/gtk/gtkcontainer.c:1073 ... #28 0x00007ffff443cd60 in gtk_object_dispose (gobject=0x7fff9c007d10) at /tmp/buildd/gtk+2.0-2.24.10/gtk/gtkobject.c:421 #29 0x00007ffff27ff7a0 in g_object_run_dispose (object=0x7fff9c007d10) at /tmp/buildd/glib2.0-2.32.3/./gobject/gobject.c:1061 #30 0x00007ffff6cb65ac in wxWindow::~wxWindow (this=0x13ee040, __in_chrg=<optimized out>) at src/gtk/window.cpp:2367 #31 0x00007ffff6d71241 in wxControlBase::~wxControlBase (this=0x13ee040, __in_chrg=<optimized out>) at src/common/ctrlcmn.cpp:49 #32 0x00000000005cf761 in wxControl::~wxControl (this=0x13ee040, __in_chrg=<optimized out>) at include/wx/gtk/control.h:27 #33 0x00007ffff7bd1eae in wxWebView::~wxWebView (this=0x13ee040, __in_chrg=<optimized out>) at include/wx/webview.h:96 #34 0x00007ffff7bd3443 in wxWebViewWebKit::~wxWebViewWebKit (this=0x13ee040, __in_chrg=<optimized out>) at include/wx/gtk/webview_webkit.h:26 #35 0x00007ffff7bd34ae in wxWebViewWebKit::~wxWebViewWebKit (this=0x13ee040, __in_chrg=<optimized out>) at include/wx/gtk/webview_webkit.h:26 Fix this by setting m_isBeingDeleted flag for wxWebViewWebKit early and checking it in the callback. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72173 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 |
||
---|---|---|
.. | ||
android | ||
aui | ||
cocoa | ||
dfb | ||
generic | ||
gtk | ||
gtk1 | ||
html | ||
meta | ||
motif | ||
msdos | ||
msw | ||
os2 | ||
osx | ||
persist | ||
private | ||
propgrid | ||
protocol | ||
ribbon | ||
richtext | ||
stc | ||
univ | ||
unix | ||
x11 | ||
xml | ||
xrc | ||
aboutdlg.h | ||
accel.h | ||
access.h | ||
affinematrix2d.h | ||
affinematrix2dbase.h | ||
afterstd.h | ||
anidecod.h | ||
animate.h | ||
animdecod.h | ||
any.h | ||
anybutton.h | ||
anystr.h | ||
app.h | ||
apptrait.h | ||
archive.h | ||
arrimpl.cpp | ||
arrstr.h | ||
artprov.h | ||
atomic.h | ||
bannerwindow.h | ||
base64.h | ||
beforestd.h | ||
bitmap.h | ||
bmpbuttn.h | ||
bmpcbox.h | ||
bookctrl.h | ||
brush.h | ||
buffer.h | ||
build.h | ||
busyinfo.h | ||
button.h | ||
cairo.h | ||
calctrl.h | ||
caret.h | ||
chartype.h | ||
checkbox.h | ||
checkeddelete.h | ||
checklst.h | ||
chkconf.h | ||
choicdlg.h | ||
choice.h | ||
choicebk.h | ||
clipbrd.h | ||
clntdata.h | ||
clrpicker.h | ||
cmdargs.h | ||
cmdline.h | ||
cmdproc.h | ||
cmndata.h | ||
collpane.h | ||
colordlg.h | ||
colour.h | ||
colourdata.h | ||
combo.h | ||
combobox.h | ||
commandlinkbutton.h | ||
compositewin.h | ||
confbase.h | ||
config.h | ||
containr.h | ||
control.h | ||
convauto.h | ||
cpp.h | ||
cppunit.h | ||
crt.h | ||
cshelp.h | ||
ctrlsub.h | ||
cursor.h | ||
custombgwin.h | ||
dataobj.h | ||
dataview.h | ||
datectrl.h | ||
dateevt.h | ||
datetime.h | ||
datetimectrl.h | ||
datstrm.h | ||
dc.h | ||
dcbuffer.h | ||
dcclient.h | ||
dcgraph.h | ||
dcmemory.h | ||
dcmirror.h | ||
dcprint.h | ||
dcps.h | ||
dcscreen.h | ||
dcsvg.h | ||
dde.h | ||
debug.h | ||
debugrpt.h | ||
defs.h | ||
dialog.h | ||
dialup.h | ||
dir.h | ||
dirctrl.h | ||
dirdlg.h | ||
display_impl.h | ||
display.h | ||
dlimpexp.h | ||
dlist.h | ||
dnd.h | ||
docmdi.h | ||
docview.h | ||
dragimag.h | ||
dvrenderers.h | ||
dynarray.h | ||
dynlib.h | ||
dynload.h | ||
editlbox.h | ||
effects.h | ||
encconv.h | ||
encinfo.h | ||
event.h | ||
eventfilter.h | ||
evtloop.h | ||
evtloopsrc.h | ||
except.h | ||
fdrepdlg.h | ||
features.h | ||
ffile.h | ||
file.h | ||
fileconf.h | ||
filectrl.h | ||
filedlg.h | ||
filefn.h | ||
filehistory.h | ||
filename.h | ||
filepicker.h | ||
filesys.h | ||
flags.h | ||
fmappriv.h | ||
font.h | ||
fontdata.h | ||
fontdlg.h | ||
fontenc.h | ||
fontenum.h | ||
fontmap.h | ||
fontpicker.h | ||
fontutil.h | ||
frame.h | ||
fs_arc.h | ||
fs_filter.h | ||
fs_inet.h | ||
fs_mem.h | ||
fs_zip.h | ||
fswatcher.h | ||
gauge.h | ||
gbsizer.h | ||
gdicmn.h | ||
gdiobj.h | ||
geometry.h | ||
gifdecod.h | ||
glcanvas.h | ||
graphics.h | ||
grid.h | ||
hash.h | ||
hashmap.h | ||
hashset.h | ||
headercol.h | ||
headerctrl.h | ||
help.h | ||
helpbase.h | ||
helphtml.h | ||
helpwin.h | ||
htmllbox.h | ||
hyperlink.h | ||
icon.h | ||
iconbndl.h | ||
iconloc.h | ||
imagbmp.h | ||
image.h | ||
imaggif.h | ||
imagiff.h | ||
imagjpeg.h | ||
imaglist.h | ||
imagpcx.h | ||
imagpng.h | ||
imagpnm.h | ||
imagtga.h | ||
imagtiff.h | ||
imagxpm.h | ||
infobar.h | ||
init.h | ||
intl.h | ||
iosfwrap.h | ||
ioswrap.h | ||
ipc.h | ||
ipcbase.h | ||
itemid.h | ||
joystick.h | ||
kbdstate.h | ||
language.h | ||
layout.h | ||
laywin.h | ||
link.h | ||
list.h | ||
listbase.h | ||
listbook.h | ||
listbox.h | ||
listctrl.h | ||
listimpl.cpp | ||
log.h | ||
longlong.h | ||
math.h | ||
matrix.h | ||
mdi.h | ||
mediactrl.h | ||
memconf.h | ||
memory.h | ||
memtext.h | ||
menu.h | ||
menuitem.h | ||
metafile.h | ||
mimetype.h | ||
minifram.h | ||
module.h | ||
mousemanager.h | ||
mousestate.h | ||
msgdlg.h | ||
msgout.h | ||
msgqueue.h | ||
mstream.h | ||
nativewin.h | ||
nonownedwnd.h | ||
notebook.h | ||
notifmsg.h | ||
numdlg.h | ||
numformatter.h | ||
object.h | ||
odcombo.h | ||
overlay.h | ||
ownerdrw.h | ||
palette.h | ||
panel.h | ||
paper.h | ||
pen.h | ||
persist.h | ||
pickerbase.h | ||
platform.h | ||
platinfo.h | ||
popupwin.h | ||
position.h | ||
power.h | ||
print.h | ||
printdlg.h | ||
prntbase.h | ||
process.h | ||
progdlg.h | ||
propdlg.h | ||
ptr_scpd.h | ||
ptr_shrd.h | ||
quantize.h | ||
radiobox.h | ||
radiobut.h | ||
range.h | ||
rawbmp.h | ||
rearrangectrl.h | ||
recguard.h | ||
regex.h | ||
region.h | ||
renderer.h | ||
richmsgdlg.h | ||
richtooltip.h | ||
rtti.h | ||
sashwin.h | ||
sckaddr.h | ||
sckipc.h | ||
sckstrm.h | ||
scopedarray.h | ||
scopedptr.h | ||
scopeguard.h | ||
scrolbar.h | ||
scrolwin.h | ||
selstore.h | ||
settings.h | ||
setup_inc.h | ||
setup_redirect.h | ||
sharedptr.h | ||
sizer.h | ||
slider.h | ||
snglinst.h | ||
socket.h | ||
sound.h | ||
spinbutt.h | ||
spinctrl.h | ||
splash.h | ||
splitter.h | ||
srchctrl.h | ||
sstream.h | ||
stack.h | ||
stackwalk.h | ||
statbmp.h | ||
statbox.h | ||
statline.h | ||
stattext.h | ||
statusbr.h | ||
stdpaths.h | ||
stdstream.h | ||
stockitem.h | ||
stopwatch.h | ||
strconv.h | ||
stream.h | ||
string.h | ||
stringimpl.h | ||
stringops.h | ||
strvararg.h | ||
sysopt.h | ||
tarstrm.h | ||
taskbar.h | ||
tbarbase.h | ||
textbuf.h | ||
textcompleter.h | ||
textctrl.h | ||
textdlg.h | ||
textentry.h | ||
textfile.h | ||
textwrapper.h | ||
tglbtn.h | ||
thread.h | ||
thrimpl.cpp | ||
time.h | ||
timectrl.h | ||
timer.h | ||
tipdlg.h | ||
tipwin.h | ||
tls.h | ||
tokenzr.h | ||
toolbar.h | ||
toolbook.h | ||
tooltip.h | ||
toplevel.h | ||
tracker.h | ||
translation.h | ||
treebase.h | ||
treebook.h | ||
treectrl.h | ||
treelist.h | ||
txtstrm.h | ||
typeinfo.h | ||
types.h | ||
uiaction.h | ||
unichar.h | ||
uri.h | ||
url.h | ||
ustring.h | ||
utils.h | ||
valgen.h | ||
validate.h | ||
valnum.h | ||
valtext.h | ||
variant.h | ||
variantbase.h | ||
vector.h | ||
version.h | ||
versioninfo.h | ||
vidmode.h | ||
vlbox.h | ||
vms_x_fix.h | ||
volume.h | ||
vscroll.h | ||
weakref.h | ||
webview.h | ||
webviewarchivehandler.h | ||
wfstream.h | ||
window.h | ||
windowid.h | ||
withimages.h | ||
wizard.h | ||
wrapsizer.h | ||
wupdlock.h | ||
wx.h | ||
wxchar.h | ||
wxcrt.h | ||
wxcrtbase.h | ||
wxcrtvararg.h | ||
wxhtml.h | ||
wxprec.h | ||
xlocale.h | ||
xpmdecod.h | ||
xpmhand.h | ||
xti2.h | ||
xti.h | ||
xtictor.h | ||
xtihandler.h | ||
xtiprop.h | ||
xtistrm.h | ||
xtitypes.h | ||
xtixml.h | ||
zipstrm.h | ||
zstream.h |