File: invalid-headers-in-early-hints.h2.window.js

package info (click to toggle)
thunderbird 1%3A140.4.0esr-1
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 4,609,432 kB
  • sloc: cpp: 7,672,442; javascript: 5,901,613; ansic: 3,898,954; python: 1,413,343; xml: 653,997; asm: 462,286; java: 180,927; sh: 113,489; makefile: 20,460; perl: 14,288; objc: 13,059; yacc: 4,583; pascal: 3,352; lex: 1,720; ruby: 1,222; exp: 762; sql: 715; awk: 580; php: 436; lisp: 430; sed: 70; csh: 10
file content (22 lines) | stat: -rw-r--r-- 1,031 bytes parent folder | download | duplicates (18)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
async function testInvalidHeader(t, header_value) {
    const params = new URLSearchParams();
    params.set("header-value", header_value);
    const test_url = "resources/invalid-headers-in-early-hints.h2.py?" + params.toString();
    const opened_window = window.open(test_url, "invalid-header-in-early-hints");

    // Use step_timeout() because neither "load" event nor postMessage() would
    // work. Opening the test page should result in a network protocol error and
    // accessing the document of the opened window should throw a SecurityError.
    await new Promise(resolve => t.step_timeout(resolve, 1000));
    assert_throws_dom("SecurityError", () => {
        opened_window.document;
    }, "window.open() should not load the test page successfully.");
}

promise_test(async (t) => {
    await testInvalidHeader(t, "foo\r\nbar");
}, "Early Hints contains invalid header: newline byte");

promise_test(async (t) => {
    await testInvalidHeader(t, "foo\x00bar");
}, "Early Hints contains invalid header: nul byte");