Index: chrome/browser/sync/engine/clear_data_command.cc |
diff --git a/chrome/browser/sync/engine/clear_data_command.cc b/chrome/browser/sync/engine/clear_data_command.cc |
index ebb95d85d5aafc9be091a898472882351f08ac3b..3b9d048978981d73fd9f135330bceb4ebbd2b27b 100644 |
--- a/chrome/browser/sync/engine/clear_data_command.cc |
+++ b/chrome/browser/sync/engine/clear_data_command.cc |
@@ -26,7 +26,7 @@ using syncable::MODEL_TYPE_COUNT; |
ClearDataCommand::ClearDataCommand() {} |
ClearDataCommand::~ClearDataCommand() {} |
-void ClearDataCommand::ExecuteImpl(SyncSession* session) { |
+SyncerError ClearDataCommand::ExecuteImpl(SyncSession* session) { |
ClientToServerMessage client_to_server_message; |
ClientToServerResponse client_to_server_response; |
@@ -40,14 +40,14 @@ void ClearDataCommand::ExecuteImpl(SyncSession* session) { |
session->context()->account_name()); |
if (!dir.good()) { |
LOG(ERROR) << "Scoped dir lookup failed!"; |
- return; |
+ return DIRECTORY_LOOKUP_FAILED; |
} |
SyncerProtoUtil::AddRequestBirthday(dir, &client_to_server_message); |
DVLOG(1) << "Clearing server data"; |
- bool ok = SyncerProtoUtil::PostClientToServerMessage( |
+ SyncerError result = SyncerProtoUtil::PostClientToServerMessage( |
client_to_server_message, |
&client_to_server_response, |
session); |
@@ -55,8 +55,12 @@ void ClearDataCommand::ExecuteImpl(SyncSession* session) { |
DVLOG(1) << SyncerProtoUtil::ClientToServerResponseDebugString( |
client_to_server_response); |
+ // FIXME(rlarocque): This code is wrong. The response error codes it checks |
+ // have been obsoleted. The only reason it hasn't caused problems is that it |
+ // is unreachable. We should do something to clean up this mess. |
+ // |
// Clear pending indicates that the server has received our clear message |
- if (!ok || !client_to_server_response.has_error_code() || |
+ if (result != NO_ERROR || !client_to_server_response.has_error_code() || |
client_to_server_response.error_code() != |
sync_pb::ClientToServerResponse::SUCCESS) { |
// On failure, subsequent requests to the server will cause it to attempt |
@@ -67,7 +71,7 @@ void ClearDataCommand::ExecuteImpl(SyncSession* session) { |
LOG(ERROR) << "Error posting ClearData."; |
- return; |
+ return result; |
} |
SyncEngineEvent event(SyncEngineEvent::CLEAR_SERVER_DATA_SUCCEEDED); |
@@ -76,6 +80,7 @@ void ClearDataCommand::ExecuteImpl(SyncSession* session) { |
session->delegate()->OnShouldStopSyncingPermanently(); |
DVLOG(1) << "ClearData succeeded."; |
+ return NO_ERROR; |
} |
} // namespace browser_sync |