- Bug 1166847 followup: Add 'override' annotation to some new overriding methods in jswrapper.h. rs=ehsan (20a3e9857) - pointer style (b13f08224) - Bug 1201271 - Warn about unused results for more methods of nsTArray. r=froydnj (c8fa9e836) - Bug 1156398: Pass ProcessOrientation.cpp's unused-by-default bools to mozilla::unused. r=mwu (e1200be54) - Bug 1159124 - Suppress -Wunused-exception-parameter warning in nsClipboard.mm. r=spohl (dc3c4c4d0) - Bug 1152921 - Always initialize platform-specific booleans in PrintData before sending over IPC. r=mconley (45fb8cf07) - Bug 1091112 - Serialize nsIPrintSettings options bitfield. r=jimm (17d38b152) - Bug 1091112 - Add OS X-specific members to PrintData IPDL struct. r=jimm (62182eb24) - Bug 1091112 - Proxy opening the print dialog on OS X to the parent. r=mstange (adf38a12a) - Bug 1204398 - Fix -Wshadow warnings in widget/cocoa. r=spohl (9c4f43861) - missing bits of Bug 1193038: Purposely leak StatisticsReport object and suppress the leak report r=glandium,mccr8,njn (cc0c1a908) - Bug 1144580 - Whitelist pselect6 in content seccomp-bpf policy. r=kang (144c67d00) - Bug 1144514 - Whitelist pread64 in content seccomp-bpf policy. r=kang (c01f7f65c) - Bug 1055310 - Step 1: Convert seccomp-bpf policies to Chromium PolicyCompiler. r=kang (8fbf648ba) - Bug 1055310 - Step 2: Move SIGSYS handling to Chromium TrapRegistry. r=kang (e80ff13a6) - Bug 1055310 - Step 3: Move syscall interceptions into SandboxFilter.cpp. r=kang (59c0b2454) - Bug 1004011 - Support SECCOMP_FILTER_FLAG_TSYNC if available. r=kang (cf97070a9) - Bug 1198334 (part 1) - Replace the opt-in FAIL_ON_WARNINGS with the opt-out ALLOW_COMPILER_WARNINGS. r=glandium. (c9df97498) - Bug 1189125 - Allow xpcshell to use GTK (r=karlt) (e363a27aa) - Bug 830801 - Part 1. Set NOMINMAX define as default. r=mshal (88fa52e9e) - Bug 830801 - Part 3. Remove NOMINMAX define from cpp source. r=mshal (c841b399f) - Bug 1169433 - Remove UnicharSelfTest and turn NormalizationTest into a gtest. r=glandium,smontagu (625dcaf32) - Bug 1170072 - Part 1. Make GetCharProps1 as static function. r=jfkthame (6ab8b7c4f) - Bug 1183209 patch 2: update data generation tools to Unicode 8, r=jfkthame (78e91de20) - Bug 1183209 patch 3: update generated data files to Unicode 8, and adapt internal XIDMOD types to the new types in Unicode's xidmodifications.txt, r=jfkthame (c9fea054f)
Graphite engine
What is Graphite?
Graphite is a system that can be used to create “smart fonts” capable of displaying writing systems with various complex behaviors. A smart font contains not only letter shapes but also additional instructions indicating how to combine and position the letters in complex ways.
Graphite was primarily developed to provide the flexibility needed for minority languages which often need to be written according to slightly different rules than well-known languages that use the same script.
Examples of complex script behaviors Graphite can handle include:
- contextual shaping
- ligatures
- reordering
- split glyphs
- bidirectionality
- stacking diacritics
- complex positioning
- shape aware kerning
- automatic diacritic collision avoidance
See examples of scripts with complex rendering.
Graphite system overview
The Graphite system consists of:
- A rule-based programming language Graphite Description Language (GDL) that can be used to describe the behavior of a writing system
- A compiler for that language
- A rendering engine that can serve as the layout component of a text-processing application
Graphite renders TrueType fonts that have been extended by means of compiling a GDL program.
Further technical information is available on the Graphite technical overview page.