diff options
author | zea@chromium.org <zea@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-26 23:41:50 +0000 |
---|---|---|
committer | zea@chromium.org <zea@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-26 23:41:50 +0000 |
commit | de7d78c74cb823da110e828610be3b83f4229c00 (patch) | |
tree | 2b26c2a59804f68d76c93b308deab48cdb15ea37 /chrome/browser/sync/glue/extension_model_associator.cc | |
parent | a3bcff633580fa9afd4653817f497d8a49235994 (diff) | |
download | chromium_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.cc | 6 |
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; |