diff options
author | eroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-12 20:52:56 +0000 |
---|---|---|
committer | eroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-12 20:52:56 +0000 |
commit | d11f566be9d149ea081607d0dbb12be7aebb4de6 (patch) | |
tree | 14fad2b08a19246ee3d223d61b67b23b8d241e38 /base/leak_tracker.h | |
parent | 7520d82219786cae7484e4a9ca5e80879d56e036 (diff) | |
download | chromium_src-d11f566be9d149ea081607d0dbb12be7aebb4de6.zip chromium_src-d11f566be9d149ea081607d0dbb12be7aebb4de6.tar.gz chromium_src-d11f566be9d149ea081607d0dbb12be7aebb4de6.tar.bz2 |
Fix a crash during shutdown where SafeBrowsingProtocolManager could end up getting back NULL for Profile::GetDefaultRequestContext() and consequently URLFetcher would crash.
During shutdown the Profile is first deleted, and THEN the IO thread is torn down.
This means there is a window of time when Profile::GetDefaultRequestContext() will return NULL, but tasks are still running on the IO thread.
Instead, SafeBrowsingProtocolManager now gets passed an explicit context, and holds a reference throughout its lifetime.
This way it is guaranteed a valid pointer throughout the lifetime of the IO thread, even if the default Profile has already been deleted.
BUG=27074
Review URL: http://codereview.chromium.org/392010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31821 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/leak_tracker.h')
0 files changed, 0 insertions, 0 deletions