diff options
-rw-r--r-- | chrome/browser/sync_file_system/drive_file_sync_util.cc | 54 | ||||
-rw-r--r-- | chrome/browser/sync_file_system/drive_file_sync_util.h | 19 | ||||
-rw-r--r-- | chrome/chrome_browser.gypi | 2 | ||||
-rw-r--r-- | webkit/fileapi/syncable/sync_status_code.h | 3 |
4 files changed, 78 insertions, 0 deletions
diff --git a/chrome/browser/sync_file_system/drive_file_sync_util.cc b/chrome/browser/sync_file_system/drive_file_sync_util.cc new file mode 100644 index 0000000..d5b1daa --- /dev/null +++ b/chrome/browser/sync_file_system/drive_file_sync_util.cc @@ -0,0 +1,54 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/sync_file_system/drive_file_sync_util.h" + +#include "base/logging.h" + +namespace sync_file_system { + +fileapi::SyncStatusCode GDataErrorCodeToSyncStatusCode( + google_apis::GDataErrorCode error) { + switch (error) { + case google_apis::HTTP_SUCCESS: + case google_apis::HTTP_CREATED: + case google_apis::HTTP_FOUND: + case google_apis::HTTP_NOT_MODIFIED: + return fileapi::SYNC_STATUS_OK; + + case google_apis::HTTP_CONFLICT: + return fileapi::SYNC_STATUS_HAS_CONFLICT; + + case google_apis::HTTP_UNAUTHORIZED: + return fileapi::SYNC_STATUS_AUTHENTICATION_FAILED; + + case google_apis::GDATA_NO_CONNECTION: + return fileapi::SYNC_STATUS_NETWORK_ERROR; + + case google_apis::HTTP_INTERNAL_SERVER_ERROR: + case google_apis::HTTP_SERVICE_UNAVAILABLE: + case google_apis::GDATA_CANCELLED: + case google_apis::GDATA_NOT_READY: + return fileapi::SYNC_STATUS_RETRY; + + case google_apis::HTTP_NOT_FOUND: + return fileapi::SYNC_FILE_ERROR_NOT_FOUND; + + case google_apis::GDATA_FILE_ERROR: + return fileapi::SYNC_FILE_ERROR_FAILED; + + case google_apis::HTTP_RESUME_INCOMPLETE: + case google_apis::HTTP_BAD_REQUEST: + case google_apis::HTTP_FORBIDDEN: + case google_apis::HTTP_LENGTH_REQUIRED: + case google_apis::HTTP_PRECONDITION: + case google_apis::GDATA_PARSE_ERROR: + case google_apis::GDATA_OTHER_ERROR: + return fileapi::SYNC_STATUS_FAILED; + } + NOTREACHED(); + return fileapi::SYNC_STATUS_FAILED; +} + +} // namespace sync_file_system diff --git a/chrome/browser/sync_file_system/drive_file_sync_util.h b/chrome/browser/sync_file_system/drive_file_sync_util.h new file mode 100644 index 0000000..4422fcc --- /dev/null +++ b/chrome/browser/sync_file_system/drive_file_sync_util.h @@ -0,0 +1,19 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_FILE_SYNC_UTIL_H_ +#define CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_FILE_SYNC_UTIL_H_ + +#include "chrome/browser/google_apis/gdata_errorcode.h" +#include "webkit/fileapi/syncable/sync_status_code.h" + +namespace sync_file_system { + +// Translates GDataErrorCode to SyncStatusCode. +fileapi::SyncStatusCode GDataErrorCodeToSyncStatusCode( + google_apis::GDataErrorCode error); + +} // namespace sync_file_system + +#endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_FILE_SYNC_UTIL_H_ diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi index fd68490..6afb6e9 100644 --- a/chrome/chrome_browser.gypi +++ b/chrome/chrome_browser.gypi @@ -1953,6 +1953,8 @@ 'browser/sync/user_selectable_sync_type.h', 'browser/sync_file_system/drive_file_sync_client.cc', 'browser/sync_file_system/drive_file_sync_client.h', + 'browser/sync_file_system/drive_file_sync_util.cc', + 'browser/sync_file_system/drive_file_sync_util.h', 'browser/sync_file_system/drive_metadata_store.cc', 'browser/sync_file_system/drive_metadata_store.h', 'browser/sync_file_system/local_change_processor.h', diff --git a/webkit/fileapi/syncable/sync_status_code.h b/webkit/fileapi/syncable/sync_status_code.h index 23a0f66..2dcc1e8 100644 --- a/webkit/fileapi/syncable/sync_status_code.h +++ b/webkit/fileapi/syncable/sync_status_code.h @@ -48,6 +48,9 @@ enum SyncStatusCode { SYNC_STATUS_ABORT = -103, SYNC_STATUS_NO_CHANGE_TO_SYNC = -104, SYNC_STATUS_RETRY = -105, + SYNC_STATUS_NETWORK_ERROR = -106, + SYNC_STATUS_AUTHENTICATION_FAILED = -107, + SYNC_STATUS_FAILED = -108 }; WEBKIT_STORAGE_EXPORT SyncStatusCode LevelDBStatusToSyncStatusCode( |