Skip to content

Commit 15a4c46

Browse files
committed
Bug 586808 - Incubator embedding: MozView crashes on destroy if page is not loaded [@ WebBrowserChrome::OnStateChange]. r=mark.finkle
1 parent c2af345 commit 15a4c46

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

common/embed.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
* Tobias Hunger <[email protected]>
2525
* Steffen Imhof <[email protected]>
2626
* Anton Rogaynis <[email protected]>
27+
* Tatiana Meshkova <[email protected]>
2728
*
2829
* Alternatively, the contents of this file may be used under the terms of
2930
* either the GNU General Public License Version 2 or later (the "GPL"), or
@@ -175,6 +176,13 @@ class MozView::Private
175176
else if (NS_FAILED(consoleService->UnregisterListener(mConsoleListener)))
176177
cerr << "Failed to unregister console listener." << endl;
177178

179+
// disconnect listener before window destroy
180+
nsCOMPtr<nsIWebProgressListener> listener = do_QueryInterface(mChrome);
181+
nsCOMPtr<nsIWeakReference> thisListener(do_GetWeakReference(listener));
182+
if (mWebBrowser)
183+
mWebBrowser->RemoveWebBrowserListener(thisListener, NS_GET_IID(nsIWebProgressListener));
184+
thisListener = nsnull;
185+
178186
if (mChrome)
179187
mChrome->SetWebBrowser(0);
180188
if (mWebBrowser) {

0 commit comments

Comments
 (0)