推进 INI 面板 shell handoff mount DOM contract helper

This commit is contained in:
2026-06-15 12:12:01 +08:00
parent 22ca6ced3f
commit 94b44c0e73
9 changed files with 331 additions and 29 deletions

View File

@@ -85,6 +85,8 @@ TOOL_TABLE = browser-shell-tool.tbl
!launchApi?.getShellSessionHandoffPackageMountState ||
!launchApi?.getShellSessionHandoffPackageMountDisplayViewModel ||
!launchApi?.getShellSessionHandoffPackageMountRenderState ||
!launchApi?.getShellSessionHandoffMountDomContract ||
!launchApi?.getShellSessionHandoffMountDomReadiness ||
!launchApi?.renderShellSessionHandoffMountState ||
!launchApi?.isSupportedShellSessionHandoffPackage
) {
@@ -109,16 +111,27 @@ TOOL_TABLE = browser-shell-tool.tbl
const handoffPackageMountState = launchApi.getShellSessionHandoffPackageMountState();
const handoffPackageMountDisplay = launchApi.getShellSessionHandoffPackageMountDisplayViewModel();
const handoffPackageMountRenderState = launchApi.getShellSessionHandoffPackageMountRenderState();
const externalMountDomContract = launchApi.getShellSessionHandoffMountDomContract({
rowDatasetPrefix: "externalMount",
selectors: {
mount: "[data-external-shell-mount]",
status: "[data-external-shell-mount-status]",
rows: "[data-external-shell-mount-rows]",
},
});
const externalMountDomReadiness = launchApi.getShellSessionHandoffMountDomReadiness({
contract: externalMountDomContract,
documentRef: document,
});
const waitingMountRenderResult = launchApi.renderShellSessionHandoffMountState(
handoffPackageMountRenderState,
{
contract: externalMountDomContract,
documentRef: document,
mountNode: document.querySelector("[data-external-shell-mount]"),
statusNode: document.querySelector("[data-external-shell-mount-status]"),
rowsNode: document.querySelector("[data-external-shell-mount-rows]"),
rowDatasetPrefix: "externalMount",
},
);
assertEqual(externalMountDomContract.rowDatasetPrefix, "externalMount", "external shell mount DOM contract prefix");
assertEqual(externalMountDomReadiness.ready, true, "external shell mount DOM readiness");
assertEqual(handoffSummarySchema.summaryVersion, 1, "shell handoff summary schema version");
assertEqual(
launchApi.isSupportedShellSessionHandoffSummary(handoffSummary),
@@ -280,11 +293,8 @@ TOOL_TABLE = browser-shell-tool.tbl
const readyMountRenderResult = launchApi.renderShellSessionHandoffMountState(
readyMountRenderState,
{
contract: externalMountDomContract,
documentRef: document,
mountNode: document.querySelector("[data-external-shell-mount]"),
statusNode: document.querySelector("[data-external-shell-mount-status]"),
rowsNode: document.querySelector("[data-external-shell-mount-rows]"),
rowDatasetPrefix: "externalMount",
},
);
assertEqual(readyMountState.ready, true, "shell handoff package mount-state readiness");