From a080d1ce6df28f395671d78a2bd60d82d62bd666 Mon Sep 17 00:00:00 2001 From: Marshall Greenblatt Date: Thu, 20 Sep 2012 19:49:00 +0000 Subject: [PATCH] Merge revision 791 changes: - Fix crash when pending navigation executes after the browser window has been destroyed (issue #724). git-svn-id: https://chromiumembedded.googlecode.com/svn/branches/1180@792 5089003a-bbd8-11dd-ad1f-f1f9622dbc98 --- cef1/libcef/browser_impl.cc | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/cef1/libcef/browser_impl.cc b/cef1/libcef/browser_impl.cc index 088b6ea34..b410c09e5 100644 --- a/cef1/libcef/browser_impl.cc +++ b/cef1/libcef/browser_impl.cc @@ -334,6 +334,9 @@ void CefBrowserImpl::SetZoomLevel(double zoomLevel) { void CefBrowserImpl::ClearHistory() { if (CefThread::CurrentlyOn(CefThread::UI)) { + if (!nav_controller_.get()) + return; + bool old_can_go_back = !nav_controller_->IsAtStart(); bool old_can_go_forward = !nav_controller_->IsAtEnd(); nav_controller_->Reset(); @@ -849,11 +852,12 @@ void CefBrowserImpl::UIT_LoadURLForRequestRef(CefRefPtr frame, UIT_LoadURLForRequest(frame, url, method, upload_data, headers); } -void CefBrowserImpl::UIT_LoadURLForRequest(CefRefPtr frame, - const CefString& url, - const CefString& method, - const WebKit::WebHTTPBody& upload_data, - const CefRequest::HeaderMap& headers) { +void CefBrowserImpl::UIT_LoadURLForRequest( + CefRefPtr frame, + const CefString& url, + const CefString& method, + const WebKit::WebHTTPBody& upload_data, + const CefRequest::HeaderMap& headers) { REQUIRE_UIT(); if (url.empty()) @@ -870,9 +874,11 @@ void CefBrowserImpl::UIT_LoadURLForRequest(CefRefPtr frame, return; } - nav_controller_->LoadEntry( - new BrowserNavigationEntry(-1, gurl, CefString(), frame->GetName(), - method, upload_data, headers)); + if (nav_controller_.get()) { + nav_controller_->LoadEntry( + new BrowserNavigationEntry(-1, gurl, CefString(), frame->GetName(), + method, upload_data, headers)); + } } void CefBrowserImpl::UIT_LoadHTML(CefRefPtr frame, @@ -945,12 +951,14 @@ void CefBrowserImpl::UIT_ExecuteJavaScript(CefRefPtr frame, void CefBrowserImpl::UIT_GoBackOrForward(int offset) { REQUIRE_UIT(); - nav_controller_->GoToOffset(offset); + if (nav_controller_.get()) + nav_controller_->GoToOffset(offset); } void CefBrowserImpl::UIT_Reload(bool ignoreCache) { REQUIRE_UIT(); - nav_controller_->Reload(ignoreCache); + if (nav_controller_.get()) + nav_controller_->Reload(ignoreCache); } bool CefBrowserImpl::UIT_Navigate(const BrowserNavigationEntry& entry,