summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chromeos
diff options
context:
space:
mode:
authorgspencer@chromium.org <gspencer@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-29 22:00:29 +0000
committergspencer@chromium.org <gspencer@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-29 22:00:29 +0000
commit093504bac30b9c8f3d47a182abc3c9ae18ff2cf0 (patch)
tree9ad2b30e4e306e272ead2575465cc675dc8a3523 /chrome/browser/chromeos
parentf019ca9c1104405e7c0347186a4fe1a599f5bd23 (diff)
downloadchromium_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.cc2
-rw-r--r--chrome/browser/chromeos/gdata/gdata_sync_client_unittest.cc2
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));