Index: base/files/file.h |
diff --git a/base/files/file.h b/base/files/file.h |
index cba435363560187f60341cad8c865ed1d576b291..976188b232efdac7ad6c3594bd4d6e5c273cffe9 100644 |
--- a/base/files/file.h |
+++ b/base/files/file.h |
@@ -21,7 +21,6 @@ |
#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" |
#include "base/time/time.h" |
@@ -29,8 +28,6 @@ |
#include "base/win/scoped_handle.h" |
#endif |
-FORWARD_DECLARE_TEST(FileTest, MemoryCorruption); |
- |
namespace base { |
#if defined(OS_WIN) |
@@ -306,55 +303,8 @@ class BASE_EXPORT File { |
static std::string ErrorToString(Error error); |
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 |
- // detection of memory corruption. |
- |
- // TODO(gavinp): This is in place temporarily to help us debug |
- // https://crbug.com/424562 , which can't be reproduced in valgrind. Remove |
- // this code after we have fixed this issue. |
- class MemoryCheckingScopedFD { |
- public: |
- MemoryCheckingScopedFD(); |
- MemoryCheckingScopedFD(int fd); |
- ~MemoryCheckingScopedFD(); |
- |
- bool is_valid() const { Check(); return file_.is_valid(); } |
- int get() const { Check(); return file_.get(); } |
- |
- void reset() { Check(); file_.reset(); UpdateChecksum(); } |
- void reset(int fd) { Check(); file_.reset(fd); UpdateChecksum(); } |
- int release() { |
- Check(); |
- int fd = file_.release(); |
- UpdateChecksum(); |
- return fd; |
- } |
- |
- private: |
- FRIEND_TEST_ALL_PREFIXES(::FileTest, MemoryCorruption); |
- |
- // Computes the checksum for the current value of |file_|. Returns via an |
- // out parameter to guard against implicit conversions of unsigned integral |
- // types. |
- void ComputeMemoryChecksum(unsigned int* out_checksum) const; |
- |
- // Confirms that the current |file_| and |file_memory_checksum_| agree, |
- // failing a CHECK if they do not. |
- void Check() const; |
- |
- void UpdateChecksum(); |
- |
- ScopedFD file_; |
- unsigned int file_memory_checksum_; |
- }; |
-#endif |
- |
// Creates or opens the given file. Only called if |path| has no |
// traversal ('..') components. |
void DoInitialize(const FilePath& path, uint32 flags); |
@@ -368,7 +318,7 @@ class BASE_EXPORT File { |
#if defined(OS_WIN) |
win::ScopedHandle file_; |
#elif defined(OS_POSIX) |
- MemoryCheckingScopedFD file_; |
+ ScopedFD file_; |
#endif |
// A path to use for tracing purposes. Set if file tracing is enabled during |
@@ -386,3 +336,4 @@ class BASE_EXPORT File { |
} // namespace base |
#endif // BASE_FILES_FILE_H_ |
+ |