Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(871)

Unified Diff: chrome/browser/chromeos/file_system_provider/service.h

Issue 294073007: [fsp] Let extensions decide about the file system id. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased. Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/file_system_provider/service.h
diff --git a/chrome/browser/chromeos/file_system_provider/service.h b/chrome/browser/chromeos/file_system_provider/service.h
index f5554bd4592fa0e5bff94e5fdce8f3b4aac1587c..d98276792617c458e134684df3c85fbab91a5229 100644
--- a/chrome/browser/chromeos/file_system_provider/service.h
+++ b/chrome/browser/chromeos/file_system_provider/service.h
@@ -7,6 +7,7 @@
#include <map>
#include <string>
+#include <utility>
#include <vector>
#include "base/files/file.h"
@@ -55,19 +56,21 @@ class Service : public KeyedService,
const FileSystemFactoryCallback& factory_callback);
// Mounts a file system provided by an extension with the |extension_id|.
- // For success, it returns a numeric file system id, which is an
- // auto-incremented non-zero value. For failures, it returns zero.
- int MountFileSystem(const std::string& extension_id,
- const std::string& file_system_name);
+ // For success, returns true, otherwise false.
+ bool MountFileSystem(const std::string& extension_id,
+ const std::string& file_system_id,
+ const std::string& file_system_name);
// Unmounts a file system with the specified |file_system_id| for the
// |extension_id|. For success returns true, otherwise false.
- bool UnmountFileSystem(const std::string& extension_id, int file_system_id);
+ bool UnmountFileSystem(const std::string& extension_id,
+ const std::string& file_system_id);
// Requests unmounting of the file system. The callback is called when the
// request is accepted or rejected, with an error code. Returns false if the
// request could not been created, true otherwise.
- bool RequestUnmount(int file_system_id);
+ bool RequestUnmount(const std::string& extension_id,
+ const std::string& file_system_id);
// Returns a list of information of all currently provided file systems. All
// items are copied.
@@ -77,7 +80,7 @@ class Service : public KeyedService,
// the extension with |extension_id|. If not found, then returns NULL.
ProvidedFileSystemInterface* GetProvidedFileSystem(
const std::string& extension_id,
- int file_system_id);
+ const std::string& file_system_id);
// Returns a provided file system attached to the the passed
// |mount_point_name|. If not found, then returns NULL.
@@ -98,8 +101,13 @@ class Service : public KeyedService,
extensions::UnloadedExtensionInfo::Reason reason) OVERRIDE;
private:
- typedef std::map<int, ProvidedFileSystemInterface*> ProvidedFileSystemMap;
- typedef std::map<std::string, int> MountPointNameToIdMap;
+ // Key is a pair of an extension id and file system id, which makes it
+ // unique among the entire service instance.
+ typedef std::pair<std::string, std::string> FileSystemKey;
+
+ typedef std::map<FileSystemKey, ProvidedFileSystemInterface*>
+ ProvidedFileSystemMap;
+ typedef std::map<std::string, FileSystemKey> MountPointNameToKeyMap;
// Called when the providing extension accepts or refuses a unmount request.
// If |error| is equal to FILE_OK, then the request is accepted.
@@ -111,8 +119,7 @@ class Service : public KeyedService,
FileSystemFactoryCallback file_system_factory_;
ObserverList<Observer> observers_;
ProvidedFileSystemMap file_system_map_; // Owns pointers.
- MountPointNameToIdMap mount_point_name_to_id_map_;
- int next_id_;
+ MountPointNameToKeyMap mount_point_name_to_key_map_;
base::WeakPtrFactory<Service> weak_ptr_factory_;
DISALLOW_COPY_AND_ASSIGN(Service);

Powered by Google App Engine
This is Rietveld 408576698