summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/renderer_sandbox_support_linux.h
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_