chromium/storage/browser/file_system/isolated_context.h

// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef STORAGE_BROWSER_FILE_SYSTEM_ISOLATED_CONTEXT_H_
#define STORAGE_BROWSER_FILE_SYSTEM_ISOLATED_CONTEXT_H_

#include <map>
#include <set>
#include <string>
#include <vector>

#include "base/component_export.h"
#include "base/files/file_path.h"
#include "base/lazy_instance.h"
#include "base/synchronization/lock.h"
#include "storage/browser/file_system/mount_points.h"
#include "storage/common/file_system/file_system_types.h"

class GURL;

namespace blink {
class StorageKey;
}  // namespace blink

namespace storage {

class FileSystemURL;

// Manages isolated filesystem mount points which have no well-known names
// and are identified by a string 'filesystem ID', which usually just looks
// like random value.
// This type of filesystem can be created on the fly and may go away when it has
// no references from renderers.
// Files in an isolated filesystem are registered with corresponding names and
// identified by a filesystem URL like:
//
//   filesystem:<origin>/isolated/<filesystem_id>/<name>/relative/path
//
// Some methods of this class are virtual just for mocking.
//
class COMPONENT_EXPORT(STORAGE_BROWSER) IsolatedContext : public MountPoints {};

}  // namespace storage

#endif  // STORAGE_BROWSER_FILE_SYSTEM_ISOLATED_CONTEXT_H_