blob: 21b868684aa6ecd47ebce4c8ffb99e9a30755f5e [file] [log] [blame]
(async function(testRunner) {
const {session, dp} = await testRunner.startHTML(`
<div id='shadow-host'></div>
<iframe id='iframe'></iframe>
`, 'Tests finding DOM nodes by computed styles traversing in-process iframes and shadow roots.');
// Insert shadow root.
await session.evaluate(() => {
const host = document.querySelector('#shadow-host');
const root = host.attachShadow({mode: 'open'});
root.innerHTML = `<style>
.shadow-grid {
display: grid;
}
</style>
<div class="shadow-grid"></div>
`;
});
// Insert an iframe.
await session.evaluate(() => {
const iframe = document.querySelector('#iframe');
iframe.srcdoc = `<!DOCTYPE html>
<style>
.iframe-grid {
display: grid;
}
</style>
<div class="iframe-grid"></div>
`;
});
await dp.DOM.enable();
const response = await dp.DOM.getDocument();
const rootNodeId = response.result.root.nodeId;
nodesResponse = await dp.DOM.getNodesForSubtreeByStyle({
nodeId: rootNodeId,
computedStyles: [
{ name: 'display', value: 'grid' },
{ name: 'display', value: 'inline-grid' },
],
pierce: true,
});
testRunner.log("Expected nodeIds length: 2");
testRunner.log("Actual nodeIds length: " + nodesResponse.result.nodeIds.length);
testRunner.log("Nodes:");
for (const nodeId of nodesResponse.result.nodeIds) {
const nodeResponse = await dp.DOM.describeNode({ nodeId });
testRunner.log(nodeResponse.result);
}
testRunner.completeTest();
})