| Index: base/files/file.h
|
| diff --git a/base/files/file.h b/base/files/file.h
|
| index 89077b41c1d8d03a9aa1e33ea822b9fb9454f807..b21b15972bce7c62be0dad659cff4e76af262ac2 100644
|
| --- a/base/files/file.h
|
| +++ b/base/files/file.h
|
| @@ -18,6 +18,8 @@
|
|
|
| #include "base/base_export.h"
|
| #include "base/basictypes.h"
|
| +#include "base/files/file_path.h"
|
| +#include "base/files/file_tracing.h"
|
| #include "base/files/scoped_file.h"
|
| #include "base/gtest_prod_util.h"
|
| #include "base/move.h"
|
| @@ -31,8 +33,6 @@ FORWARD_DECLARE_TEST(FileTest, MemoryCorruption);
|
|
|
| namespace base {
|
|
|
| -class FilePath;
|
| -
|
| #if defined(OS_WIN)
|
| typedef HANDLE PlatformFile;
|
| #elif defined(OS_POSIX)
|
| @@ -162,8 +162,8 @@ class BASE_EXPORT File {
|
| File();
|
|
|
| // Creates or opens the given file. This will fail with 'access denied' if the
|
| - // |name| contains path traversal ('..') components.
|
| - File(const FilePath& name, uint32 flags);
|
| + // |path| contains path traversal ('..') components.
|
| + File(const FilePath& path, uint32 flags);
|
|
|
| // Takes ownership of |platform_file|.
|
| explicit File(PlatformFile platform_file);
|
| @@ -180,7 +180,7 @@ class BASE_EXPORT File {
|
| File& operator=(RValue other);
|
|
|
| // Creates or opens the given file.
|
| - void Initialize(const FilePath& name, uint32 flags);
|
| + void Initialize(const FilePath& path, uint32 flags);
|
|
|
| bool IsValid() const;
|
|
|
| @@ -191,7 +191,7 @@ class BASE_EXPORT File {
|
|
|
| // Returns the OS result of opening this file. Note that the way to verify
|
| // the success of the operation is to use IsValid(), not this method:
|
| - // File file(name, flags);
|
| + // File file(path, flags);
|
| // if (!file.IsValid())
|
| // return;
|
| Error error_details() const { return error_details_; }
|
| @@ -305,6 +305,8 @@ class BASE_EXPORT File {
|
| private:
|
| FRIEND_TEST_ALL_PREFIXES(::FileTest, MemoryCorruption);
|
|
|
| + friend class FileTracing::ScopedTrace;
|
| +
|
| #if defined(OS_POSIX)
|
| // Encloses a single ScopedFD, saving a cheap tamper resistent memory checksum
|
| // alongside it. This checksum is validated at every access, allowing early
|
| @@ -350,9 +352,9 @@ class BASE_EXPORT File {
|
| };
|
| #endif
|
|
|
| - // Creates or opens the given file. Only called if |name| has no traversal
|
| - // ('..') components.
|
| - void DoInitialize(const FilePath& name, uint32 flags);
|
| + // Creates or opens the given file. Only called if |path_| has no
|
| + // traversal ('..') components.
|
| + void DoInitialize(uint32 flags);
|
|
|
| // TODO(tnagel): Reintegrate into Flush() once histogram isn't needed anymore,
|
| // cf. issue 473337.
|
| @@ -366,6 +368,12 @@ class BASE_EXPORT File {
|
| MemoryCheckingScopedFD file_;
|
| #endif
|
|
|
| + // Path that |Initialize()| was called with. Only set if safe (i.e. no '..').
|
| + FilePath path_;
|
| +
|
| + // Object tied to the lifetime of |this| that enables/disables tracing.
|
| + FileTracing::ScopedEnabler trace_enabler_;
|
| +
|
| Error error_details_;
|
| bool created_;
|
| bool async_;
|
|
|