1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CHROME_BROWSER_CHROMEOS_FILEAPI_EXTERNAL_FILE_URL_UTIL_H_
6#define CHROME_BROWSER_CHROMEOS_FILEAPI_EXTERNAL_FILE_URL_UTIL_H_
7
8class GURL;
9class Profile;
10
11namespace base {
12class FilePath;
13}
14
15namespace storage {
16class FileSystemURL;
17}
18
19namespace chromeos {
20
21// Obtains the external file url formatted as "externalfile:<path>" from file
22// path. Returns empty URL if the file system does not provide the external file
23// URL.
24GURL FileSystemURLToExternalFileURL(
25    const storage::FileSystemURL& file_system_url);
26
27// Converts a externalfile: URL back to a virtual path of FileSystemURL.
28base::FilePath ExternalFileURLToVirtualPath(const GURL& url);
29
30// Obtains external file URL (e.g. external:drive/root/sample.txt) from file
31// path (e.g. /special/drive-xxx/root/sample.txt), if the |path| points an
32// external location (drive, MTP, or FSP). Otherwise, it returns empty URL.
33GURL CreateExternalFileURLFromPath(Profile* profile,
34                                   const base::FilePath& path);
35
36}  // namespace chromeos
37
38#endif  // CHROME_BROWSER_CHROMEOS_FILEAPI_EXTERNAL_FILE_URL_UTIL_H_
39