Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(216)

Unified Diff: content/common/font_config_ipc_linux.cc

Issue 12771003: Revert 187283 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/common/font_config_ipc_linux.h ('k') | content/zygote/zygote_main_linux.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/common/font_config_ipc_linux.cc
===================================================================
--- content/common/font_config_ipc_linux.cc (revision 187285)
+++ content/common/font_config_ipc_linux.cc (working copy)
@@ -12,8 +12,6 @@
#include "base/pickle.h"
#include "base/posix/unix_domain_socket_linux.h"
-#include "skia/ext/skia_utils_base.h"
-#include "third_party/skia/include/core/SkStream.h"
namespace content {
@@ -25,21 +23,31 @@
close(fd_);
}
-bool FontConfigIPC::matchFamilyName(const char familyName[],
- SkTypeface::Style requestedStyle,
- FontIdentity* outFontIdentity,
- SkString* outFamilyName,
- SkTypeface::Style* outStyle) {
- size_t familyNameLen = familyName ? strlen(familyName) : 0;
- if (familyNameLen > kMaxFontFamilyLength)
+bool FontConfigIPC::Match(std::string* result_family,
+ unsigned* result_filefaceid,
+ bool filefaceid_valid, unsigned filefaceid,
+ const std::string& family,
+ const void* characters, size_t characters_bytes,
+ bool* is_bold, bool* is_italic) {
+ if (family.length() > kMaxFontFamilyLength)
return false;
Pickle request;
request.WriteInt(METHOD_MATCH);
- request.WriteData(familyName, familyNameLen);
- request.WriteUInt32(requestedStyle);
+ request.WriteBool(filefaceid_valid);
+ if (filefaceid_valid)
+ request.WriteUInt32(filefaceid);
- uint8_t reply_buf[2048];
+ request.WriteBool(is_bold && *is_bold);
+ request.WriteBool(is_bold && *is_italic);
+
+ request.WriteUInt32(characters_bytes);
+ if (characters_bytes)
+ request.WriteBytes(characters, characters_bytes);
+
+ request.WriteString(family);
+
+ uint8_t reply_buf[512];
const ssize_t r = UnixDomainSocket::SendRecvMsg(fd_, reply_buf,
sizeof(reply_buf), NULL,
request);
@@ -54,29 +62,33 @@
if (!result)
return false;
- SkString reply_family;
- FontIdentity reply_identity;
- uint32_t reply_style;
- if (!skia::ReadSkString(reply, &iter, &reply_family) ||
- !skia::ReadSkFontIdentity(reply, &iter, &reply_identity) ||
- !reply.ReadUInt32(&iter, &reply_style)) {
+ uint32_t reply_filefaceid;
+ std::string reply_family;
+ bool resulting_bold, resulting_italic;
+ if (!reply.ReadUInt32(&iter, &reply_filefaceid) ||
+ !reply.ReadString(&iter, &reply_family) ||
+ !reply.ReadBool(&iter, &resulting_bold) ||
+ !reply.ReadBool(&iter, &resulting_italic)) {
return false;
}
- if (outFontIdentity)
- *outFontIdentity = reply_identity;
- if (outFamilyName)
- *outFamilyName = reply_family;
- if (outStyle)
- *outStyle = static_cast<SkTypeface::Style>(reply_style);
+ if (result_filefaceid)
+ *result_filefaceid = reply_filefaceid;
+ if (result_family)
+ *result_family = reply_family;
+ if (is_bold)
+ *is_bold = resulting_bold;
+ if (is_italic)
+ *is_italic = resulting_italic;
+
return true;
}
-SkStream* FontConfigIPC::openStream(const FontIdentity& identity) {
+int FontConfigIPC::Open(unsigned filefaceid) {
Pickle request;
request.WriteInt(METHOD_OPEN);
- request.WriteUInt32(identity.fID);
+ request.WriteUInt32(filefaceid);
int result_fd = -1;
uint8_t reply_buf[256];
@@ -85,7 +97,7 @@
&result_fd, request);
if (r == -1)
- return NULL;
+ return -1;
Pickle reply(reinterpret_cast<char*>(reply_buf), r);
bool result;
@@ -94,10 +106,10 @@
!result) {
if (result_fd)
close(result_fd);
- return NULL;
+ return -1;
}
- return new SkFDStream(result_fd, true);
+ return result_fd;
}
} // namespace content
« no previous file with comments | « content/common/font_config_ipc_linux.h ('k') | content/zygote/zygote_main_linux.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698