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 |
index 1c4a60dc65dc9ac4de32bf182f966326dc0c2e0e..f1d03e3ac4d5c8c4faba23ca464211eb4a30d605 100644 |
--- a/chrome/renderer/renderer_sandbox_support_linux.cc |
+++ b/chrome/renderer/renderer_sandbox_support_linux.cc |
@@ -12,6 +12,10 @@ |
#include "third_party/WebKit/WebKit/chromium/public/linux/WebFontRenderStyle.h" |
+static int GetSandboxFD() { |
+ return kSandboxIPCChannel + base::GlobalDescriptors::kBaseDescriptor; |
+} |
+ |
namespace renderer_sandbox_support { |
std::string getFontFamilyForCharacters(const uint16_t* utf16, size_t num_utf16) { |
@@ -22,9 +26,7 @@ std::string getFontFamilyForCharacters(const uint16_t* utf16, size_t num_utf16) |
request.WriteUInt32(utf16[i]); |
uint8_t buf[512]; |
- const int sandbox_fd = |
- kSandboxIPCChannel + base::GlobalDescriptors::kBaseDescriptor; |
- const ssize_t n = base::SendRecvMsg(sandbox_fd, buf, sizeof(buf), NULL, |
+ const ssize_t n = base::SendRecvMsg(GetSandboxFD(), buf, sizeof(buf), NULL, |
request); |
std::string family_name; |
@@ -45,9 +47,7 @@ void getRenderStyleForStrike(const char* family, int sizeAndStyle, |
request.WriteInt(sizeAndStyle); |
uint8_t buf[512]; |
- const int sandbox_fd = |
- kSandboxIPCChannel + base::GlobalDescriptors::kBaseDescriptor; |
- const ssize_t n = base::SendRecvMsg(sandbox_fd, buf, sizeof(buf), NULL, |
+ const ssize_t n = base::SendRecvMsg(GetSandboxFD(), buf, sizeof(buf), NULL, |
request); |
out->setDefaults(); |
@@ -73,4 +73,18 @@ void getRenderStyleForStrike(const char* family, int sizeAndStyle, |
} |
} |
+int MakeSharedMemorySegmentViaIPC(size_t length) { |
+ Pickle request; |
+ request.WriteInt(LinuxSandbox::METHOD_MAKE_SHARED_MEMORY_SEGMENT); |
+ request.WriteUInt32(length); |
+ uint8_t reply_buf[10]; |
+ int result_fd; |
+ ssize_t result = base::SendRecvMsg(GetSandboxFD(), |
+ reply_buf, sizeof(reply_buf), |
+ &result_fd, request); |
+ if (result == -1) |
+ return -1; |
+ return result_fd; |
+} |
+ |
} // namespace render_sandbox_support |