blob: 2b97ff11f9d38435afe82d789144f5ff3480bf26 [file] [log] [blame]
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
}
window.addEventListener('message', function(message) {
testCounter++;
test();
}, false);
let testCounter = 1;
// This is needed because isolated worlds are not reset between test runs and a
// previous test's CSP may interfere with this test. See
// https://crbug.com/415845.
testRunner.setIsolatedWorldInfo(1, null, null);
function setFontFace(num) {
let style = document.createElement('style');
style.innerText =
`@font-face { font-family: 'remote'; src: url(/resources/Ahem.ttf?num=${
num}); }`;
document.getElementById('body').appendChild(style);
window.postMessage('next', '*');
}
function test() {
switch (testCounter) {
case 1:
alert('With lax isolated world CSP');
testRunner.setIsolatedWorldInfo(
1, 'chrome-extension://123', 'font-src *');
testRunner.evaluateScriptInIsolatedWorld(
1, String(eval('setFontFace')) + '\nsetFontFace(1);');
break;
case 2:
alert('With strict isolated world CSP');
testRunner.setIsolatedWorldInfo(
1, 'chrome-extension://123', 'font-src \'none\'');
testRunner.evaluateScriptInIsolatedWorld(
1, String(eval('setFontFace')) + '\nsetFontFace(2);');
break;
case 3:
testRunner.notifyDone();
}
}
document.addEventListener('DOMContentLoaded', test);