Commit 871c5d30 authored by zea@chromium.org's avatar zea@chromium.org

[Sync] Don't synchronously stop datatypes that encounter errors

The datatype logic may be operating unders assumptions that break when
the type is stopped from under it, possibly triggering crashes.

BUG=402595

Review URL: https://codereview.chromium.org/462863002

Cr-Commit-Position: refs/heads/master@{#288954}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@288954 0039d316-1c4b-4281-b951-d872f2087c98
parent f3fc594d
......@@ -153,9 +153,12 @@ void FrontendDataTypeController::OnSingleDataTypeUnrecoverableError(
if (!start_callback_.is_null()) {
syncer::SyncMergeResult local_merge_result(type());
local_merge_result.set_error(error);
start_callback_.Run(RUNTIME_ERROR,
local_merge_result,
syncer::SyncMergeResult(type()));
base::MessageLoop::current()->PostTask(
FROM_HERE,
base::Bind(start_callback_,
RUNTIME_ERROR,
local_merge_result,
syncer::SyncMergeResult(type())));
}
}
......
......@@ -331,9 +331,12 @@ void UIDataTypeController::OnSingleDataTypeUnrecoverableError(
if (!start_callback_.is_null()) {
syncer::SyncMergeResult local_merge_result(type());
local_merge_result.set_error(error);
start_callback_.Run(RUNTIME_ERROR,
local_merge_result,
syncer::SyncMergeResult(type()));
base::MessageLoop::current()->PostTask(
FROM_HERE,
base::Bind(start_callback_,
RUNTIME_ERROR,
local_merge_result,
syncer::SyncMergeResult(type())));
}
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment