summaryrefslogtreecommitdiffstats
path: root/chrome/browser/sync/glue/extension_model_associator.cc
diff options
context:
space:
mode:
authorzea@chromium.org <zea@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-26 23:41:50 +0000
committerzea@chromium.org <zea@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-26 23:41:50 +0000
commitde7d78c74cb823da110e828610be3b83f4229c00 (patch)
tree2b26c2a59804f68d76c93b308deab48cdb15ea37 /chrome/browser/sync/glue/extension_model_associator.cc
parenta3bcff633580fa9afd4653817f497d8a49235994 (diff)
downloadchromium_src-de7d78c74cb823da110e828610be3b83f4229c00.zip
chromium_src-de7d78c74cb823da110e828610be3b83f4229c00.tar.gz
chromium_src-de7d78c74cb823da110e828610be3b83f4229c00.tar.bz2
Reland 87645 with clang fixes.
[Sync] Refactor sync datatype error handling. This introduces SyncError's, which are a convenient way of passing around an error location, type, and message. All datatypes have been refactored to use this, including in the AssociateModels code. A future change will use this to add support for continuing sync even when a datatype fails to start. In addition, eventually a future change will convert the UnrecoverableError handler to use SyncError's as well as have the datatype controller's and datatype manager surface SyncError's to the PSS. Original Review URL: http://codereview.chromium.org/7453014 TBR=akalin@chromium.org BUG=87645 TEST= Review URL: http://codereview.chromium.org/7461098 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94204 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/sync/glue/extension_model_associator.cc')
-rw-r--r--chrome/browser/sync/glue/extension_model_associator.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/chrome/browser/sync/glue/extension_model_associator.cc b/chrome/browser/sync/glue/extension_model_associator.cc
index 46594b6..fbe0e0d 100644
--- a/chrome/browser/sync/glue/extension_model_associator.cc
+++ b/chrome/browser/sync/glue/extension_model_associator.cc
@@ -32,22 +32,24 @@ ExtensionModelAssociator::~ExtensionModelAssociator() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
}
-bool ExtensionModelAssociator::AssociateModels() {
+bool ExtensionModelAssociator::AssociateModels(SyncError* error) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
ExtensionDataMap extension_data_map;
if (!SlurpExtensionData(
traits_, *extension_service_, user_share_, &extension_data_map)) {
+ error->Reset(FROM_HERE, "Failed to get extension data.", model_type());
return false;
}
if (!FlushExtensionData(
traits_, extension_data_map, extension_service_, user_share_)) {
+ error->Reset(FROM_HERE, "Failed to flush extension data.", model_type());
return false;
}
return true;
}
-bool ExtensionModelAssociator::DisassociateModels() {
+bool ExtensionModelAssociator::DisassociateModels(SyncError* error) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
// Nothing to do.
return true;