11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Copyright 2014 The Chromium Authors. All rights reserved.
21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Use of this source code is governed by a BSD-style license that can be
31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// found in the LICENSE file.
41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#ifndef CHROME_BROWSER_CHROMEOS_FILEAPI_EXTERNAL_FILE_URL_UTIL_H_
61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define CHROME_BROWSER_CHROMEOS_FILEAPI_EXTERNAL_FILE_URL_UTIL_H_
71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass GURL;
91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass Profile;
101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace base {
121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass FilePath;
131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace storage {
161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass FileSystemURL;
171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace chromeos {
201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Obtains the external file url formatted as "externalfile:<path>" from file
221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// path. Returns empty URL if the file system does not provide the external file
231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// URL.
241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciGURL FileSystemURLToExternalFileURL(
251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    const storage::FileSystemURL& file_system_url);
261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Converts a externalfile: URL back to a virtual path of FileSystemURL.
281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccibase::FilePath ExternalFileURLToVirtualPath(const GURL& url);
291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Obtains external file URL (e.g. external:drive/root/sample.txt) from file
311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// path (e.g. /special/drive-xxx/root/sample.txt), if the |path| points an
321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// external location (drive, MTP, or FSP). Otherwise, it returns empty URL.
331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciGURL CreateExternalFileURLFromPath(Profile* profile,
341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci                                   const base::FilePath& path);
351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}  // namespace chromeos
371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#endif  // CHROME_BROWSER_CHROMEOS_FILEAPI_EXTERNAL_FILE_URL_UTIL_H_
39