Replace FileUtilProxy with FileProxy in renderer_host/pepper
BUG=322664
Review URL: https://codereview.chromium.org/252583007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270781 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/base/files/file_proxy.h b/base/files/file_proxy.h
index 3c834f6..f990d04 100644
--- a/base/files/file_proxy.h
+++ b/base/files/file_proxy.h
@@ -33,12 +33,9 @@
// In other words, having a sequence like
//
// proxy.Write(...);
-// delete proxy;
+// proxy.Write(...);
//
-// will keep the file valid during the Write operation but will cause the file
-// to be closed in the current thread, when the operation finishes. If Close is
-// called right away after Write, the second call will fail because there is an
-// operation in progress.
+// means the second Write will always fail.
class BASE_EXPORT FileProxy : public SupportsWeakPtr<FileProxy> {
public:
// This callback is used by methods that report only an error code. It is
@@ -88,8 +85,14 @@
// length to simulate a new file), and false otherwise.
bool created() const { return file_.created(); }
+ // Claims ownership of |file|. It is an error to call this method when
+ // IsValid() returns true.
+ void SetFile(File file);
+
File TakeFile();
+ PlatformFile GetPlatformFile() const;
+
// Proxies File::Close. The callback can be null.
// This returns false if task posting to |task_runner| has failed.
bool Close(const StatusCallback& callback);
@@ -127,7 +130,6 @@
private:
friend class FileHelper;
- void SetFile(File file);
TaskRunner* task_runner() { return task_runner_.get(); }
scoped_refptr<TaskRunner> task_runner_;