Commit 78588c37 authored by Jeremie Boulic's avatar Jeremie Boulic Committed by Commit Bot

[Files App] Add password needed error handling for archives

A NEED_PASSWORD error has been defined on the cros-disks side to
handle encrypted archives.

Updating the UI to handle this special mounting error.

trying to open encrypted zip archives with cros-disks

Test: Manually tested that the password needed dialog is shown when
Bug: 912236
Change-Id: I23d5285b1efe887c06e54f733ef4c1fe76c35b47
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2303740
Commit-Queue: Jeremie Boulic <jboulic@chromium.org>
Reviewed-by: default avatarRyo Hashimoto <hashimoto@chromium.org>
Reviewed-by: default avatarFrançois Degros <fdegros@chromium.org>
Cr-Commit-Position: refs/heads/master@{#790681}
parent 73cea862
...@@ -166,6 +166,8 @@ MountErrorToMountCompletedStatus(chromeos::MountError error) { ...@@ -166,6 +166,8 @@ MountErrorToMountCompletedStatus(chromeos::MountError error) {
MOUNT_COMPLETED_STATUS_ERROR_UNSUPPORTED_FILESYSTEM; MOUNT_COMPLETED_STATUS_ERROR_UNSUPPORTED_FILESYSTEM;
case chromeos::MOUNT_ERROR_INVALID_ARCHIVE: case chromeos::MOUNT_ERROR_INVALID_ARCHIVE:
return file_manager_private::MOUNT_COMPLETED_STATUS_ERROR_INVALID_ARCHIVE; return file_manager_private::MOUNT_COMPLETED_STATUS_ERROR_INVALID_ARCHIVE;
case chromeos::MOUNT_ERROR_NEED_PASSWORD:
return file_manager_private::MOUNT_COMPLETED_STATUS_ERROR_NEED_PASSWORD;
// Not a real error. // Not a real error.
case chromeos::MOUNT_ERROR_COUNT: case chromeos::MOUNT_ERROR_COUNT:
NOTREACHED(); NOTREACHED();
......
...@@ -50,7 +50,8 @@ enum MountCompletedStatus { ...@@ -50,7 +50,8 @@ enum MountCompletedStatus {
error_invalid_device_path, error_invalid_device_path,
error_unknown_filesystem, error_unknown_filesystem,
error_unsupported_filesystem, error_unsupported_filesystem,
error_invalid_archive error_invalid_archive,
error_need_password
}; };
// Filesystem to format to. // Filesystem to format to.
......
...@@ -115,6 +115,8 @@ MountError CrosDisksMountErrorToChromeMountError( ...@@ -115,6 +115,8 @@ MountError CrosDisksMountErrorToChromeMountError(
case cros_disks::MOUNT_ERROR_UNSUPPORTED_ARCHIVE: case cros_disks::MOUNT_ERROR_UNSUPPORTED_ARCHIVE:
// TODO(amistry): Add MOUNT_ERROR_UNSUPPORTED_ARCHIVE. // TODO(amistry): Add MOUNT_ERROR_UNSUPPORTED_ARCHIVE.
return MOUNT_ERROR_UNKNOWN; return MOUNT_ERROR_UNKNOWN;
case cros_disks::MOUNT_ERROR_NEED_PASSWORD:
return MOUNT_ERROR_NEED_PASSWORD;
default: default:
NOTREACHED() << "Unrecognised mount error code " << mount_error; NOTREACHED() << "Unrecognised mount error code " << mount_error;
return MOUNT_ERROR_UNKNOWN; return MOUNT_ERROR_UNKNOWN;
......
...@@ -72,6 +72,7 @@ enum MountError { ...@@ -72,6 +72,7 @@ enum MountError {
MOUNT_ERROR_UNKNOWN_FILESYSTEM, MOUNT_ERROR_UNKNOWN_FILESYSTEM,
MOUNT_ERROR_UNSUPPORTED_FILESYSTEM, MOUNT_ERROR_UNSUPPORTED_FILESYSTEM,
MOUNT_ERROR_INVALID_ARCHIVE, MOUNT_ERROR_INVALID_ARCHIVE,
MOUNT_ERROR_NEED_PASSWORD,
MOUNT_ERROR_COUNT, MOUNT_ERROR_COUNT,
}; };
......
...@@ -89,6 +89,7 @@ chrome.fileManagerPrivate.MountCompletedStatus = { ...@@ -89,6 +89,7 @@ chrome.fileManagerPrivate.MountCompletedStatus = {
ERROR_INVALID_ARCHIVE: 'error_invalid_archive', ERROR_INVALID_ARCHIVE: 'error_invalid_archive',
ERROR_AUTHENTICATION: 'error_authentication', ERROR_AUTHENTICATION: 'error_authentication',
ERROR_PATH_UNMOUNTED: 'error_path_unmounted', ERROR_PATH_UNMOUNTED: 'error_path_unmounted',
ERROR_NEED_PASSWORD: 'error_need_password',
}; };
/** @enum {string} */ /** @enum {string} */
......
...@@ -206,7 +206,8 @@ VolumeManagerCommon.VolumeError = { ...@@ -206,7 +206,8 @@ VolumeManagerCommon.VolumeError = {
INVALID_DEVICE_PATH: 'error_invalid_device_path', INVALID_DEVICE_PATH: 'error_invalid_device_path',
UNKNOWN_FILESYSTEM: 'error_unknown_filesystem', UNKNOWN_FILESYSTEM: 'error_unknown_filesystem',
UNSUPPORTED_FILESYSTEM: 'error_unsupported_filesystem', UNSUPPORTED_FILESYSTEM: 'error_unsupported_filesystem',
INVALID_ARCHIVE: 'error_invalid_archive' INVALID_ARCHIVE: 'error_invalid_archive',
NEED_PASSWORD: 'error_need_password',
}; };
Object.freeze(VolumeManagerCommon.VolumeError); Object.freeze(VolumeManagerCommon.VolumeError);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment