Convert base::MemoryMappedFile to use File instead of PlatformFile.

This also modifies consumers of MemoryMappedFile and fixes double handle
close on MediaFileChecker, media_file_checker_unittest and data_pack_unittests.

BUG=322664
TEST=unit tests

R=cpu@chromium.org, dalecurtis@chromium.org (media)

TBR (owners):
tony@chromium.org (resource)
jochen@chromium.org (chrome-content)
thakis@chromium.org (base)

Review URL: https://codereview.chromium.org/109273002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242937 0039d316-1c4b-4281-b951-d872f2087c98


CrOS-Libchrome-Original-Commit: 58ba3eab5af91f112de6a26856f07cdd46cde35e
diff --git a/base/files/file.cc b/base/files/file.cc
index 4902f15..508103a 100644
--- a/base/files/file.cc
+++ b/base/files/file.cc
@@ -31,14 +31,17 @@
       error_(FILE_OK),
       created_(false),
       async_(false) {
-  if (name.ReferencesParent()) {
-    error_ = FILE_ERROR_ACCESS_DENIED;
-    return;
-  }
-  CreateBaseFileUnsafe(name, flags);
+  Initialize(name, flags);
 }
 #endif
 
+File::File(PlatformFile platform_file)
+    : file_(platform_file),
+      error_(FILE_OK),
+      created_(false),
+      async_(false) {
+}
+
 File::File(RValue other)
     : file_(other.object->TakePlatformFile()),
       error_(other.object->error()),
@@ -61,4 +64,14 @@
   return *this;
 }
 
+#if !defined(OS_NACL)
+void File::Initialize(const FilePath& name, uint32 flags) {
+  if (name.ReferencesParent()) {
+    error_ = FILE_ERROR_ACCESS_DENIED;
+    return;
+  }
+  InitializeUnsafe(name, flags);
+}
+#endif
+
 }  // namespace base