Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upNot handling "missing font-family" very gracefully #479
Conversation
caitp@sunbeach:~/git/servo/build$ uname -a
Linux sunbeach 3.8.0-22-generic #33-Ubuntu SMP Thu May 16 15:17:14 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
caitp@sunbeach:~/git/servo/build$ export RUST_LOG=servo_gfx
caitp@sunbeach:~/git/servo/build$ ./servo ../src/test/ligatures.html 2> log.txtyields the following:
I mean, we knew that this is where the failure was happening, but you know. I'm wondering what the right way to select a fallback font would be? It would probably make sense to just fall-back on the top-level CSS (eg html.css in Firefox) which should hopefully point to a "safe" font, but maybe there is a better way, or else something specifically asked for in the CSS3 draft (if there is, I'm not aware of it, since I don't know too much about CSS) |
burg
commented
May 28, 2013
|
The spec is here: http://www.w3.org/TR/CSS2/fonts.html Briefly speaking, for each text run, the described algorithm comes up with an ordered list of preferred font faces. (the group is implemented as The last font in the list is supposed to be a font "of last resort", hence the assertion that the font list is nonzero in length. Somewhere in http://dxr.mozilla.org/search?q=resort%20path%3Agfx%2Fthebes&tree=mozilla-central |
|
This is just a preliminary commit -- As you can see there's no fallback fonts added for the linux platform (I wasn't sure how to translate the Gecko behaviour http://mxr.mozilla.org/mozilla-central/source/gfx/thebes/gfxFT2Fonts.cpp#303) to work nicely here. Further, I couldn't get it to find "Arial Unicode US" on my mac, so for now I've just changed this to "Arial" -- A better choice can be found later I guess. It might make sense to provide multiple fallbacks, in which case returning a comma-separated list should be simple enough, or maybe there is a better strategy for this. @burg if you have time I think it would be worth getting some suggestions from you on this since you sound like you know your way around this stuff. |
|
The I still don't really think this is the right way to do things, but it does get around the nasty fonts.len() assertion failure when a requested font-family isn't found. |
burg
commented
May 29, 2013
|
Looks good in general. I would prefer that we pass a list of FontFamily instances instead of a string, since there's no guarantee the string corresponds to an actual font family in the FontList map. At the same time, we don't want platform handles to keep wrappers alive. So, maybe the compromise for now is to pass a list of font family strings, and debug assert that they actually correspond to FontFamily instances. The Mac fallback should be Arial Unicode MS, (not US). Hardcoding seems ok as a first fix. Since fallback fonts are UA-specific, each platform could implement this using platform-specific font matching systems. For example, CTFontDescriptor can be used to specify font attributes and the library will provide the best match. Fontconfig on linux has similar behavior. (Normally we bypass this matching since font matching is defined by CSS; in this case the behavior is undefined so we might as well use the matching machinery.) I recommend hardcoding some values that prevent crashes, then filing a followup issue to make it smarter. |
mcepl
commented
May 30, 2013
|
Just to say that on Linux, one usually uses "serif" and "sans-serif" aliases as a fallback. |
burg
commented
May 30, 2013
|
@caitp looks like you need to rebase |
|
Yeah I'll be rebasing this today -- In response to @mcepl: It looks like the issue Daniel Holbert encountered when testing on Linux x86_64 was that we failed to resolve a font for For sure there are more problems than just the "not setting up a last-resort", I think, eg // TODO(Issue #192: handle generic font families, like 'serif' and 'sans-serif'.Seems to not be happening yet, at least not for platform=linux |
|
More will need to be done on this at some point, but I think this works as an initial fix -- I would prefer if the arrays of family-names could live somewhere and be modified by user prefs, but this seems to "work" for now at least. |
mcepl
commented
May 30, 2013
I am not sure whether serif (as default hard-coded value in CSS standard) is same as "serif" (alias provided by Xorg or fontconfig).
It used to be (many years ago, when I still used it) default on Debian, and it is quite certainly still present on Fedora/RHEL. But yes, it might be distro-specific. |
|
@mcepl Well, we are "supposed" to be using fontconfig to figure out these aliases on linux builds, but this does not seem to actually be happening currently. or rather, it does not seem to be "working". Having a non-aliased common font as a fallback is probably a good idea. But I sort of agree that using font-family names as fallbacks is kind of not the best strategy, it would be better to hand back full font entries so that we can guarantee that they actually exist. I think, anyway. |
This seems to occur in places where "font-family" is specified. On my mac, "about-mozilla.html" renders correctly (it uses `font-family: serif;` in several places) However, "ligatures.html" fails to render when specifying `font-family: Calibri;` I haven't dug in very deep yet, but it seems like maybe falling back on a default font would be a more correct or safe behaviour than just dying. I'll be able to look at this a bit more next week if it's still open --- I should add, this is not limited to the mac, dholbert had run into this on linux x64 as well (died testing about-mozilla.html) ``` rust: task failed at 'assertion failed: fonts.len() > 0', /Users/caitp/git/servo/src/components/servo-gfx/font_context.rs:130 rust: domain main @0x7fba3980c010 root task failed rust: task failed at 'killed', /Users/caitp/git/servo/src/compiler/rust/src/libcore/pipes.rs:281 rust: task failed at 'killed', /Users/caitp/git/servo/src/compiler/rust/src/libcore/pipes.rs:281 rust: task failed at 'killed', /Users/caitp/git/servo/src/compiler/rust/src/libcore/pipes.rs:281 rust: task failed at 'killed', /Users/caitp/git/servo/src/compiler/rust/src/libcore/pipes.rs:281 rust: task failed at 'killed', /Users/caitp/git/servo/src/compiler/rust/src/libcore/pipes.rs:281 rust: task failed at 'killed', /Users/caitp/git/servo/src/compiler/rust/src/libcore/pipes.rs:281 rust: task failed at 'killed', /Users/caitp/git/servo/src/compiler/rust/src/libcore/pipes.rs:281 rust: task failed at 'killed', /Users/caitp/git/servo/src/compiler/rust/src/libcore/pipes.rs:281 rust: ~"tracing 4430275392:" rust: ~"tracing first child" rust: ~"tracing last child" rust: ~"tracing 4430275440:" rust: ~"tracing parent" rust: ~"tracing first child" rust: ~"tracing last child" rust: ~"tracing 4430275728:" rust: ~"tracing parent" rust: ~"tracing first child" rust: ~"tracing last child" rust: ~"tracing prev sibling" rust: ~"tracing 4430275920:" rust: ~"tracing parent" rust: ~"tracing prev sibling" rust: ~"tracing 4430275824:" rust: ~"tracing parent" rust: ~"tracing first child" rust: ~"tracing last child" rust: ~"tracing next sibling" rust: ~"tracing prev sibling" rust: ~"tracing 4430275872:" rust: ~"tracing parent" rust: ~"tracing 4430275776:" rust: ~"tracing parent" rust: ~"tracing next sibling" rust: ~"tracing 4430275488:" rust: ~"tracing parent" rust: ~"tracing first child" rust: ~"tracing last child" rust: ~"tracing next sibling" rust: ~"tracing 4430275680:" rust: ~"tracing parent" rust: ~"tracing prev sibling" rust: ~"tracing 4430275584:" rust: ~"tracing parent" rust: ~"tracing first child" rust: ~"tracing last child" rust: ~"tracing next sibling" rust: ~"tracing prev sibling" rust: ~"tracing 4430275632:" rust: ~"tracing parent" rust: ~"tracing 4430275536:" rust: ~"tracing parent" rust: ~"tracing next sibling" Assertion failed: (!borrow_list), function delete_this, file /Users/caitp/git/servo/src/compiler/rust/src/rt/rust_task.cpp, line 80. ```
|
code-style is a bit screwed up on that last patch, will submit a quick fix |
This seems to occur in places where "font-family" is specified. On my mac, "about-mozilla.html" renders correctly (it uses `font-family: serif;` in several places) However, "ligatures.html" fails to render when specifying `font-family: Calibri;` I haven't dug in very deep yet, but it seems like maybe falling back on a default font would be a more correct or safe behaviour than just dying. I'll be able to look at this a bit more next week if it's still open --- I should add, this is not limited to the mac, dholbert had run into this on linux x64 as well (died testing about-mozilla.html) ``` rust: task failed at 'assertion failed: fonts.len() > 0', /Users/caitp/git/servo/src/components/servo-gfx/font_context.rs:130 rust: domain main @0x7fba3980c010 root task failed rust: task failed at 'killed', /Users/caitp/git/servo/src/compiler/rust/src/libcore/pipes.rs:281 rust: task failed at 'killed', /Users/caitp/git/servo/src/compiler/rust/src/libcore/pipes.rs:281 rust: task failed at 'killed', /Users/caitp/git/servo/src/compiler/rust/src/libcore/pipes.rs:281 rust: task failed at 'killed', /Users/caitp/git/servo/src/compiler/rust/src/libcore/pipes.rs:281 rust: task failed at 'killed', /Users/caitp/git/servo/src/compiler/rust/src/libcore/pipes.rs:281 rust: task failed at 'killed', /Users/caitp/git/servo/src/compiler/rust/src/libcore/pipes.rs:281 rust: task failed at 'killed', /Users/caitp/git/servo/src/compiler/rust/src/libcore/pipes.rs:281 rust: task failed at 'killed', /Users/caitp/git/servo/src/compiler/rust/src/libcore/pipes.rs:281 rust: ~"tracing 4430275392:" rust: ~"tracing first child" rust: ~"tracing last child" rust: ~"tracing 4430275440:" rust: ~"tracing parent" rust: ~"tracing first child" rust: ~"tracing last child" rust: ~"tracing 4430275728:" rust: ~"tracing parent" rust: ~"tracing first child" rust: ~"tracing last child" rust: ~"tracing prev sibling" rust: ~"tracing 4430275920:" rust: ~"tracing parent" rust: ~"tracing prev sibling" rust: ~"tracing 4430275824:" rust: ~"tracing parent" rust: ~"tracing first child" rust: ~"tracing last child" rust: ~"tracing next sibling" rust: ~"tracing prev sibling" rust: ~"tracing 4430275872:" rust: ~"tracing parent" rust: ~"tracing 4430275776:" rust: ~"tracing parent" rust: ~"tracing next sibling" rust: ~"tracing 4430275488:" rust: ~"tracing parent" rust: ~"tracing first child" rust: ~"tracing last child" rust: ~"tracing next sibling" rust: ~"tracing 4430275680:" rust: ~"tracing parent" rust: ~"tracing prev sibling" rust: ~"tracing 4430275584:" rust: ~"tracing parent" rust: ~"tracing first child" rust: ~"tracing last child" rust: ~"tracing next sibling" rust: ~"tracing prev sibling" rust: ~"tracing 4430275632:" rust: ~"tracing parent" rust: ~"tracing 4430275536:" rust: ~"tracing parent" rust: ~"tracing next sibling" Assertion failed: (!borrow_list), function delete_this, file /Users/caitp/git/servo/src/compiler/rust/src/rt/rust_task.cpp, line 80. ```
|
@caitp: it turns out that buildbot flips out when encountering commit messages >1024 characters in length. Would you mind amending that for now? |
|
@jdm -- My commit messages may have slightly extended beyond the usual 50 characters, but none of them were longer than 1 line... that sounds like a different problem! Nevertheless I've squashed the commits together, so hopefully that will solve the problem. ... Oh, I see... bors-servo is adding all of the issue text into the commit message. Weird. |
|
Will open a second PR to fix this, so that the issue text is removed. See #511 |
This comment has been minimized.
This comment has been minimized.
jdm
commented on 24ef69d
Jun 11, 2013
|
r+ |
This comment has been minimized.
This comment has been minimized.
|
saw approval from jdm |
This comment has been minimized.
This comment has been minimized.
|
merging caitp/servo/issue-479 = 24ef69d into auto |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
fast-forwarding master to auto = 3203b33 |
Fix divide by zero in profiler code. <!-- Reviewable:start --> This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/webrender/479) <!-- Reviewable:end -->
Bump cbindgen from 0.9.1 to 0.14.1 Bumps [cbindgen](https://github.com/eqrion/cbindgen) from 0.9.1 to 0.14.1. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/eqrion/cbindgen/blob/master/CHANGES">cbindgen's changelog</a>.</em></p> <blockquote> <h2>0.14.1</h2> <pre><code> * Handle mangling pointers. ([#508](eqrion/cbindgen#508)) * Unconditionally generate a return statement in partialeq implementations. ([#509](eqrion/cbindgen#509)) </code></pre> <h2>0.14.0</h2> <pre><code> * Minor tweak at how [export.exclude] is handled to allow excluding generic instantiations in C mode. ([#501](eqrion/cbindgen#501)) * Documented cpp_compat option. ([#496](eqrion/cbindgen#496)) * Fixed a panic when parsing associated constants for a built-in type. ([#494](eqrion/cbindgen#494)) </code></pre> <h2>0.13.2</h2> <pre><code> * Constants now have suitable documentation. ([#471](eqrion/cbindgen#471)) * Fixed some C warnings by emitting void when there are no arguments. ([#470](eqrion/cbindgen#470)) * Avoids reading cargo.toml when not needed, which can cause panics in workspace situations. * Only write `default` cases if the switch is not exhaustive. ([#475](eqrion/cbindgen#475)) * Some warnings have been refined. ([#477](eqrion/cbindgen#477)) * Code generation for static arrays has been fixed. ([#479](eqrion/cbindgen#479)) * Opt-in support for constexpr in constants. ([#481](eqrion/cbindgen#481)) * Fix C code generation and some warnings when extremely large constants are used. ([#490](eqrion/cbindgen#490)) * Proper escaping of enum variants and fields. ([#483](eqrion/cbindgen#483)) * Added support for RefCell (as an opaque type) and Cell. ([#489](eqrion/cbindgen#489)) </code></pre> <h2>0.13.1</h2> <pre><code> * Support `#[cfg]` on individual enum variants. ([#469](eqrion/cbindgen#469)) </code></pre> <h2>0.13.0</h2> <pre><code> * Support 'swift_name' attributes on generated functions ([#449](eqrion/cbindgen#449)) * Add [export.pre_body] to config ([#452](eqrion/cbindgen#452)) * Handle new line in doc attribute ([#454](eqrion/cbindgen#454)) * Add support for `Self` in tagged enums, structs and unions ([#455](eqrion/cbindgen#455), [#455](eqrion/cbindgen#455), [#456](eqrion/cbindgen#456)) * Make sentinel variant respect regular config ([#459](eqrion/cbindgen#459)) * Fix layout of tagged enums with size under some configurations ([#463](eqrion/cbindgen#463)) * Add an option to allow configuring the order of function names in generated headers ([#466](eqrion/cbindgen#466)) </code></pre> <h2>0.12.2</h2> <pre><code> * Fixed version detection with lockfile v2. eqrion/cbindgen#446 * Added support for export_name on functions. eqrion/cbindgen#447 </code></pre> <h2>0.12.1</h2> <pre><code> * Added support for #[repr*64)] on enums. eqrion/cbindgen#441 * Added support to generate plain enums instead of enum classes for C++. eqrion/cbindgen#443 * Fixed dependency resolution with lockfile v2. eqrion/cbindgen#438 </code></pre> </tr></table> ... (truncated) </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/eqrion/cbindgen/commit/0761b9bbe48d01ded1bbec45bbeea5544b3b1002"><code>0761b9b</code></a> Release 0.14.1</li> <li><a href="https://github.com/eqrion/cbindgen/commit/33d9ecf11f300bd03f431e9f3417c063e681380c"><code>33d9ecf</code></a> Handle mangling pointers.</li> <li><a href="https://github.com/eqrion/cbindgen/commit/0fed9eebc47abcd31e0e69357cd39262c8a5a6cc"><code>0fed9ee</code></a> enum: Unconditionally generate a return statement in partialeq implementations.</li> <li><a href="https://github.com/eqrion/cbindgen/commit/a519f1bda444a0c6c01464296a052d9a05e1d9c4"><code>a519f1b</code></a> Actually use the temp dir for temporary compiled objects.</li> <li><a href="https://github.com/eqrion/cbindgen/commit/4a38a48937264d6ec162b2fd47ffd0e7a091ca72"><code>4a38a48</code></a> Release 0.14.0</li> <li><a href="https://github.com/eqrion/cbindgen/commit/39bae60ad7ac4711d8fccc0d098ecef98b37d559"><code>39bae60</code></a> Generate test object files in a temporary directory instead of in-tree</li> <li><a href="https://github.com/eqrion/cbindgen/commit/ec1631f3e47686e6e0c1b7641bb08b0e39c59250"><code>ec1631f</code></a> Allow excluding monomorph structs in C mode.</li> <li><a href="https://github.com/eqrion/cbindgen/commit/6fd245096dcd5c50c1065b4bd6ce62a09df0b39b"><code>6fd2450</code></a> Add missing cpp_compat documentation.</li> <li><a href="https://github.com/eqrion/cbindgen/commit/c265a7562a5ee815057efcc8b1aca31cd3d5318d"><code>c265a75</code></a> parser: Don't panic when finding associated constants to a primitive.</li> <li><a href="https://github.com/eqrion/cbindgen/commit/17d7aad7d07dce8aa665aedbc75c39953afe1600"><code>17d7aad</code></a> Release v0.13.2</li> <li>Additional commits viewable in <a href="https://github.com/eqrion/cbindgen/compare/v0.9.1...v0.14.1">compare view</a></li> </ul> </details> <br /> [](https://dependabot.com/compatibility-score/?dependency-name=cbindgen&package-manager=cargo&previous-version=0.9.1&new-version=0.14.1) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired) </details>
Bump cbindgen from 0.9.1 to 0.14.1 Bumps [cbindgen](https://github.com/eqrion/cbindgen) from 0.9.1 to 0.14.1. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/eqrion/cbindgen/blob/master/CHANGES">cbindgen's changelog</a>.</em></p> <blockquote> <h2>0.14.1</h2> <pre><code> * Handle mangling pointers. ([#508](eqrion/cbindgen#508)) * Unconditionally generate a return statement in partialeq implementations. ([#509](eqrion/cbindgen#509)) </code></pre> <h2>0.14.0</h2> <pre><code> * Minor tweak at how [export.exclude] is handled to allow excluding generic instantiations in C mode. ([#501](eqrion/cbindgen#501)) * Documented cpp_compat option. ([#496](eqrion/cbindgen#496)) * Fixed a panic when parsing associated constants for a built-in type. ([#494](eqrion/cbindgen#494)) </code></pre> <h2>0.13.2</h2> <pre><code> * Constants now have suitable documentation. ([#471](eqrion/cbindgen#471)) * Fixed some C warnings by emitting void when there are no arguments. ([#470](eqrion/cbindgen#470)) * Avoids reading cargo.toml when not needed, which can cause panics in workspace situations. * Only write `default` cases if the switch is not exhaustive. ([#475](eqrion/cbindgen#475)) * Some warnings have been refined. ([#477](eqrion/cbindgen#477)) * Code generation for static arrays has been fixed. ([#479](eqrion/cbindgen#479)) * Opt-in support for constexpr in constants. ([#481](eqrion/cbindgen#481)) * Fix C code generation and some warnings when extremely large constants are used. ([#490](eqrion/cbindgen#490)) * Proper escaping of enum variants and fields. ([#483](eqrion/cbindgen#483)) * Added support for RefCell (as an opaque type) and Cell. ([#489](eqrion/cbindgen#489)) </code></pre> <h2>0.13.1</h2> <pre><code> * Support `#[cfg]` on individual enum variants. ([#469](eqrion/cbindgen#469)) </code></pre> <h2>0.13.0</h2> <pre><code> * Support 'swift_name' attributes on generated functions ([#449](eqrion/cbindgen#449)) * Add [export.pre_body] to config ([#452](eqrion/cbindgen#452)) * Handle new line in doc attribute ([#454](eqrion/cbindgen#454)) * Add support for `Self` in tagged enums, structs and unions ([#455](eqrion/cbindgen#455), [#455](eqrion/cbindgen#455), [#456](eqrion/cbindgen#456)) * Make sentinel variant respect regular config ([#459](eqrion/cbindgen#459)) * Fix layout of tagged enums with size under some configurations ([#463](eqrion/cbindgen#463)) * Add an option to allow configuring the order of function names in generated headers ([#466](eqrion/cbindgen#466)) </code></pre> <h2>0.12.2</h2> <pre><code> * Fixed version detection with lockfile v2. eqrion/cbindgen#446 * Added support for export_name on functions. eqrion/cbindgen#447 </code></pre> <h2>0.12.1</h2> <pre><code> * Added support for #[repr*64)] on enums. eqrion/cbindgen#441 * Added support to generate plain enums instead of enum classes for C++. eqrion/cbindgen#443 * Fixed dependency resolution with lockfile v2. eqrion/cbindgen#438 </code></pre> </tr></table> ... (truncated) </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/eqrion/cbindgen/commit/0761b9bbe48d01ded1bbec45bbeea5544b3b1002"><code>0761b9b</code></a> Release 0.14.1</li> <li><a href="https://github.com/eqrion/cbindgen/commit/33d9ecf11f300bd03f431e9f3417c063e681380c"><code>33d9ecf</code></a> Handle mangling pointers.</li> <li><a href="https://github.com/eqrion/cbindgen/commit/0fed9eebc47abcd31e0e69357cd39262c8a5a6cc"><code>0fed9ee</code></a> enum: Unconditionally generate a return statement in partialeq implementations.</li> <li><a href="https://github.com/eqrion/cbindgen/commit/a519f1bda444a0c6c01464296a052d9a05e1d9c4"><code>a519f1b</code></a> Actually use the temp dir for temporary compiled objects.</li> <li><a href="https://github.com/eqrion/cbindgen/commit/4a38a48937264d6ec162b2fd47ffd0e7a091ca72"><code>4a38a48</code></a> Release 0.14.0</li> <li><a href="https://github.com/eqrion/cbindgen/commit/39bae60ad7ac4711d8fccc0d098ecef98b37d559"><code>39bae60</code></a> Generate test object files in a temporary directory instead of in-tree</li> <li><a href="https://github.com/eqrion/cbindgen/commit/ec1631f3e47686e6e0c1b7641bb08b0e39c59250"><code>ec1631f</code></a> Allow excluding monomorph structs in C mode.</li> <li><a href="https://github.com/eqrion/cbindgen/commit/6fd245096dcd5c50c1065b4bd6ce62a09df0b39b"><code>6fd2450</code></a> Add missing cpp_compat documentation.</li> <li><a href="https://github.com/eqrion/cbindgen/commit/c265a7562a5ee815057efcc8b1aca31cd3d5318d"><code>c265a75</code></a> parser: Don't panic when finding associated constants to a primitive.</li> <li><a href="https://github.com/eqrion/cbindgen/commit/17d7aad7d07dce8aa665aedbc75c39953afe1600"><code>17d7aad</code></a> Release v0.13.2</li> <li>Additional commits viewable in <a href="https://github.com/eqrion/cbindgen/compare/v0.9.1...v0.14.1">compare view</a></li> </ul> </details> <br /> [](https://dependabot.com/compatibility-score/?dependency-name=cbindgen&package-manager=cargo&previous-version=0.9.1&new-version=0.14.1) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired) </details>
caitp commentedMay 29, 2013
This seems to occur in places where "font-family" is specified.
On my mac, "about-mozilla.html" renders correctly (it uses
font-family: serif;in several places)However, "ligatures.html" fails to render when specifying
font-family: Calibri;I haven't dug in very deep yet, but it seems like maybe falling back on a default font would be a more correct or safe behaviour than just dying.
I'll be able to look at this a bit more next week if it's still open
I should add, this is not limited to the mac, dholbert had run into this on linux x64 as well (died testing about-mozilla.html)