diff options
author | stoyan@chromium.org <stoyan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-11 18:06:00 +0000 |
---|---|---|
committer | stoyan@chromium.org <stoyan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-11 18:06:00 +0000 |
commit | 3148c0ae4462e01f4b830b8d2150dcd7fee2cb3b (patch) | |
tree | b475d693512495f0e2209d1f85a852beb45dc1c5 /chrome_frame/chrome_active_document.cc | |
parent | b438c4a50990c32e11e8b9a4d806c8a7bc2b8746 (diff) | |
download | chromium_src-3148c0ae4462e01f4b830b8d2150dcd7fee2cb3b.zip chromium_src-3148c0ae4462e01f4b830b8d2150dcd7fee2cb3b.tar.gz chromium_src-3148c0ae4462e01f4b830b8d2150dcd7fee2cb3b.tar.bz2 |
AddRef ChromeFrameAutomationClient as long as the supporting window exists.
Crash was due the final Release() called from inside message handler.
Additionally prevent invoking member functions of invalid/old chrome_frame_delegate_.
Still have a race acessing url_fetcher_ though.
BUG=35556
Review URL: http://codereview.chromium.org/825005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41290 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame/chrome_active_document.cc')
-rw-r--r-- | chrome_frame/chrome_active_document.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/chrome_frame/chrome_active_document.cc b/chrome_frame/chrome_active_document.cc index ce1897f..e4a26bd 100644 --- a/chrome_frame/chrome_active_document.cc +++ b/chrome_frame/chrome_active_document.cc @@ -65,7 +65,7 @@ HRESULT ChromeActiveDocument::FinalConstruct() { ChromeActiveDocument* cached_document = g_active_doc_cache.Get(); if (cached_document) { DCHECK(automation_client_.get() == NULL); - automation_client_ = cached_document->automation_client_.release(); + automation_client_.swap(cached_document->automation_client_); DLOG(INFO) << "Reusing automation client instance from " << cached_document; DCHECK(automation_client_.get() != NULL); |