| (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')); |
| } |
| } |
| }); |
| |