| Index: chrome/browser/chromeos/drive/drive_file_system_proxy.cc
|
| diff --git a/chrome/browser/chromeos/drive/drive_file_system_proxy.cc b/chrome/browser/chromeos/drive/drive_file_system_proxy.cc
|
| index 6a616508d9bc2d70940b190af5ccd2646b05cbe9..567cfa74eb16c6ead1cddcf9f606a9ac0971a6ea 100644
|
| --- a/chrome/browser/chromeos/drive/drive_file_system_proxy.cc
|
| +++ b/chrome/browser/chromeos/drive/drive_file_system_proxy.cc
|
| @@ -179,6 +179,7 @@ void DriveFileSystemProxy::DetachFromFileSystem() {
|
| void DriveFileSystemProxy::GetFileInfo(const FileSystemURL& file_url,
|
| const FileSystemOperation::GetMetadataCallback& callback) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| +
|
| base::FilePath file_path;
|
| if (!ValidateUrl(file_url, &file_path)) {
|
| MessageLoopProxy::current()->PostTask(FROM_HERE,
|
| @@ -697,8 +698,13 @@ bool DriveFileSystemProxy::ValidateUrl(
|
| if (!url.is_valid() || url.type() != fileapi::kFileSystemTypeDrive) {
|
| return false;
|
| }
|
| - *file_path = url.virtual_path();
|
| - return true;
|
| +
|
| + // |url.virtual_path()| cannot be used directly because in the case the url is
|
| + // isolated file system url, the virtual path will be formatted as
|
| + // <isolated_file_system_id>/<file_name> and thus unusable by drive file
|
| + // system.
|
| + *file_path = util::ExtractDrivePath(url.path());
|
| + return !file_path->empty();
|
| }
|
|
|
| void DriveFileSystemProxy::CallDriveFileSystemMethodOnUIThread(
|
|
|