| Index: content/browser/fileapi/fileapi_message_filter.h
|
| ===================================================================
|
| --- content/browser/fileapi/fileapi_message_filter.h (revision 171309)
|
| +++ content/browser/fileapi/fileapi_message_filter.h (working copy)
|
| @@ -5,12 +5,11 @@
|
| #ifndef CONTENT_BROWSER_FILEAPI_FILEAPI_MESSAGE_FILTER_H_
|
| #define CONTENT_BROWSER_FILEAPI_FILEAPI_MESSAGE_FILTER_H_
|
|
|
| -#include <set>
|
| +#include <map>
|
| #include <string>
|
|
|
| #include "base/callback.h"
|
| #include "base/file_util_proxy.h"
|
| -#include "base/hash_tables.h"
|
| #include "base/id_map.h"
|
| #include "base/platform_file.h"
|
| #include "base/shared_memory.h"
|
| @@ -37,6 +36,7 @@
|
| } // namespace net
|
|
|
| namespace webkit_blob {
|
| +class BlobStorageConsumer;
|
| class ShareableFileReference;
|
| }
|
|
|
| @@ -100,7 +100,7 @@
|
| void OnReadDirectory(int request_id, const GURL& path);
|
| void OnWrite(int request_id,
|
| const GURL& path,
|
| - const GURL& blob_url,
|
| + const std::string& blob_uuid,
|
| int64 offset);
|
| void OnTruncate(int request_id, const GURL& path, int64 length);
|
| void OnTouchFile(int request_id,
|
| @@ -115,18 +115,22 @@
|
| void OnSyncGetPlatformPath(const GURL& path,
|
| FilePath* platform_path);
|
| void OnCreateSnapshotFile(int request_id,
|
| - const GURL& blob_url,
|
| const GURL& path);
|
| + void OnDidReceiveSnapshotFile(int request_id);
|
| + void OnStartBuildingBlob2(const std::string& uuid);
|
| + void OnAppendBlobDataItem2(const std::string& uuid,
|
| + const webkit_blob::BlobData::Item& item);
|
| + void OnAppendSharedMemory2(const std::string& uuid,
|
| + base::SharedMemoryHandle handle,
|
| + size_t buffer_size);
|
| + void OnFinishBuildingBlob2(const std::string& uuid,
|
| + const std::string& content_type);
|
| + void OnCancelBuildingBlob(const std::string& uuid);
|
| + void OnIncrementBlobRefCount(const std::string& uuid);
|
| + void OnDecrementBlobRefCount(const std::string& uuid);
|
| + void OnRegisterPublicBlobURL(const GURL& public_url, const std::string& uuid);
|
| + void OnRevokePublicBlobURL(const GURL& public_url);
|
|
|
| - void OnStartBuildingBlob(const GURL& url);
|
| - void OnAppendBlobDataItem(const GURL& url,
|
| - const webkit_blob::BlobData::Item& item);
|
| - void OnAppendSharedMemory(const GURL& url, base::SharedMemoryHandle handle,
|
| - size_t buffer_size);
|
| - void OnFinishBuildingBlob(const GURL& url, const std::string& content_type);
|
| - void OnCloneBlob(const GURL& url, const GURL& src_url);
|
| - void OnRemoveBlob(const GURL& url);
|
| -
|
| // Callback functions to be used when each file operation is finished.
|
| void DidFinish(int request_id, base::PlatformFileError result);
|
| void DidCancel(int request_id, base::PlatformFileError result);
|
| @@ -154,19 +158,13 @@
|
| void DidDeleteFileSystem(int request_id,
|
| base::PlatformFileError result);
|
| void DidCreateSnapshot(
|
| + const fileapi::FileSystemURL& url,
|
| int request_id,
|
| - const base::Callback<void(const FilePath&)>& register_file_callback,
|
| base::PlatformFileError result,
|
| const base::PlatformFileInfo& info,
|
| const FilePath& platform_path,
|
| const scoped_refptr<webkit_blob::ShareableFileReference>& file_ref);
|
|
|
| - // Registers the given file pointed by |virtual_path| and backed by
|
| - // |platform_path| as the |blob_url|. Called by DidCreateSnapshot.
|
| - void RegisterFileAsBlob(const GURL& blob_url,
|
| - const fileapi::FileSystemURL& url,
|
| - const FilePath& platform_path);
|
| -
|
| // Checks renderer's access permissions for single file.
|
| bool HasPermissionsForFile(const fileapi::FileSystemURL& url,
|
| int permissions,
|
| @@ -192,10 +190,15 @@
|
|
|
| scoped_refptr<ChromeBlobStorageContext> blob_storage_context_;
|
|
|
| - // Keep track of blob URLs registered in this process. Need to unregister
|
| - // all of them when the renderer process dies.
|
| - base::hash_set<std::string> blob_urls_;
|
| + // Keep track of blobs utilized in this process and cleans up
|
| + // accordingly when the renderer process dies.
|
| + scoped_ptr<webkit_blob::BlobStorageConsumer> blob_storage_consumer_;
|
|
|
| + // Used to keep snapshot files alive while a DidCreateSnapshot
|
| + // is being sent to the renderer.
|
| + std::map<int, scoped_refptr<webkit_blob::ShareableFileReference> >
|
| + in_transit_snapshot_files_;
|
| +
|
| // Keep track of file system file URLs opened by OpenFile() in this process.
|
| // Need to close all of them when the renderer process dies.
|
| std::multiset<GURL> open_filesystem_urls_;
|
|
|