Upload Kmake

This commit is contained in:
Gorochu
2026-05-26 23:36:42 -07:00
parent ba051b2f74
commit 555ec72358
41615 changed files with 13344630 additions and 1 deletions

View File

@ -0,0 +1,21 @@
// META: title=Aborting a parser should block bfcache
// META: script=./test-helper.js
// META: timeout=long
async_test(t => {
if (!sessionStorage.getItem("pageVisited")) {
// This is the first time loading the page.
sessionStorage.setItem("pageVisited", 1);
t.step_timeout(() => {
// Go to another page and instantly come back to this page.
location.href = new URL("../resources/going-back.html", window.location);
}, 0);
// Abort parsing in the middle of loading the page.
window.stop();
} else {
const nrr = performance.getEntriesByType('navigation')[0].notRestoredReasons;
assert_true(ReasonsInclude(nrr.reasons, "parser-aborted"));
t.done();
}
}, "aborting a parser should block bfcache.");

View File

@ -0,0 +1,55 @@
// META: title=RemoteContextHelper navigation using BFCache
// META: script=./test-helper.js
// META: script=/common/dispatcher/dispatcher.js
// META: script=/common/get-host-info.sub.js
// META: script=/common/utils.js
// META: script=/html/browsers/browsing-the-web/back-forward-cache/resources/rc-helper.js
// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
// META: script=/websockets/constants.sub.js
// META: timeout=long
'use strict';
// Ensure that empty attributes are reported as empty strings and missing
// attributes are reported as null.
promise_test(async t => {
const rcHelper = new RemoteContextHelper();
// Open a window with noopener so that BFCache will work.
const rc1 = await rcHelper.addWindow(
/*config=*/ null, /*options=*/ {features: 'noopener'});
const rc1_url = await rc1.executeScript(() => {
return location.href;
});
// Add a cross-origin iframe.
const rc1_child = await rc1.addIframe(
/*extraConfig=*/ {
origin: 'HTTP_REMOTE_ORIGIN',
scripts: [],
headers: [],
},
/*attributes=*/ {id: '', name: ''},
);
// Use WebSocket to block BFCache.
await useWebSocket(rc1);
const rc1_child_url = await rc1_child.executeScript(() => {
return location.href;
});
// Check the BFCache result and the reported reasons.
await assertBFCacheEligibility(rc1, /*shouldRestoreFromBFCache=*/ false);
await assertNotRestoredReasonsEquals(
rc1,
/*url=*/ rc1_url,
/*src=*/ null,
/*id=*/ null,
/*name=*/ null,
/*reasons=*/[{'reason': 'websocket'}],
/*children=*/[{
'url': null,
'src': rc1_child_url,
// Id and name should be empty.
'id': '',
'name': '',
'reasons': null,
'children': null
}]);
});

View File

@ -0,0 +1,47 @@
// META: title=RemoteContextHelper navigation using BFCache
// META: script=./test-helper.js
// META: script=/common/dispatcher/dispatcher.js
// META: script=/common/get-host-info.sub.js
// META: script=/common/utils.js
// META: script=/html/browsers/browsing-the-web/back-forward-cache/resources/rc-helper.js
// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
// META: script=/websockets/constants.sub.js
// META: timeout=long
'use strict';
// Ensure that notRestoredReasons are only updated after non BFCache navigation.
promise_test(async t => {
const rcHelper = new RemoteContextHelper();
// Open a window with noopener so that BFCache will work.
const rc1 = await rcHelper.addWindow(
/*config=*/ null, /*options=*/ {features: 'noopener'});
// Use WebSocket to block BFCache.
await useWebSocket(rc1);
const rc1_url = await rc1.executeScript(() => {
return location.href;
});
// Check the BFCache result and the reported reasons.
await assertBFCacheEligibility(rc1, /*shouldRestoreFromBFCache=*/ false);
await assertNotRestoredReasonsEquals(
rc1,
/*url=*/ rc1_url,
/*src=*/ null,
/*id=*/ null,
/*name=*/ null,
/*reasons=*/[{'reason': 'websocket'}],
/*children=*/ []);
// This time no blocking feature is used, so the page is restored
// from BFCache. Ensure that the previous reasons stay there.
await assertBFCacheEligibility(rc1, /*shouldRestoreFromBFCache=*/ true);
await assertNotRestoredReasonsEquals(
rc1,
/*url=*/ rc1_url,
/*src=*/ null,
/*id=*/ null,
/*name=*/ null,
/*reasons=*/[{'reason': 'websocket'}],
/*children=*/ []);
});

View File

@ -0,0 +1,28 @@
// META: title=RemoteContextHelper navigation using BFCache
// META: script=./test-helper.js
// META: script=/common/dispatcher/dispatcher.js
// META: script=/common/get-host-info.sub.js
// META: script=/common/utils.js
// META: script=/html/browsers/browsing-the-web/back-forward-cache/resources/rc-helper.js
// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
// META: timeout=long
'use strict';
// Ensure that notRestoredReasons is empty for successful BFCache restore.
promise_test(async t => {
const rcHelper = new RemoteContextHelper();
// Open a window with noopener so that BFCache will work.
const rc1 = await rcHelper.addWindow(
/*config=*/ null, /*options=*/ {features: 'noopener'});
// Check the BFCache result and verify that no reasons are recorded
// for successful restore.
await assertBFCacheEligibility(rc1, /*shouldRestoreFromBFCache=*/ true);
assert_true(await rc1.executeScript(() => {
let reasons =
performance.getEntriesByType('navigation')[0].notRestoredReasons;
return reasons === null;
}));
});

View File

@ -0,0 +1,60 @@
// META: title=RemoteContextHelper navigation using BFCache
// META: script=./test-helper.js
// META: script=/common/dispatcher/dispatcher.js
// META: script=/common/get-host-info.sub.js
// META: script=/common/utils.js
// META: script=/html/browsers/browsing-the-web/back-forward-cache/resources/rc-helper.js
// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
// META: script=/websockets/constants.sub.js
// META: timeout=long
'use strict';
// Ensure that cross-origin subtree's reasons are not exposed to
// notRestoredReasons.
promise_test(async t => {
const rcHelper = new RemoteContextHelper();
// Open a window with noopener so that BFCache will work.
const rc1 = await rcHelper.addWindow(
/*config=*/ null, /*options=*/ {features: 'noopener'});
const rc1_url = await rc1.executeScript(() => {
return location.href;
});
// Add a cross-origin iframe.
const rc1_child = await rc1.addIframe(
/*extraConfig=*/ {
origin: 'HTTP_REMOTE_ORIGIN',
scripts: [],
headers: [],
},
/*attributes=*/ {id: 'test-id'},
);
// Use WebSocket to block BFCache.
await useWebSocket(rc1_child);
const rc1_child_url = await rc1_child.executeScript(() => {
return location.href;
});
// Add a child to the iframe.
const rc1_grand_child = await rc1_child.addIframe();
const rc1_grand_child_url = await rc1_grand_child.executeScript(() => {
return location.href;
});
// Check the BFCache result and the reported reasons.
await assertBFCacheEligibility(rc1, /*shouldRestoreFromBFCache=*/ false);
await assertNotRestoredReasonsEquals(
rc1,
/*url=*/ rc1_url,
/*src=*/ null,
/*id=*/ null,
/*name=*/ null,
/*reasons=*/[{'reason': "masked"}],
/*children=*/[{
'url': null,
'src': rc1_child_url,
'id': 'test-id',
'name': null,
'reasons': null,
'children': null
}]);
});

View File

@ -0,0 +1,40 @@
// META: title=Ensure that ongoing fetch upon entering bfcache blocks bfcache and recorded.
// META: script=./test-helper.js
// META: script=/common/dispatcher/dispatcher.js
// META: script=/common/get-host-info.sub.js
// META: script=/common/utils.js
// META: script=/html/browsers/browsing-the-web/back-forward-cache/resources/rc-helper.js
// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
// META: timeout=long
'use strict';
promise_test(async t => {
const rcHelper = new RemoteContextHelper();
// Open a window with noopener so that BFCache will work.
const rc1 = await rcHelper.addWindow(
/*config=*/ null, /*options=*/ {features: 'noopener'});
const rc1_url = await rc1.executeScript(() => {
return location.href;
});
const wavURL = new URL(get_host_info().HTTP_REMOTE_ORIGIN + '/fetch/range/resources/long-wav.py');
await rc1.executeScript((wavURL) => {
// Register pagehide handler to create a fetch request.
addEventListener('pagehide', (wavURL) => {
fetch(wavURL, {
keepalive: true
});
})
});
// Check the BFCache result and the reported reasons.
await assertBFCacheEligibility(rc1, /*shouldRestoreFromBFCache=*/ false);
await assertNotRestoredReasonsEquals(
rc1,
/*url=*/ rc1_url,
/*src=*/ null,
/*id=*/ null,
/*name=*/ null,
/*reasons=*/[{'reason': 'fetch'}],
/*children=*/[]);
});

View File

@ -0,0 +1,103 @@
// META: title=RemoteContextHelper navigation using BFCache
// META: script=./test-helper.js
// META: script=/common/dispatcher/dispatcher.js
// META: script=/common/get-host-info.sub.js
// META: script=/common/utils.js
// META: script=/html/browsers/browsing-the-web/back-forward-cache/resources/rc-helper.js
// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
// META: script=/websockets/constants.sub.js
// META: timeout=long
'use strict';
// Ensure that empty attributes are reported as empty strings and missing
// attributes are reported as null.
promise_test(async t => {
const rcHelper = new RemoteContextHelper();
// Open a window with noopener so that BFCache will work.
const rc1 = await rcHelper.addWindow(
/*config=*/ null, /*options=*/ {features: 'noopener'});
const rc1_url = await rc1.executeScript(() => {
return location.href;
});
// Add a cross-origin iframe.
const rc1_child = await rc1.addIframe(
/*extraConfig=*/ {
origin: 'HTTP_REMOTE_ORIGIN',
scripts: [],
headers: [],
},
/*attributes=*/ {id: '', name: ''},
);
const rc2_child = await rc1.addIframe(
/*extraConfig=*/ {
origin: 'HTTP_REMOTE_ORIGIN',
scripts: [],
headers: [],
},
/*attributes=*/ {},
);
const rc3_child = await rc1.addIframe(
/*extraConfig=*/ {},
/*attributes=*/ {},
);
const rc4_child = await rc1.addIframe(
/*extraConfig=*/ {},
/*attributes=*/ {id: '', name: ''},
);
// Use WebSocket to block BFCache.
await useWebSocket(rc1);
const rc1_child_url = await rc1_child.executeScript(() => {
return location.href;
});
const rc2_child_url = await rc2_child.executeScript(() => {
return location.href;
});
const rc3_child_url = await rc3_child.executeScript(() => {
return location.href;
});
const rc4_child_url = await rc4_child.executeScript(() => {
return location.href;
});
// Check the BFCache result and the reported reasons.
await assertBFCacheEligibility(rc1, /*shouldRestoreFromBFCache=*/ false);
await assertNotRestoredReasonsEquals(
rc1,
/*url=*/ rc1_url,
/*src=*/ null,
/*id=*/ null,
/*name=*/ null,
/*reasons=*/[{'reason': 'websocket'}],
/*children=*/[{
'url': null,
'src': rc1_child_url,
// Id and name should be empty.
'id': '',
'name': '',
'reasons': null,
'children': null
}, {
'url': null,
'src': rc2_child_url,
// Id and name should be null.
'id': null,
'name': null,
'reasons': null,
'children': null
},{
'url': rc3_child_url,
'src': rc3_child_url,
// Id and name should be null.
'id': null,
'name': null,
'reasons': [],
'children': []
}, {
'url': rc4_child_url,
'src': rc4_child_url,
'id': '',
'name': '',
'reasons': [],
'children': []
}]);
});

View File

@ -0,0 +1,32 @@
// META: title=Ensure that if WebLock is held upon entering bfcache, it cannot enter bfcache and gets reported.
// META: script=./test-helper.js
// META: script=/common/dispatcher/dispatcher.js
// META: script=/common/get-host-info.sub.js
// META: script=/common/utils.js
// META: script=/html/browsers/browsing-the-web/back-forward-cache/resources/rc-helper.js
// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
// META: timeout=long
promise_test(async t => {
const rcHelper = new RemoteContextHelper();
// Open a window with noopener so that BFCache will work.
const rc1 = await rcHelper.addWindow(
/*config=*/ null, /*options=*/ {features: 'noopener'});
const rc1_url = await rc1.executeScript(() => {
return location.href;
});
// Request a WebLock.
let return_value = await rc1.executeScript(() => {
return new Promise((resolve) => {
navigator.locks.request('resource', () => {
resolve(42);
});
})
});
assert_equals(return_value, 42);
// Check the BFCache result and the reported reasons.
await assertBFCacheEligibility(rc1, /*shouldRestoreFromBFCache=*/ false);
await assertNotRestoredFromBFCache(rc1, ['lock']);
});

View File

@ -0,0 +1,26 @@
// META: title=Ensure that navigation failure blocks bfcache and gets recorded.
// META: script=./test-helper.js
// META: script=/common/dispatcher/dispatcher.js
// META: script=/common/get-host-info.sub.js
// META: script=/common/utils.js
// META: script=/html/browsers/browsing-the-web/back-forward-cache/resources/rc-helper.js
// META: script=/html/browsers/browsing-the-web/back-forward-cache/resources/404.py
// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
// META: timeout=long
'use strict';
const {ORIGIN} = get_host_info();
promise_test(async t => {
const rcHelper = new RemoteContextHelper();
// Open a window with noopener so that BFCache will work.
const rc1 = await rcHelper.addWindow(
/*config=*/ {status: 404}, /*options=*/ {features: 'noopener'});
const rc1_url = await rc1.executeScript(() => {
return location.href;
});
// Check the BFCache result and the reported reasons.
await assertBFCacheEligibility(rc1, /*shouldRestoreFromBFCache=*/ false);
await assertNotRestoredFromBFCache(rc1, ['response-status-not-ok']);
});

View File

@ -0,0 +1,36 @@
// META: title=RemoteContextHelper navigation using BFCache
// META: script=./test-helper.js
// META: script=/common/dispatcher/dispatcher.js
// META: script=/common/get-host-info.sub.js
// META: script=/common/utils.js
// META: script=/html/browsers/browsing-the-web/back-forward-cache/resources/rc-helper.js
// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
// META: script=/websockets/constants.sub.js
// META: timeout=long
'use strict';
// Ensure that notRestoredReasons is populated when not restored.
promise_test(async t => {
const rcHelper = new RemoteContextHelper();
// Open a window with noopener so that BFCache will work.
const rc1 = await rcHelper.addWindow(
/*config=*/ null, /*options=*/ {features: 'noopener'});
// Use WebSocket to block BFCache.
await useWebSocket(rc1);
const rc1_url = await rc1.executeScript(() => {
return location.href;
});
// Check the BFCache result and the reported reasons.
await assertBFCacheEligibility(rc1, /*shouldRestoreFromBFCache=*/ false);
await assertNotRestoredReasonsEquals(
rc1,
/*url=*/ rc1_url,
/*src=*/ null,
/*id=*/ null,
/*name=*/ null,
/*reasons=*/[{'reason': 'websocket'}],
/*children=*/ []);
});

View File

@ -0,0 +1,53 @@
// META: title=RemoteContextHelper navigation using BFCache
// META: script=./test-helper.js
// META: script=/common/dispatcher/dispatcher.js
// META: script=/common/get-host-info.sub.js
// META: script=/common/utils.js
// META: script=/html/browsers/browsing-the-web/back-forward-cache/resources/rc-helper.js
// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
// META: script=/websockets/constants.sub.js
// META: timeout=long
'use strict';
const {ORIGIN, REMOTE_ORIGIN} = get_host_info();
// Ensure that notRestoredReasons reset after the server redirect.
promise_test(async t => {
const rcHelper = new RemoteContextHelper();
// Open a window with noopener so that BFCache will work.
const rc1 = await rcHelper.addWindow(
/*config=*/ null, /*options=*/ {features: 'noopener'});
// Use WebSocket to block BFCache.
await useWebSocket(rc1);
// Create a remote context with the redirected URL.
let rc1_redirected =
await rcHelper.createContext(/*extraConfig=*/ {
origin: 'HTTP_ORIGIN',
scripts: [],
headers: [],
});
const redirectUrl =
`${ORIGIN}/common/redirect.py?location=${encodeURIComponent(rc1_redirected.url)}`;
// Replace the history state.
await rc1.executeScript((url) => {
window.history.replaceState(null, '', url);
}, [redirectUrl]);
// Navigate away.
const newRemoteContextHelper = await rc1.navigateToNew();
// Go back.
await newRemoteContextHelper.historyBack();
const navigation_entry = await rc1_redirected.executeScript(() => {
return performance.getEntriesByType('navigation')[0];
});
assert_equals(
navigation_entry.redirectCount, 1, 'Expected redirectCount is 1.');
// Becauase of the redirect, notRestoredReasons is reset.
assert_equals(
navigation_entry.notRestoredReasons, null,
'Expected notRestoredReasons is null.');
});

View File

@ -0,0 +1,50 @@
// META: title=RemoteContextHelper navigation using BFCache
// META: script=./test-helper.js
// META: script=/common/dispatcher/dispatcher.js
// META: script=/common/get-host-info.sub.js
// META: script=/common/utils.js
// META: script=/html/browsers/browsing-the-web/back-forward-cache/resources/rc-helper.js
// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
// META: script=/websockets/constants.sub.js
// META: timeout=long
'use strict';
const {ORIGIN, REMOTE_ORIGIN} = get_host_info();
// Ensure that notRestoredReasons reset after the server redirect.
promise_test(async t => {
const rcHelper = new RemoteContextHelper();
// Open a window with noopener so that BFCache will work.
const rc1 = await rcHelper.addWindow(
/*config=*/ null, /*options=*/ {features: 'noopener'});
const rc1_url = await rc1.executeScript(() => {
return location.href;
});
// Use WebSocket to block BFCache.
await useWebSocket(rc1);
// Check the BFCache result and the reported reasons.
await assertBFCacheEligibility(rc1, /*shouldRestoreFromBFCache=*/ false);
await assertNotRestoredReasonsEquals(
rc1,
/*url=*/ rc1_url,
/*src=*/ null,
/*id=*/ null,
/*name=*/ null,
/*reasons=*/[{'reason': 'websocket'}],
/*children=*/ []);
// Reload.
await rc1.navigate(() => {
location.reload();
}, []);
// Becauase of the reload, notRestoredReasons is reset.
const navigation_entry = await rc1.executeScript(() => {
return performance.getEntriesByType('navigation')[0];
});
assert_equals(
navigation_entry.notRestoredReasons, null,
'Expected notRestoredReasons is null.');
});

View File

@ -0,0 +1,61 @@
// META: title=RemoteContextHelper navigation using BFCache
// META: script=./test-helper.js
// META: script=/common/dispatcher/dispatcher.js
// META: script=/common/get-host-info.sub.js
// META: script=/common/utils.js
// META: script=/html/browsers/browsing-the-web/back-forward-cache/resources/rc-helper.js
// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
// META: script=/websockets/constants.sub.js
// META: timeout=long
'use strict';
// Ensure that same-origin subtree's reasons are exposed to notRestoredReasons.
promise_test(async t => {
const rcHelper = new RemoteContextHelper();
// Open a window with noopener so that BFCache will work.
const rc1 = await rcHelper.addWindow(
/*config=*/ null, /*options=*/ {features: 'noopener'});
const rc1_url = await rc1.executeScript(() => {
return location.href;
});
// Add a same-origin iframe and use WebSocket.
const rc1_child = await rc1.addIframe(
/*extra_config=*/ {}, /*attributes=*/ {id: 'test-id'});
await useWebSocket(rc1_child);
const rc1_child_url = await rc1_child.executeScript(() => {
return location.href;
});
// Add a child to the iframe.
const rc1_grand_child = await rc1_child.addIframe();
const rc1_grand_child_url = await rc1_grand_child.executeScript(() => {
return location.href;
});
// Check the BFCache result and the reported reasons.
await assertBFCacheEligibility(rc1, /*shouldRestoreFromBFCache=*/ false);
await assertNotRestoredReasonsEquals(
rc1,
/*url=*/ rc1_url,
/*src=*/ null,
/*id=*/ null,
/*name=*/ null,
/*reasons=*/[],
/*children=*/[{
'url': rc1_child_url,
'src': rc1_child_url,
'id': 'test-id',
'name': '',
'reasons': [{'reason': 'websocket'}],
'children': [{
'url': rc1_grand_child_url,
'src': rc1_grand_child_url,
'id': '',
'name': '',
'reasons': [],
'children': []
}]
}]);
});

View File

@ -0,0 +1,43 @@
// META: title=RemoteContextHelper navigation using BFCache
// META: script=./test-helper.js
// META: script=/common/dispatcher/dispatcher.js
// META: script=/common/get-host-info.sub.js
// META: script=/common/utils.js
// META: script=/html/browsers/browsing-the-web/back-forward-cache/resources/rc-helper.js
// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
// META: script=/websockets/constants.sub.js
// META: timeout=long
'use strict';
// Ensure that notRestoredReasons are accessible after history replace.
promise_test(async t => {
const rcHelper = new RemoteContextHelper();
// Open a window with noopener so that BFCache will work.
const rc1 = await rcHelper.addWindow(
/*config=*/ null, /*options=*/ {features: 'noopener'});
const rc1_url = await rc1.executeScript(() => {
return location.href;
});
// Use WebSocket to block BFCache.
await useWebSocket(rc1);
// Navigate away.
const newRemoteContextHelper = await rc1.navigateToNew();
// Replace the history state to a same-origin site.
await newRemoteContextHelper.executeScript((destUrl) => {
window.history.replaceState(null, '', '#');
});
// Go back.
await newRemoteContextHelper.historyBack();
// Reasons are not reset for same-origin replace.
await assertNotRestoredReasonsEquals(
rc1,
/*url=*/ rc1_url,
/*src=*/ null,
/*id=*/ null,
/*name=*/ null,
/*reasons=*/[{'reason': 'websocket'}],
/*children=*/ []);
});

View File

@ -0,0 +1,57 @@
// META: script=../../html/browsers/browsing-the-web/back-forward-cache/resources/rc-helper.js
async function assertNotRestoredReasonsEquals(
remoteContextHelper, url, src, id, name, reasons, children) {
let result = await remoteContextHelper.executeScript(() => {
return performance.getEntriesByType('navigation')[0].notRestoredReasons;
});
assertReasonsStructEquals(
result, url, src, id, name, reasons, children);
}
function assertReasonsStructEquals(
result, url, src, id, name, reasons, children) {
assert_equals(result.url, url);
assert_equals(result.src, src);
assert_equals(result.id, id);
assert_equals(result.name, name);
// Reasons should match.
let expected = new Set(reasons);
let actual = new Set(result.reasons);
matchReasons(extractReason(expected), extractReason(actual));
// Children should match.
if (children == null) {
assert_equals(result.children, children);
} else {
for (let j = 0; j < children.length; j++) {
assertReasonsStructEquals(
result.children[j], children[j].url,
children[j].src, children[j].id, children[j].name, children[j].reasons,
children[j].children);
}
}
}
function ReasonsInclude(reasons, targetReason) {
for (const reason of reasons) {
if (reason.reason == targetReason) {
return true;
}
}
return false;
}
// Requires:
// - /websockets/constants.sub.js in the test file and pass the domainPort
// constant here.
async function useWebSocket(remoteContextHelper) {
let return_value = await remoteContextHelper.executeScript((domain) => {
return new Promise((resolve) => {
var webSocketInNotRestoredReasonsTests = new WebSocket(domain + '/echo');
webSocketInNotRestoredReasonsTests.onopen = () => { resolve(42); };
});
}, [SCHEME_DOMAIN_PORT]);
assert_equals(return_value, 42);
}