mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-27 04:05:32 +00:00
61a6f8e3f2
The test case in this patch fails without the proper fix in the first patch in this patch series. In this patch two new nsIDOMWindowUtils APIs are introduced to change the system font settins in tests. Currently the APIs work only on GTK+ platform. Also to work the test case properly we need to open a new XUL window because we don't propagate font changes into descendant documents yet (bug 1478212). MozReview-Commit-ID: 4OLxEkEuF8d --HG-- extra : rebase_source : 683e64f07c4d8820e5499d8c15b90975618559b8
63 lines
1.8 KiB
XML
63 lines
1.8 KiB
XML
<?xml version="1.0"?>
|
|
|
|
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
|
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
|
|
|
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
|
|
|
<window id="system_font_changes_window"
|
|
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
|
width="300"
|
|
height="300"
|
|
onload="start();">
|
|
|
|
<span id="target" style="font:menu">Hello world</span>
|
|
|
|
<script type="application/javascript"><![CDATA[
|
|
function is(condition, message) {
|
|
window.opener.wrappedJSObject.SimpleTest.is(condition, message);
|
|
}
|
|
function registerCleanupFunction(func) {
|
|
window.opener.wrappedJSObject.SimpleTest.registerCleanupFunction(func);
|
|
}
|
|
|
|
async function waitForFrame() {
|
|
return new Promise(resolve => {
|
|
requestAnimationFrame(resolve);
|
|
});
|
|
}
|
|
|
|
async function start() {
|
|
await waitForFrame();
|
|
|
|
const originalSystemFont = windowUtils.systemFont;
|
|
registerCleanupFunction(() => {
|
|
windowUtils.systemFont = originalSystemFont;
|
|
});
|
|
|
|
windowUtils.systemFont = 'Sans 11';
|
|
is(windowUtils.systemFont, 'Sans 11');
|
|
|
|
// Wait for two frames for the safety since the notification for system
|
|
// font changes is asynchronously processed.
|
|
await waitForFrame();
|
|
await waitForFrame();
|
|
|
|
const target = document.getElementById('target');
|
|
is(getComputedStyle(target).fontFamily, 'Sans');
|
|
|
|
windowUtils.systemFont = 'Serif 11';
|
|
is(windowUtils.systemFont, 'Serif 11');
|
|
|
|
await waitForFrame();
|
|
await waitForFrame();
|
|
|
|
is(getComputedStyle(target).fontFamily, 'Serif');
|
|
|
|
window.close();
|
|
window.opener.wrappedJSObject.SimpleTest.finish();
|
|
}
|
|
]]></script>
|
|
</window>
|