chromium/third_party/blink/web_tests/inspector-protocol/page/reload-loaderId.js

(async function(/** @type {import('test_runner').TestRunner} */ testRunner) {
  const {session, dp} = await testRunner.startBlank(
      'Tests that reloading pages respects loaderId.');

  await dp.Page.enable();

  await dp.Page.navigate({url: 'data:text/html,hello!'});
  const {result: {frameTree: {frame: {loaderId}}}} =
      await dp.Page.getFrameTree();
  testRunner.log(`loaderId: ${loaderId ? '<string>' : 'undefined'}`);
  await session.evaluate(() => window.foo = 42);
  const loadEvent1 = dp.Page.onceLoadEventFired();
  await dp.Page.reload({loaderId});
  await loadEvent1;

  testRunner.log(
      'Querying window.foo after reload (expect "undefined"): ' +
      (await session.evaluate(() => window.foo)));

  testRunner.log('Now trying a reload with an incorrect loaderId');
  testRunner.log(await dp.Page.reload({loaderId: 'abcd'}));

  const loadEvent2 = dp.Page.onceLoadEventFired();
  await dp.Page.navigate({url: 'data:text/html,hello!'});
  await loadEvent2;
  testRunner.log('Now trying a reload with an outdated loaderId');
  testRunner.log(await dp.Page.reload({loaderId}));
  testRunner.completeTest();
})