| Index: webkit/fileapi/isolated_context.h
|
| diff --git a/webkit/fileapi/isolated_context.h b/webkit/fileapi/isolated_context.h
|
| index fa6d0a9ef0011d81c969f509eb0e3b6778611f34..15603281a782c63a56d8580c0dcac9eb00d192bf 100644
|
| --- a/webkit/fileapi/isolated_context.h
|
| +++ b/webkit/fileapi/isolated_context.h
|
| @@ -54,8 +54,20 @@ class FILEAPI_EXPORT IsolatedContext {
|
| std::string RegisterIsolatedFileSystem(const std::set<FilePath>& fileset);
|
|
|
| // Revokes filesystem specified by the given filesystem_id.
|
| + // Note that this revokes the filesystem no matter how many references it has.
|
| + // It is ok to call this on the filesystem that has been already deleted
|
| + // (if its reference count had reached 0).
|
| void RevokeIsolatedFileSystem(const std::string& filesystem_id);
|
|
|
| + // Adds a reference to a filesystem specified by the given filesystem_id.
|
| + void AddReference(const std::string& filesystem_id);
|
| +
|
| + // Removes a reference to a filesystem specified by the given filesystem_id.
|
| + // If the reference count reaches 0 the isolated context gets destroyed.
|
| + // It is ok to call this on the filesystem that has been already deleted
|
| + // (e.g. by RevokeIsolatedFileSystem).
|
| + void RemoveReference(const std::string& filesystem_id);
|
| +
|
| // Cracks the given |virtual_path| (which should look like
|
| // "/<filesystem_id>/<relative_path>") and populates the |filesystem_id|
|
| // and |platform_path| if the embedded <filesystem_id> is registerred
|
| @@ -102,6 +114,10 @@ class FILEAPI_EXPORT IsolatedContext {
|
| IsolatedContext();
|
| ~IsolatedContext();
|
|
|
| + // Removes the given filesystem without locking.
|
| + // (The caller must hold a lock)
|
| + void RevokeWithoutLocking(const std::string& filesystem_id);
|
| +
|
| // Returns a new filesystem_id. Called with lock.
|
| std::string GetNewFileSystemId() const;
|
|
|
| @@ -118,6 +134,10 @@ class FILEAPI_EXPORT IsolatedContext {
|
| // security policy manager, e.g. ChildProcessSecurityPolicy.
|
| std::set<std::string> writable_ids_;
|
|
|
| + // Reference counts. Note that an isolated filesystem is created with ref==0.
|
| + // and will get deleted when the ref count reaches <=0.
|
| + std::map<std::string, int> ref_counts_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(IsolatedContext);
|
| };
|
|
|
|
|