diff options
author | gspencer@chromium.org <gspencer@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-29 22:00:29 +0000 |
---|---|---|
committer | gspencer@chromium.org <gspencer@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-29 22:00:29 +0000 |
commit | 093504bac30b9c8f3d47a182abc3c9ae18ff2cf0 (patch) | |
tree | 9ad2b30e4e306e272ead2575465cc675dc8a3523 /chrome/browser/chromeos | |
parent | f019ca9c1104405e7c0347186a4fe1a599f5bd23 (diff) | |
download | chromium_src-093504bac30b9c8f3d47a182abc3c9ae18ff2cf0.zip chromium_src-093504bac30b9c8f3d47a182abc3c9ae18ff2cf0.tar.gz chromium_src-093504bac30b9c8f3d47a182abc3c9ae18ff2cf0.tar.bz2 |
Merge 144979 - gdata: Fix a crash in GDataFileSystem::RunAndNotifyInitialLoadFinished()
GDataSyncClient should unsubscribe from GDataFileSystem events
before it's deleted.
BUG=135231
TEST=none
Review URL: https://chromiumcodereview.appspot.com/10693051
TBR=satorux@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10694042
git-svn-id: svn://svn.chromium.org/chrome/branches/1180/src@145004 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/chromeos')
-rw-r--r-- | chrome/browser/chromeos/gdata/gdata_sync_client.cc | 2 | ||||
-rw-r--r-- | chrome/browser/chromeos/gdata/gdata_sync_client_unittest.cc | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/chrome/browser/chromeos/gdata/gdata_sync_client.cc b/chrome/browser/chromeos/gdata/gdata_sync_client.cc index 7316488..0bb7092 100644 --- a/chrome/browser/chromeos/gdata/gdata_sync_client.cc +++ b/chrome/browser/chromeos/gdata/gdata_sync_client.cc @@ -88,6 +88,8 @@ GDataSyncClient::GDataSyncClient(Profile* profile, GDataSyncClient::~GDataSyncClient() { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + if (file_system_) + file_system_->RemoveObserver(this); if (cache_) cache_->RemoveObserver(this); diff --git a/chrome/browser/chromeos/gdata/gdata_sync_client_unittest.cc b/chrome/browser/chromeos/gdata/gdata_sync_client_unittest.cc index a0fffc5..1c22009 100644 --- a/chrome/browser/chromeos/gdata/gdata_sync_client_unittest.cc +++ b/chrome/browser/chromeos/gdata/gdata_sync_client_unittest.cc @@ -78,6 +78,8 @@ class GDataSyncClientTest : public testing::Test { EXPECT_CALL(*mock_network_library_, RemoveNetworkManagerObserver( sync_client_.get())).Times(1); EXPECT_CALL(*mock_file_system_, AddObserver(sync_client_.get())).Times(1); + EXPECT_CALL(*mock_file_system_, + RemoveObserver(sync_client_.get())).Times(1); // Disable delaying so that DoSyncLoop() starts immediately. sync_client_->set_delay_for_testing(base::TimeDelta::FromSeconds(0)); |