Minimize the JSON requests sent to sandboxfs.

Use the new, shorter field aliases and also the new default values
for the messages sent to sandboxfs.  Significantly reduces their size,
which in turn reduces the time needed to parse them.

RELNOTES: None.
PiperOrigin-RevId: 296174968
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/RealSandboxfs02Process.java b/src/main/java/com/google/devtools/build/lib/sandbox/RealSandboxfs02Process.java
index b98119c..3f28f77 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/RealSandboxfs02Process.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/RealSandboxfs02Process.java
@@ -281,12 +281,14 @@
   private static void writeMapping(JsonWriter writer, Mapping mapping) throws IOException {
     writer.beginObject();
     {
-      writer.name("path");
+      writer.name("p");
       writer.value(mapping.path().getPathString());
-      writer.name("underlying_path");
+      writer.name("u");
       writer.value(mapping.target().getPathString());
-      writer.name("writable");
-      writer.value(mapping.writable());
+      if (mapping.writable()) {
+        writer.name("w");
+        writer.value(mapping.writable());
+      }
     }
     writer.endObject();
   }
@@ -300,12 +302,12 @@
     synchronized (this) {
       processStdIn.beginObject();
       {
-        processStdIn.name("CreateSandbox");
+        processStdIn.name("C");
         processStdIn.beginObject();
         {
-          processStdIn.name("id");
+          processStdIn.name("i");
           processStdIn.value(id);
-          processStdIn.name("mappings");
+          processStdIn.name("m");
           processStdIn.beginArray();
           for (Mapping mapping : mappings) {
             writeMapping(processStdIn, mapping);
@@ -330,7 +332,7 @@
     synchronized (this) {
       processStdIn.beginObject();
       {
-        processStdIn.name("DestroySandbox");
+        processStdIn.name("D");
         processStdIn.value(id);
       }
       processStdIn.endObject();
diff --git a/src/test/java/com/google/devtools/build/lib/sandbox/RealSandboxfs02ProcessTest.java b/src/test/java/com/google/devtools/build/lib/sandbox/RealSandboxfs02ProcessTest.java
index 9d25510..48269d2 100644
--- a/src/test/java/com/google/devtools/build/lib/sandbox/RealSandboxfs02ProcessTest.java
+++ b/src/test/java/com/google/devtools/build/lib/sandbox/RealSandboxfs02ProcessTest.java
@@ -39,7 +39,7 @@
   @Test
   public void testNoActivity() throws IOException {
     SandboxfsProcess process = createAndStartFakeSandboxfs(ImmutableList.of("{\"id\":\"empty\"}"));
-    String expectedRequests = "{\"CreateSandbox\":{\"id\":\"empty\",\"mappings\":[]}}";
+    String expectedRequests = "{\"C\":{\"i\":\"empty\",\"m\":[]}}";
     verifyFakeSandboxfsExecution(process, expectedRequests);
   }
 
@@ -61,15 +61,21 @@
                 .setPath(PathFragment.create("/"))
                 .setTarget(PathFragment.create("/some/path"))
                 .setWritable(true)
+                .build(),
+            Mapping.builder()
+                .setPath(PathFragment.create("/a/b/c"))
+                .setTarget(PathFragment.create("/other"))
+                .setWritable(false)
                 .build()));
     process.destroySandbox("sandbox1");
     String expectedRequests =
-        "{\"CreateSandbox\":{\"id\":\"empty\",\"mappings\":[]}}"
-            + "{\"CreateSandbox\":{\"id\":\"sandbox1\",\"mappings\":[]}}"
-            + "{\"CreateSandbox\":{\"id\":\"sandbox2\",\"mappings\":["
-            + "{\"path\":\"/\",\"underlying_path\":\"/some/path\",\"writable\":true}"
+        "{\"C\":{\"i\":\"empty\",\"m\":[]}}"
+            + "{\"C\":{\"i\":\"sandbox1\",\"m\":[]}}"
+            + "{\"C\":{\"i\":\"sandbox2\",\"m\":["
+            + "{\"p\":\"/\",\"u\":\"/some/path\",\"w\":true},"
+            + "{\"p\":\"/a/b/c\",\"u\":\"/other\"}"
             + "]}}"
-            + "{\"DestroySandbox\":\"sandbox1\"}";
+            + "{\"D\":\"sandbox1\"}";
 
     verifyFakeSandboxfsExecution(process, expectedRequests);
   }