diff options
author | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-27 14:59:05 +0000 |
---|---|---|
committer | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-27 14:59:05 +0000 |
commit | bb91ce763726b984aa69bb1dc3a8eec359753b3b (patch) | |
tree | ea25a0160d21a73dd41ed0894f01a20abc5ab15f /chrome/browser/renderer_host | |
parent | 86b19e614383f1e1779d85da639cc6af3d67ac25 (diff) | |
download | chromium_src-bb91ce763726b984aa69bb1dc3a8eec359753b3b.zip chromium_src-bb91ce763726b984aa69bb1dc3a8eec359753b3b.tar.gz chromium_src-bb91ce763726b984aa69bb1dc3a8eec359753b3b.tar.bz2 |
Skia roll 536:560
This also includes Evan's patch: http://codereview.chromium.org/1611033
This roll sits after a revert to Skia's hairline change so,
hopefully, doesn't need any rebaselines. The try servers mostly agree
although there's one (clip-path-text-and-shape.svg on Windows) that I
need to keep on eye on. (That's why I'm landing this before MTV is
active.)
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45696 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/renderer_host')
-rw-r--r-- | chrome/browser/renderer_host/render_sandbox_host_linux.cc | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/chrome/browser/renderer_host/render_sandbox_host_linux.cc b/chrome/browser/renderer_host/render_sandbox_host_linux.cc index 6b81839..cf51b0f 100644 --- a/chrome/browser/renderer_host/render_sandbox_host_linux.cc +++ b/chrome/browser/renderer_host/render_sandbox_host_linux.cc @@ -152,8 +152,6 @@ class SandboxIPCProcess { std::vector<int>& fds) { bool fileid_valid; uint32_t fileid; - bool is_bold, is_italic; - std::string family; if (!pickle.ReadBool(&iter, &fileid_valid)) return; @@ -161,18 +159,33 @@ class SandboxIPCProcess { if (!pickle.ReadUInt32(&iter, &fileid)) return; } + bool is_bold, is_italic; if (!pickle.ReadBool(&iter, &is_bold) || - !pickle.ReadBool(&iter, &is_italic) || - !pickle.ReadString(&iter, &family)) { + !pickle.ReadBool(&iter, &is_italic)) { return; } + uint32_t characters_bytes; + if (!pickle.ReadUInt32(&iter, &characters_bytes)) + return; + const char* characters = NULL; + if (characters_bytes > 0) { + const uint32_t kMaxCharactersBytes = 1 << 10; + if (characters_bytes % 1 == 0 || // We expect UTF-16. + characters_bytes > kMaxCharactersBytes || + !pickle.ReadBytes(&iter, &characters, characters_bytes)) + return; + } + + std::string family; + if (!pickle.ReadString(&iter, &family)) + return; + std::string result_family; unsigned result_fileid; - const bool r = font_config_->Match( - &result_family, &result_fileid, fileid_valid, fileid, family, &is_bold, - &is_italic); + &result_family, &result_fileid, fileid_valid, fileid, family, + characters, characters_bytes, &is_bold, &is_italic); Pickle reply; if (!r) { |