blob: 4a697ed5fa154ec8bf1b961c713c2055f8f76e2a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
// Copyright (c) 2009 The Chromium Authors. All rights reserved. Use of this
// source code is governed by a BSD-style license that can be found in the
// LICENSE file.
#ifndef CHROME_RENDERER_RENDERER_SANDBOX_SUPPORT_LINUX_H_
#define CHROME_RENDERER_RENDERER_SANDBOX_SUPPORT_LINUX_H_
#pragma once
#include <stdint.h>
#include <string>
namespace WebKit {
struct WebFontRenderStyle;
}
namespace renderer_sandbox_support {
// Return a font family which provides glyphs for the Unicode code points
// specified by |utf16|
// utf16: a native-endian UTF16 string
// num_utf16: the number of 16-bit words in |utf16|
//
// Returns: the font family or an empty string if the request could not be
// satisfied.
std::string getFontFamilyForCharacters(const uint16_t* utf16, size_t num_utf16);
void getRenderStyleForStrike(const char* family, int sizeAndStyle,
WebKit::WebFontRenderStyle* out);
// Returns a file descriptor for a shared memory segment.
int MakeSharedMemorySegmentViaIPC(size_t length);
// Return a read-only file descriptor to the font which best matches the given
// properties or -1 on failure.
// charset: specifies the language(s) that the font must cover. See
// render_sandbox_host_linux.cc for more information.
int MatchFontWithFallback(const std::string& face, bool bold,
bool italic, int charset);
// GetFontTable loads a specified font table from an open SFNT file.
// fd: a file descriptor to the SFNT file. The position doesn't matter.
// table: the table in *big-endian* format, or 0 for the whole font file.
// output: a buffer of size output_length that gets the data. can be 0, in
// which case output_length will be set to the required size in bytes.
// output_length: size of output, if it's not 0.
//
// returns: true on success.
bool GetFontTable(int fd, uint32_t table, uint8_t* output,
size_t* output_length);
}; // namespace render_sandbox_support
#endif // CHROME_RENDERER_RENDERER_SANDBOX_SUPPORT_LINUX_H_
|