IPC: Get rid of FileDescriptor usage from FileDescriptorSet and Message

This is a step toward to killing FileDescriptor.
This change lets FiileDescriptorSet have both Files (for owning fds)
and PlatformFiles (for non-owning fds). Doing this, we no longer
need FileDescriptor which provides |auto_close| flag.

BUG=415294
TEST=ipc_tests, ipc_mojo_unittests
[email protected], [email protected], [email protected]

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

Cr-Commit-Position: refs/heads/master@{#296498}
diff --git a/ipc/file_descriptor_set_posix_unittest.cc b/ipc/file_descriptor_set_posix_unittest.cc
index d9107f9..34ef465 100644
--- a/ipc/file_descriptor_set_posix_unittest.cc
+++ b/ipc/file_descriptor_set_posix_unittest.cc
@@ -41,7 +41,7 @@
 
   ASSERT_EQ(set->size(), 0u);
   ASSERT_TRUE(set->empty());
-  ASSERT_TRUE(set->Add(kFDBase));
+  ASSERT_TRUE(set->AddToBorrow(kFDBase));
   ASSERT_EQ(set->size(), 1u);
   ASSERT_TRUE(!set->empty());
 
@@ -56,7 +56,7 @@
   ASSERT_EQ(set->size(), 0u);
   ASSERT_TRUE(set->empty());
   const int fd = GetSafeFd();
-  ASSERT_TRUE(set->AddAndAutoClose(fd));
+  ASSERT_TRUE(set->AddToOwn(base::ScopedFD(fd)));
   ASSERT_EQ(set->size(), 1u);
   ASSERT_TRUE(!set->empty());
 
@@ -68,9 +68,9 @@
   scoped_refptr<FileDescriptorSet> set(new FileDescriptorSet);
 
   for (size_t i = 0; i < FileDescriptorSet::kMaxDescriptorsPerMessage; ++i)
-    ASSERT_TRUE(set->Add(kFDBase + 1 + i));
+    ASSERT_TRUE(set->AddToBorrow(kFDBase + 1 + i));
 
-  ASSERT_TRUE(!set->Add(kFDBase));
+  ASSERT_TRUE(!set->AddToBorrow(kFDBase));
 
   set->CommitAll();
 }
@@ -79,12 +79,12 @@
   scoped_refptr<FileDescriptorSet> set(new FileDescriptorSet);
 
   ASSERT_TRUE(set->empty());
-  set->SetDescriptors(NULL, 0);
+  set->AddDescriptorsToOwn(NULL, 0);
   ASSERT_TRUE(set->empty());
 
   const int fd = GetSafeFd();
   static const int fds[] = {fd};
-  set->SetDescriptors(fds, 1);
+  set->AddDescriptorsToOwn(fds, 1);
   ASSERT_TRUE(!set->empty());
   ASSERT_EQ(set->size(), 1u);
 
@@ -93,15 +93,15 @@
   ASSERT_TRUE(VerifyClosed(fd));
 }
 
-TEST(FileDescriptorSet, GetDescriptors) {
+TEST(FileDescriptorSet, PeekDescriptors) {
   scoped_refptr<FileDescriptorSet> set(new FileDescriptorSet);
 
-  set->GetDescriptors(NULL);
-  ASSERT_TRUE(set->Add(kFDBase));
+  set->PeekDescriptors(NULL);
+  ASSERT_TRUE(set->AddToBorrow(kFDBase));
 
   int fds[1];
   fds[0] = 0;
-  set->GetDescriptors(fds);
+  set->PeekDescriptors(fds);
   ASSERT_EQ(fds[0], kFDBase);
   set->CommitAll();
   ASSERT_TRUE(set->empty());
@@ -110,13 +110,15 @@
 TEST(FileDescriptorSet, WalkInOrder) {
   scoped_refptr<FileDescriptorSet> set(new FileDescriptorSet);
 
-  ASSERT_TRUE(set->Add(kFDBase));
-  ASSERT_TRUE(set->Add(kFDBase + 1));
-  ASSERT_TRUE(set->Add(kFDBase + 2));
+  // TODO(morrita): This test is wrong. TakeDescriptorAt() shouldn't be
+  // used to retrieve borrowed descriptors. That never happens in production.
+  ASSERT_TRUE(set->AddToBorrow(kFDBase));
+  ASSERT_TRUE(set->AddToBorrow(kFDBase + 1));
+  ASSERT_TRUE(set->AddToBorrow(kFDBase + 2));
 
-  ASSERT_EQ(set->GetDescriptorAt(0), kFDBase);
-  ASSERT_EQ(set->GetDescriptorAt(1), kFDBase + 1);
-  ASSERT_EQ(set->GetDescriptorAt(2), kFDBase + 2);
+  ASSERT_EQ(set->TakeDescriptorAt(0), kFDBase);
+  ASSERT_EQ(set->TakeDescriptorAt(1), kFDBase + 1);
+  ASSERT_EQ(set->TakeDescriptorAt(2), kFDBase + 2);
 
   set->CommitAll();
 }
@@ -124,12 +126,14 @@
 TEST(FileDescriptorSet, WalkWrongOrder) {
   scoped_refptr<FileDescriptorSet> set(new FileDescriptorSet);
 
-  ASSERT_TRUE(set->Add(kFDBase));
-  ASSERT_TRUE(set->Add(kFDBase + 1));
-  ASSERT_TRUE(set->Add(kFDBase + 2));
+  // TODO(morrita): This test is wrong. TakeDescriptorAt() shouldn't be
+  // used to retrieve borrowed descriptors. That never happens in production.
+  ASSERT_TRUE(set->AddToBorrow(kFDBase));
+  ASSERT_TRUE(set->AddToBorrow(kFDBase + 1));
+  ASSERT_TRUE(set->AddToBorrow(kFDBase + 2));
 
-  ASSERT_EQ(set->GetDescriptorAt(0), kFDBase);
-  ASSERT_EQ(set->GetDescriptorAt(2), -1);
+  ASSERT_EQ(set->TakeDescriptorAt(0), kFDBase);
+  ASSERT_EQ(set->TakeDescriptorAt(2), -1);
 
   set->CommitAll();
 }
@@ -137,19 +141,21 @@
 TEST(FileDescriptorSet, WalkCycle) {
   scoped_refptr<FileDescriptorSet> set(new FileDescriptorSet);
 
-  ASSERT_TRUE(set->Add(kFDBase));
-  ASSERT_TRUE(set->Add(kFDBase + 1));
-  ASSERT_TRUE(set->Add(kFDBase + 2));
+  // TODO(morrita): This test is wrong. TakeDescriptorAt() shouldn't be
+  // used to retrieve borrowed descriptors. That never happens in production.
+  ASSERT_TRUE(set->AddToBorrow(kFDBase));
+  ASSERT_TRUE(set->AddToBorrow(kFDBase + 1));
+  ASSERT_TRUE(set->AddToBorrow(kFDBase + 2));
 
-  ASSERT_EQ(set->GetDescriptorAt(0), kFDBase);
-  ASSERT_EQ(set->GetDescriptorAt(1), kFDBase + 1);
-  ASSERT_EQ(set->GetDescriptorAt(2), kFDBase + 2);
-  ASSERT_EQ(set->GetDescriptorAt(0), kFDBase);
-  ASSERT_EQ(set->GetDescriptorAt(1), kFDBase + 1);
-  ASSERT_EQ(set->GetDescriptorAt(2), kFDBase + 2);
-  ASSERT_EQ(set->GetDescriptorAt(0), kFDBase);
-  ASSERT_EQ(set->GetDescriptorAt(1), kFDBase + 1);
-  ASSERT_EQ(set->GetDescriptorAt(2), kFDBase + 2);
+  ASSERT_EQ(set->TakeDescriptorAt(0), kFDBase);
+  ASSERT_EQ(set->TakeDescriptorAt(1), kFDBase + 1);
+  ASSERT_EQ(set->TakeDescriptorAt(2), kFDBase + 2);
+  ASSERT_EQ(set->TakeDescriptorAt(0), kFDBase);
+  ASSERT_EQ(set->TakeDescriptorAt(1), kFDBase + 1);
+  ASSERT_EQ(set->TakeDescriptorAt(2), kFDBase + 2);
+  ASSERT_EQ(set->TakeDescriptorAt(0), kFDBase);
+  ASSERT_EQ(set->TakeDescriptorAt(1), kFDBase + 1);
+  ASSERT_EQ(set->TakeDescriptorAt(2), kFDBase + 2);
 
   set->CommitAll();
 }
@@ -158,7 +164,7 @@
   scoped_refptr<FileDescriptorSet> set(new FileDescriptorSet);
 
   const int fd = GetSafeFd();
-  ASSERT_TRUE(set->Add(fd));
+  ASSERT_TRUE(set->AddToBorrow(fd));
   set->CommitAll();
 
   ASSERT_FALSE(VerifyClosed(fd));
@@ -168,7 +174,7 @@
   scoped_refptr<FileDescriptorSet> set(new FileDescriptorSet);
 
   const int fd = GetSafeFd();
-  ASSERT_TRUE(set->AddAndAutoClose(fd));
+  ASSERT_TRUE(set->AddToOwn(base::ScopedFD(fd)));
   set->CommitAll();
 
   ASSERT_TRUE(VerifyClosed(fd));