| Index: chrome/renderer/renderer_sandbox_support_linux.cc | 
| diff --git a/chrome/renderer/renderer_sandbox_support_linux.cc b/chrome/renderer/renderer_sandbox_support_linux.cc | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..29fe183bb23f55e4eded9ed296a0283ddbff7d48 | 
| --- /dev/null | 
| +++ b/chrome/renderer/renderer_sandbox_support_linux.cc | 
| @@ -0,0 +1,35 @@ | 
| +// Copyright (c) 2009 The Chromium Authors. All rights reserved.  Use of this | 
| +// source code is governed by a BSD-style license that can be found in the | 
| +// LICENSE file. | 
| + | 
| +#include "chrome/renderer/renderer_sandbox_support_linux.h" | 
| + | 
| +#include "base/pickle.h" | 
| +#include "base/unix_domain_socket_posix.h" | 
| +#include "chrome/common/sandbox_methods_linux.h" | 
| + | 
| +namespace renderer_sandbox_support { | 
| + | 
| +std::string getFontFamilyForCharacters(const uint16_t* utf16, size_t num_utf16) { | 
| +  Pickle request; | 
| +  request.WriteInt(LinuxSandbox::METHOD_GET_FONT_FAMILY_FOR_CHARS); | 
| +  request.WriteInt(num_utf16); | 
| +  for (size_t i = 0; i < num_utf16; ++i) | 
| +    request.WriteUInt32(utf16[i]); | 
| + | 
| +  uint8_t buf[512]; | 
| +  static const int kMagicSandboxFD = 4; | 
| +  const ssize_t n = base::SendRecvMsg(kMagicSandboxFD, buf, sizeof(buf), NULL, | 
| +                                      request); | 
| + | 
| +  std::string family_name; | 
| +  if (n != -1) { | 
| +    Pickle reply(reinterpret_cast<char*>(buf), n); | 
| +    void* pickle_iter = NULL; | 
| +    reply.ReadString(&pickle_iter, &family_name); | 
| +  } | 
| + | 
| +  return family_name; | 
| +} | 
| + | 
| +}  // namespace render_sandbox_support | 
|  |