summaryrefslogtreecommitdiffstats
path: root/chrome/renderer
diff options
context:
space:
mode:
authoragl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-22 19:53:33 +0000
committeragl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-22 19:53:33 +0000
commit3c22b1893efad9bbe786bd5c25a7fbf499ac8e48 (patch)
treefde84179b3c1889e0a729ed4a83c2f57696acc64 /chrome/renderer
parent5951b5c1c74422be6793df444364f2f5436685ff (diff)
downloadchromium_src-3c22b1893efad9bbe786bd5c25a7fbf499ac8e48.zip
chromium_src-3c22b1893efad9bbe786bd5c25a7fbf499ac8e48.tar.gz
chromium_src-3c22b1893efad9bbe786bd5c25a7fbf499ac8e48.tar.bz2
WebKit roll 55080:55089
Also merging in this Chromium side patch to match: Linux: add plumbing for fontconfig on per-strike basis fontconfig on Linux can change the render preferences on a per strike basis (a strike a combination of face and size). Because of this, we need to query fontconfig each time a new FontPlatformData is created for a new size. This is the Chromium side of https://bugs.webkit.org/show_bug.cgi?id=33065 BUG=18159 TEST=A new renderer should respect settings in ~/.fonts.conf git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39616 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer')
-rw-r--r--chrome/renderer/renderer_sandbox_support_linux.cc38
-rw-r--r--chrome/renderer/renderer_sandbox_support_linux.h7
-rw-r--r--chrome/renderer/renderer_webkitclient_impl.cc5
-rw-r--r--chrome/renderer/renderer_webkitclient_impl.h2
4 files changed, 52 insertions, 0 deletions
diff --git a/chrome/renderer/renderer_sandbox_support_linux.cc b/chrome/renderer/renderer_sandbox_support_linux.cc
index a08fff1..1c4a60d 100644
--- a/chrome/renderer/renderer_sandbox_support_linux.cc
+++ b/chrome/renderer/renderer_sandbox_support_linux.cc
@@ -10,6 +10,8 @@
#include "chrome/common/chrome_descriptors.h"
#include "chrome/common/sandbox_methods_linux.h"
+#include "third_party/WebKit/WebKit/chromium/public/linux/WebFontRenderStyle.h"
+
namespace renderer_sandbox_support {
std::string getFontFamilyForCharacters(const uint16_t* utf16, size_t num_utf16) {
@@ -35,4 +37,40 @@ std::string getFontFamilyForCharacters(const uint16_t* utf16, size_t num_utf16)
return family_name;
}
+void getRenderStyleForStrike(const char* family, int sizeAndStyle,
+ WebKit::WebFontRenderStyle* out) {
+ Pickle request;
+ request.WriteInt(LinuxSandbox::METHOD_GET_STYLE_FOR_STRIKE);
+ request.WriteString(family);
+ 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,
+ request);
+
+ out->setDefaults();
+ if (n == -1) {
+ return;
+ }
+
+ Pickle reply(reinterpret_cast<char*>(buf), n);
+ void* pickle_iter = NULL;
+ int useBitmaps, useAutoHint, useHinting, hintStyle, useAntiAlias, useSubpixel;
+ if (reply.ReadInt(&pickle_iter, &useBitmaps) &&
+ reply.ReadInt(&pickle_iter, &useAutoHint) &&
+ reply.ReadInt(&pickle_iter, &useHinting) &&
+ reply.ReadInt(&pickle_iter, &hintStyle) &&
+ reply.ReadInt(&pickle_iter, &useAntiAlias) &&
+ reply.ReadInt(&pickle_iter, &useSubpixel)) {
+ out->useBitmaps = useBitmaps;
+ out->useAutoHint = useAutoHint;
+ out->useHinting = useHinting;
+ out->hintStyle = hintStyle;
+ out->useAntiAlias = useAntiAlias;
+ out->useSubpixel = useSubpixel;
+ }
+}
+
} // namespace render_sandbox_support
diff --git a/chrome/renderer/renderer_sandbox_support_linux.h b/chrome/renderer/renderer_sandbox_support_linux.h
index f8f080e..4ba5298 100644
--- a/chrome/renderer/renderer_sandbox_support_linux.h
+++ b/chrome/renderer/renderer_sandbox_support_linux.h
@@ -9,6 +9,10 @@
#include <string>
+namespace WebKit {
+struct WebFontRenderStyle;
+}
+
namespace renderer_sandbox_support {
// Return a font family which provides glyphs for the Unicode code points
@@ -20,6 +24,9 @@ namespace renderer_sandbox_support {
// satisfied.
std::string getFontFamilyForCharacters(const uint16_t* utf16, size_t num_utf16);
+void getRenderStyleForStrike(const char* family, int sizeAndStyle,
+ WebKit::WebFontRenderStyle* out);
+
}; // namespace render_sandbox_support
#endif // CHROME_RENDERER_RENDERER_SANDBOX_SUPPORT_LINUX_H_
diff --git a/chrome/renderer/renderer_webkitclient_impl.cc b/chrome/renderer/renderer_webkitclient_impl.cc
index 6bf926a..9b7327d 100644
--- a/chrome/renderer/renderer_webkitclient_impl.cc
+++ b/chrome/renderer/renderer_webkitclient_impl.cc
@@ -321,6 +321,11 @@ WebString RendererWebKitClientImpl::SandboxSupport::getFontFamilyForCharacters(
return WebString::fromUTF8(family_name);
}
+void RendererWebKitClientImpl::SandboxSupport::getRenderStyleForStrike(
+ const char* family, int sizeAndStyle, WebKit::WebFontRenderStyle* out) {
+ renderer_sandbox_support::getRenderStyleForStrike(family, sizeAndStyle, out);
+}
+
#endif
//------------------------------------------------------------------------------
diff --git a/chrome/renderer/renderer_webkitclient_impl.h b/chrome/renderer/renderer_webkitclient_impl.h
index add7ca5..cbbeb11 100644
--- a/chrome/renderer/renderer_webkitclient_impl.h
+++ b/chrome/renderer/renderer_webkitclient_impl.h
@@ -93,6 +93,8 @@ class RendererWebKitClientImpl : public webkit_glue::WebKitClientImpl {
public:
virtual WebKit::WebString getFontFamilyForCharacters(
const WebKit::WebUChar* characters, size_t numCharacters);
+ virtual void getRenderStyleForStrike(
+ const char* family, int sizeAndStyle, WebKit::WebFontRenderStyle* out);
private:
// WebKit likes to ask us for the correct font family to use for a set of