summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-02 20:47:03 +0000
committerananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-02 20:47:03 +0000
commit132f9940b41020e1736d0c4df793d7626a67dcee (patch)
tree1ac4f364ae7ae6671ea99fa6a428e9be914e79fd
parentd6d995c331449c33877bcc0fe64439f3ed75751a (diff)
downloadchromium_src-132f9940b41020e1736d0c4df793d7626a67dcee.zip
chromium_src-132f9940b41020e1736d0c4df793d7626a67dcee.tar.gz
chromium_src-132f9940b41020e1736d0c4df793d7626a67dcee.tar.bz2
Merge 108010 - Relanding this.
Fix a ChromeFrame crash which occurs in the background worker thread while dereferencing a NULL automation client. This crash occurs when the active document is in the process of shutting down while there are active background requests still pending. Fix is to ensure that the background thread has been stopped before returning from the UrlmonUrlRequestManager::StopAll function which gets called during CF shutdown. Fixes bug http://code.google.com/p/chromium/issues/detail?id=102393 BUG=102393 TBR=robertshield Review URL: http://codereview.chromium.org/8384019 TBR=ananta@chromium.org Review URL: http://codereview.chromium.org/8439052 git-svn-id: svn://svn.chromium.org/chrome/branches/912/src@108344 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome_frame/urlmon_url_request.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/chrome_frame/urlmon_url_request.cc b/chrome_frame/urlmon_url_request.cc
index 9bade03..ea75ccf 100644
--- a/chrome_frame/urlmon_url_request.cc
+++ b/chrome_frame/urlmon_url_request.cc
@@ -1261,6 +1261,8 @@ void UrlmonUrlRequestManager::StopAll() {
NewRunnableMethod(
this, &UrlmonUrlRequestManager::StopAllRequestsHelper,
&background_request_map_, &background_resource_map_lock_));
+ background_thread_->Stop();
+ background_thread_.reset();
}
}
@@ -1374,8 +1376,6 @@ UrlmonUrlRequestManager::UrlmonUrlRequestManager()
UrlmonUrlRequestManager::~UrlmonUrlRequestManager() {
StopAll();
- if (background_worker_thread_enabled_)
- background_thread_->Stop();
}
void UrlmonUrlRequestManager::AddPrivacyDataForUrl(