1// Copyright (c) 2012 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 CONTENT_BROWSER_FILEAPI_BROWSER_FILE_SYSTEM_HELPER_H_ 6#define CONTENT_BROWSER_FILEAPI_BROWSER_FILE_SYSTEM_HELPER_H_ 7 8#include "base/memory/ref_counted.h" 9#include "content/common/content_export.h" 10#include "webkit/browser/fileapi/file_system_context.h" 11 12namespace fileapi { 13class ExternalMountPoints; 14class FileSystemContext; 15class FileSystemURL; 16} 17 18namespace content { 19 20class BrowserContext; 21 22// Helper method that returns FileSystemContext constructed for 23// the browser process. 24CONTENT_EXPORT scoped_refptr<fileapi::FileSystemContext> 25CreateFileSystemContext( 26 BrowserContext* browser_context, 27 const base::FilePath& profile_path, 28 bool is_incognito, 29 quota::QuotaManagerProxy* quota_manager_proxy); 30 31// Verifies that |url| is valid and has a registered backend in |context|. 32CONTENT_EXPORT bool FileSystemURLIsValid(fileapi::FileSystemContext* context, 33 const fileapi::FileSystemURL& url); 34 35// Check whether a process has permission to access the file system URL. 36CONTENT_EXPORT bool CheckFileSystemPermissionsForProcess( 37 fileapi::FileSystemContext* context, 38 int process_id, 39 const fileapi::FileSystemURL& url, 40 int permissions, 41 base::PlatformFileError* error); 42 43// Get the platform path from a file system URL. This needs to be called 44// on the FILE thread. 45CONTENT_EXPORT void SyncGetPlatformPath(fileapi::FileSystemContext* context, 46 int process_id, 47 const GURL& path, 48 base::FilePath* platform_path); 49} // namespace content 50 51#endif // CONTENT_BROWSER_FILEAPI_BROWSER_FILE_SYSTEM_HELPER_H_ 52