Source code

Revision control

Copy as Markdown

Other Tools

(function() {
var props = {output:%(output)d, debug: %(debug)s};
setup(props);
// Some tests navigate away from the original URL as part of the
// functionality they exercise. In that case, `add_completion_callback(...)`
// uses the final `window.location` to report the test ID, which may not be
// correct [1].
//
// Persisting the original `window.location` with standard web platform APIs
// (e.g., `localStorage`) could interfere with the their tests, so this must
// be avoided. Unfortunately, there doesn't appear to be anything in content
// shell's protocol mode or Blink-specific `window.testRunner` or
// `window.internals` [2] that could help with this. As such, the driver
// simply downgrades a mismatched test ID to a logged warning instead of a
// harness error.
//
// [1] crbug.com/1418753
const url = new URL(location.href);
testRunner.dumpAsText();
testRunner.waitUntilDone();
testRunner.setPopupBlockingEnabled(false);
testRunner.setDumpJavaScriptDialogs(false);
// Show `CONSOLE MESSAGE:` and `CONSOLE ERROR:` in stderr.
if (props.debug) {
testRunner.setDumpConsoleMessages(true);
}
add_completion_callback(function (tests, harness_status) {
const test_id = decodeURIComponent(url.pathname) + decodeURIComponent(url.search) + decodeURIComponent(url.hash);
const result_string = JSON.stringify([
test_id,
harness_status.status,
harness_status.message,
harness_status.stack,
tests.map(function(t) {
return [t.name, t.status, t.message, t.stack]
}),
]);
testRunner.setCustomTextOutput(result_string);
testRunner.notifyDone();
});
})();