Commit 13d5d22e authored by Joel Hockey's avatar Joel Hockey Committed by Commit Bot

FilesApp Crostini mounting as a Disk volume rather than FSP

Update FilesApp to expect crostini to mount with sshfs and
show up as a disk volume rather than using sftp and mounting
using the File System Provider API.

Bug: 834103
Cq-Include-Trybots: master.tryserver.chromium.linux:closure_compilation
Change-Id: Iede287504e2d6af50fc60d1c175c21360b3d0882
Reviewed-on: https://chromium-review.googlesource.com/1059494Reviewed-by: default avatarNoel Gordon <noel@chromium.org>
Commit-Queue: Joel Hockey <joelhockey@chromium.org>
Cr-Commit-Position: refs/heads/master@{#558678}
parent a0f57ae4
......@@ -491,21 +491,19 @@ FileBrowserBackgroundImpl.prototype.onMountCompleted_ = function(event) {
FileBrowserBackgroundImpl.prototype.onMountCompletedInternal_ = function(
event) {
// If there is no focused window, then create a new one opened on the
// mounted FSP volume.
// mounted volume.
this.findFocusedWindow_()
.then(function(key) {
let statusOK = event.status === 'success' ||
event.status === 'error_path_already_mounted';
let volumeTypeOK =
event.volumeMetadata.source === VolumeManagerCommon.Source.FILE ||
VolumeManagerCommon.getProvidedFileSystemIdFromVolumeId(
event.volumeId) ===
VolumeManagerCommon.ProvidedFileSystem.CROSTINI;
if (key === null && event.eventType === 'mount' && statusOK &&
event.volumeMetadata.mountContext === 'user' &&
(event.volumeMetadata.volumeType ===
VolumeManagerCommon.VolumeType.PROVIDED &&
event.volumeMetadata.source === VolumeManagerCommon.Source.FILE) ||
event.volumeMetadata.volumeType ===
VolumeManagerCommon.VolumeType.PROVIDED &&
volumeTypeOK) {
VolumeManagerCommon.VolumeType.CROSTINI;
if (key === null && event.eventType === 'mount' && statusOK &&
event.volumeMetadata.mountContext === 'user' && volumeTypeOK) {
this.navigateToVolumeWhenReady_(event.volumeMetadata.volumeId);
}
}.bind(this))
......
......@@ -77,6 +77,9 @@ volumeManagerUtil.createVolumeInfo = function(volumeMetadata) {
break;
}
break;
case VolumeManagerCommon.VolumeType.CROSTINI:
localizedLabel = str('LINUX_FILES_ROOT_LABEL');
break;
default:
// TODO(mtomasz): Calculate volumeLabel for all types of volumes in the
// C++ layer.
......
......@@ -328,26 +328,6 @@ VolumeManagerCommon.getMediaViewRootTypeFromVolumeId = function(volumeId) {
volumeId.split(':', 2)[1]);
};
/**
* List of known FSP-provided fileSystemId values.
*
* @enum {string}
* @const
*/
VolumeManagerCommon.ProvidedFileSystem = {
CROSTINI: 'crostini',
};
/**
* Obtains fileSystemId from volumeId of FSP-provided mount.
* @param {string} volumeId Volume ID.
* @return {string|undefined}
*/
VolumeManagerCommon.getProvidedFileSystemIdFromVolumeId = function(volumeId) {
return volumeId ? volumeId.split(':', 3)[2] : undefined;
};
/**
* Fake entries for virtual folders which hold Google Drive offline files,
* Google Drive "Shared with me" files, and mixed Recent files.
......
......@@ -1168,11 +1168,9 @@ DirectoryModel.prototype.onVolumeInfoListUpdated_ = function(event) {
// then redirect to it in the focused window.
// Note, that this is a temporary solution for https://crbug.com/427776.
if (window.isFocused() && event.added.length === 1 &&
event.added[0].volumeType === VolumeManagerCommon.VolumeType.PROVIDED &&
(event.added[0].source === VolumeManagerCommon.Source.FILE ||
VolumeManagerCommon.getProvidedFileSystemIdFromVolumeId(
event.added[0].volumeId) ===
VolumeManagerCommon.ProvidedFileSystem.CROSTINI)) {
((event.added[0].volumeType === VolumeManagerCommon.VolumeType.PROVIDED &&
event.added[0].source === VolumeManagerCommon.Source.FILE) ||
event.added[0].volumeType === VolumeManagerCommon.VolumeType.CROSTINI)) {
event.added[0].resolveDisplayRoot().then(function(displayRoot) {
// Resolving a display root on FSP volumes is instant, despite the
// asynchronous call.
......
......@@ -365,9 +365,8 @@ NavigationListModel.prototype.reorderNavigationItems_ = function() {
// Check if Linux files already mounted.
let linuxFilesMounted = false;
for (let i = 0; i < this.volumeList_.length; i++) {
if (VolumeManagerCommon.getProvidedFileSystemIdFromVolumeId(
this.volumeList_[i].volumeInfo.volumeId) ===
VolumeManagerCommon.ProvidedFileSystem.CROSTINI) {
if (this.volumeList_[i].volumeInfo.volumeType ===
VolumeManagerCommon.VolumeType.CROSTINI) {
linuxFilesMounted = true;
break;
}
......
......@@ -700,13 +700,6 @@ VolumeItem.prototype.setupIcon_ = function(icon, volumeInfo) {
'volume-subtype',
VolumeManagerCommon.getMediaViewRootTypeFromVolumeId(
volumeInfo.volumeId));
} else if (
volumeInfo.volumeType === VolumeManagerCommon.VolumeType.PROVIDED) {
icon.setAttribute(
'volume-subtype',
VolumeManagerCommon.getProvidedFileSystemIdFromVolumeId(
volumeInfo.volumeId) ||
'');
} else {
icon.setAttribute('volume-subtype', volumeInfo.deviceType || '');
}
......
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