OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/common/child_process_sandbox_support_impl_linux.h" | 5 #include "content/common/child_process_sandbox_support_impl_linux.h" |
6 | 6 |
7 #include <sys/stat.h> | 7 #include <sys/stat.h> |
8 | 8 |
9 #include "base/eintr_wrapper.h" | 9 #include "base/eintr_wrapper.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
11 #include "base/pickle.h" | 11 #include "base/pickle.h" |
(...skipping 17 matching lines...) Expand all Loading... |
29 | 29 |
30 uint8_t buf[512]; | 30 uint8_t buf[512]; |
31 const ssize_t n = UnixDomainSocket::SendRecvMsg(GetSandboxFD(), buf, | 31 const ssize_t n = UnixDomainSocket::SendRecvMsg(GetSandboxFD(), buf, |
32 sizeof(buf), NULL, request); | 32 sizeof(buf), NULL, request); |
33 | 33 |
34 std::string family_name; | 34 std::string family_name; |
35 bool isBold = false; | 35 bool isBold = false; |
36 bool isItalic = false; | 36 bool isItalic = false; |
37 if (n != -1) { | 37 if (n != -1) { |
38 Pickle reply(reinterpret_cast<char*>(buf), n); | 38 Pickle reply(reinterpret_cast<char*>(buf), n); |
39 void* pickle_iter = NULL; | 39 PickleIterator pickle_iter(reply); |
40 if (reply.ReadString(&pickle_iter, &family_name) && | 40 if (reply.ReadString(&pickle_iter, &family_name) && |
41 reply.ReadBool(&pickle_iter, &isBold) && | 41 reply.ReadBool(&pickle_iter, &isBold) && |
42 reply.ReadBool(&pickle_iter, &isItalic)) { | 42 reply.ReadBool(&pickle_iter, &isItalic)) { |
43 family->name = family_name; | 43 family->name = family_name; |
44 family->isBold = isBold; | 44 family->isBold = isBold; |
45 family->isItalic = isItalic; | 45 family->isItalic = isItalic; |
46 } | 46 } |
47 } | 47 } |
48 } | 48 } |
49 | 49 |
50 void GetRenderStyleForStrike(const char* family, int sizeAndStyle, | 50 void GetRenderStyleForStrike(const char* family, int sizeAndStyle, |
51 WebKit::WebFontRenderStyle* out) { | 51 WebKit::WebFontRenderStyle* out) { |
52 Pickle request; | 52 Pickle request; |
53 request.WriteInt(LinuxSandbox::METHOD_GET_STYLE_FOR_STRIKE); | 53 request.WriteInt(LinuxSandbox::METHOD_GET_STYLE_FOR_STRIKE); |
54 request.WriteString(family); | 54 request.WriteString(family); |
55 request.WriteInt(sizeAndStyle); | 55 request.WriteInt(sizeAndStyle); |
56 | 56 |
57 uint8_t buf[512]; | 57 uint8_t buf[512]; |
58 const ssize_t n = UnixDomainSocket::SendRecvMsg(GetSandboxFD(), buf, | 58 const ssize_t n = UnixDomainSocket::SendRecvMsg(GetSandboxFD(), buf, |
59 sizeof(buf), NULL, request); | 59 sizeof(buf), NULL, request); |
60 | 60 |
61 out->setDefaults(); | 61 out->setDefaults(); |
62 if (n == -1) { | 62 if (n == -1) { |
63 return; | 63 return; |
64 } | 64 } |
65 | 65 |
66 Pickle reply(reinterpret_cast<char*>(buf), n); | 66 Pickle reply(reinterpret_cast<char*>(buf), n); |
67 void* pickle_iter = NULL; | 67 PickleIterator pickle_iter(reply); |
68 int useBitmaps, useAutoHint, useHinting, hintStyle, useAntiAlias, useSubpixel; | 68 int useBitmaps, useAutoHint, useHinting, hintStyle, useAntiAlias, useSubpixel; |
69 if (reply.ReadInt(&pickle_iter, &useBitmaps) && | 69 if (reply.ReadInt(&pickle_iter, &useBitmaps) && |
70 reply.ReadInt(&pickle_iter, &useAutoHint) && | 70 reply.ReadInt(&pickle_iter, &useAutoHint) && |
71 reply.ReadInt(&pickle_iter, &useHinting) && | 71 reply.ReadInt(&pickle_iter, &useHinting) && |
72 reply.ReadInt(&pickle_iter, &hintStyle) && | 72 reply.ReadInt(&pickle_iter, &hintStyle) && |
73 reply.ReadInt(&pickle_iter, &useAntiAlias) && | 73 reply.ReadInt(&pickle_iter, &useAntiAlias) && |
74 reply.ReadInt(&pickle_iter, &useSubpixel)) { | 74 reply.ReadInt(&pickle_iter, &useSubpixel)) { |
75 out->useBitmaps = useBitmaps; | 75 out->useBitmaps = useBitmaps; |
76 out->useAutoHint = useAutoHint; | 76 out->useAutoHint = useAutoHint; |
77 out->useHinting = useHinting; | 77 out->useHinting = useHinting; |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
167 | 167 |
168 *output_length = length; | 168 *output_length = length; |
169 n = HANDLE_EINTR(pread(fd, output, length, offset)); | 169 n = HANDLE_EINTR(pread(fd, output, length, offset)); |
170 if (n != static_cast<ssize_t>(length)) | 170 if (n != static_cast<ssize_t>(length)) |
171 return false; | 171 return false; |
172 | 172 |
173 return true; | 173 return true; |
174 } | 174 } |
175 | 175 |
176 } // namespace content | 176 } // namespace content |
OLD | NEW |