diff options
author | kinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-01 05:52:26 +0000 |
---|---|---|
committer | kinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-01 05:52:26 +0000 |
commit | 46b80c8b3b2918130e10c0d774ffc8315e6488bd (patch) | |
tree | 8b984fc5e026d1df6b5d73530e139b93690a6f8f /webkit/fileapi | |
parent | d4f0835d7d2e91fe06a4b5ef87c8fb839134987a (diff) | |
download | chromium_src-46b80c8b3b2918130e10c0d774ffc8315e6488bd.zip chromium_src-46b80c8b3b2918130e10c0d774ffc8315e6488bd.tar.gz chromium_src-46b80c8b3b2918130e10c0d774ffc8315e6488bd.tar.bz2 |
Don't reference sync_status() after shutdown
BUG=235778
TEST=SyncFileSystemServiceTest.SimpleSyncFlowWithFileBusy
R=timurrrr@chromium.org, tzik@chromium.org
Review URL: https://codereview.chromium.org/13905012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@197573 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/fileapi')
-rw-r--r-- | webkit/fileapi/syncable/local_file_sync_context.cc | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/webkit/fileapi/syncable/local_file_sync_context.cc b/webkit/fileapi/syncable/local_file_sync_context.cc index 8d716a9..d5f5cca 100644 --- a/webkit/fileapi/syncable/local_file_sync_context.cc +++ b/webkit/fileapi/syncable/local_file_sync_context.cc @@ -538,6 +538,11 @@ void LocalFileSyncContext::TryPrepareForLocalSync( DCHECK(ui_task_runner_->RunsTasksOnCurrentThread()); DCHECK(urls); + if (shutdown_on_ui_) { + callback.Run(SYNC_STATUS_ABORT, LocalFileSyncInfo()); + return; + } + if (urls->empty()) { callback.Run(SYNC_STATUS_NO_CHANGE_TO_SYNC, LocalFileSyncInfo()); @@ -635,6 +640,10 @@ void LocalFileSyncContext::DidGetWritingStatusForSync( void LocalFileSyncContext::EnableWritingOnIOThread( const FileSystemURL& url) { DCHECK(io_task_runner_->RunsTasksOnCurrentThread()); + if (!sync_status()) { + // The service might have been shut down. + return; + } sync_status()->EndSyncing(url); // Since a sync has finished the number of changes must have been updated. origins_with_pending_changes_.insert(url.origin()); |