blob: 584f802825e247be111b86265c42721881d81d4c [file] [log] [blame]
(async function(testRunner) {
var {page, session, dp} = await testRunner.startHTML(`
<style>
@font-face {
font-family: 'ahem';
src: url('${testRunner.url('./resources/Ahem.ttf')}');
}
#parent {
contain: style layout;
font-family: 'ahem';
background-color: gray;
}
#parent:first-letter {
font-family: 'Times New Roman';
font-size: 400%;
background-color: blue;
}
#parent:first-line {
font-family: 'Courier New';
background-color: yellow;
}
</style>
<div id='parent'>
7chars.<br>
<span id='child'>Some line with 29 characters.</span>
</div>
`, 'Test css.getPlatformFontsForNode method with display locking.');
await session.evaluateAsync(async () => {
await requestAnimationFrame(() => { document.getElementById("parent").style = "content-visibility: hidden"; });
});
var CSSHelper = await testRunner.loadScript('../resources/css-helper.js');
var cssHelper = new CSSHelper(testRunner, dp);
await dp.DOM.enable();
await dp.CSS.enable();
var documentNodeId = await cssHelper.requestDocumentNodeId();
testRunner.runTestSuite([
async function testParent(next) {
await platformFontsForElementWithSelector('#parent');
},
async function testChild(next) {
await platformFontsForElementWithSelector('#child');
},
]);
async function platformFontsForElementWithSelector(selector) {
var nodeId = await cssHelper.requestNodeId(documentNodeId, selector);
var response = await dp.CSS.getPlatformFontsForNode({ nodeId });
var fonts = response.result.fonts;
fonts.sort((a, b) => b.glyphCount - a.glyphCount);
for (var i = 0; i < fonts.length; ++i)
fonts[i].familyName = '<Some-family-name-' + i + '>';
for (var i = 0; i < fonts.length; ++i) {
var lines = [
'Font #' + i,
' name: ' + fonts[i].familyName,
' glyphCount: ' + fonts[i].glyphCount,
' isCustomFont: ' + fonts[i].isCustomFont
];
testRunner.log(lines.join('\n'));
}
}
});