Home | History | Annotate | Download | only in common
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef CONTENT_COMMON_ZYGOTE_COMMANDS_LINUX_H_
      6 #define CONTENT_COMMON_ZYGOTE_COMMANDS_LINUX_H_
      7 
      8 #include "base/posix/global_descriptors.h"
      9 #include "ipc/ipc_descriptors.h"
     10 
     11 namespace content {
     12 
     13 // Contents of the initial message sent from the zygote to the browser right
     14 // after it starts.
     15 static const char kZygoteBootMessage[] = "ZYGOTE_BOOT";
     16 
     17 // Contents of the initial message sent from the zygote to the browser when it
     18 // is ready to go.
     19 static const char kZygoteHelloMessage[] = "ZYGOTE_OK";
     20 
     21 // Message sent by zygote children to the browser so the browser can discover
     22 // the sending child's process ID.
     23 static const char kZygoteChildPingMessage[] = "CHILD_PING";
     24 
     25 // Maximum allowable length for messages sent to the zygote.
     26 const size_t kZygoteMaxMessageLength = 8192;
     27 
     28 // File descriptors initialized by the Zygote Host
     29 const int kZygoteSocketPairFd =
     30     kPrimaryIPCChannel + base::GlobalDescriptors::kBaseDescriptor;
     31 
     32 // These are the command codes used on the wire between the browser and the
     33 // zygote.
     34 enum {
     35   // Fork off a new renderer.
     36   kZygoteCommandFork = 0,
     37 
     38   // Reap a renderer child.
     39   kZygoteCommandReap = 1,
     40 
     41   // Check what happened to a child process.
     42   kZygoteCommandGetTerminationStatus = 2,
     43 
     44   // Read a bitmask of kSandboxLinux*
     45   kZygoteCommandGetSandboxStatus = 3,
     46 
     47   // Not a real zygote command, but a subcommand used during the zygote fork
     48   // protocol.  Sends the child's PID as seen from the browser process.
     49   kZygoteCommandForkRealPID = 4
     50 };
     51 
     52 }  // namespace content
     53 
     54 #endif  // CONTENT_COMMON_ZYGOTE_COMMANDS_LINUX_H_
     55