|  | // Copyright 2018 The Chromium Authors | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #ifndef CHROME_BROWSER_ASH_SMB_CLIENT_SMB_ERRORS_H_ | 
|  | #define CHROME_BROWSER_ASH_SMB_CLIENT_SMB_ERRORS_H_ | 
|  |  | 
|  | #include "base/files/file.h" | 
|  | #include "chromeos/ash/components/dbus/smbprovider/smb_provider_client.h" | 
|  |  | 
|  | namespace ash::smb_client { | 
|  |  | 
|  | // These values are written to logs. New enum values may be added, but existing | 
|  | // enums must never be renumbered or values reused. Must be kept in sync | 
|  | // with the SmbMountResult enum in | 
|  | // ash/webui/common/resources/smb_shares/smb_browser_proxy.js | 
|  | // and the NativeSmbFileShare_MountResult enum in enums.xml. | 
|  | enum class SmbMountResult { | 
|  | kSuccess = 0,                 // Mount succeeded. | 
|  | kUnknownFailure = 1,          // Mount failed in an unrecognized way. | 
|  | kAuthenticationFailed = 2,    // Authentication to the share failed. | 
|  | kNotFound = 3,                // The specified share was not found. | 
|  | kUnsupportedDevice = 4,       // The specified share is not supported. | 
|  | kMountExists = 5,             // The specified share is already mounted. | 
|  | kInvalidUrl = 6,              // The mount URL is an invalid SMB URL. | 
|  | kInvalidOperation = 7,        // libsmbclient returned invalid operation. | 
|  | kDbusParseFailed = 8,         // Parsing the D-Bus message or response failed. | 
|  | kOutOfMemory = 9,             // The share is out of memory or storage. | 
|  | kAborted = 10,                // The operation was aborted. | 
|  | kIoError = 11,                // An I/O error occurred. | 
|  | kTooManyOpened = 12,          // There are too many shares open. | 
|  | kInvalidSsoUrl = 13,          // The share URL is not valid when using SSO. | 
|  | kInvalidUsername = 14,        // The username is invalid. | 
|  | kMaxValue = kInvalidUsername  // Max enum value for use in metrics. | 
|  | }; | 
|  |  | 
|  | // Translates an smbprovider::ErrorType to an SmbMountResult. | 
|  | SmbMountResult TranslateErrorToMountResult(smbprovider::ErrorType error); | 
|  |  | 
|  | }  // namespace ash::smb_client | 
|  |  | 
|  | #endif  // CHROME_BROWSER_ASH_SMB_CLIENT_SMB_ERRORS_H_ |