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 |