summaryrefslogtreecommitdiffstats
path: root/webkit/fileapi
diff options
context:
space:
mode:
authorkinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-01 05:52:26 +0000
committerkinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-01 05:52:26 +0000
commit46b80c8b3b2918130e10c0d774ffc8315e6488bd (patch)
tree8b984fc5e026d1df6b5d73530e139b93690a6f8f /webkit/fileapi
parentd4f0835d7d2e91fe06a4b5ef87c8fb839134987a (diff)
downloadchromium_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.cc9
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());