405 lines
9.2 KiB
JSON
405 lines
9.2 KiB
JSON
{
|
|
"schema": "freecad-web-p6-quality-gate/v1",
|
|
"taskId": "FW-P6-FPA-I",
|
|
"result": "pass",
|
|
"budgets": {
|
|
"javascriptBytes": 11771855,
|
|
"javascriptLimitBytes": 16777216,
|
|
"wasmCount": 41,
|
|
"wasmLimitBytes": 201326592,
|
|
"cspHtmlCount": 77,
|
|
"cspRequired": 77,
|
|
"workerRoundTripMs": {
|
|
"target": 5000,
|
|
"observed": null
|
|
},
|
|
"memory": {
|
|
"target": "no unreleased native resources",
|
|
"observed": "delegated to native resourcesReleased evidence"
|
|
}
|
|
},
|
|
"csp": {
|
|
"policy": "default-src 'self'; script-src 'self' 'unsafe-inline' 'wasm-unsafe-eval' blob:; worker-src 'self' blob:; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob:; connect-src 'self'; object-src 'none'; base-uri 'self'",
|
|
"pages": [
|
|
{
|
|
"path": "web/dist/assembly.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/bim.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/cam.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/cloud.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/core.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/document.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/draft.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/fem.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/full.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/help.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/import.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/index.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/inspection.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/jtreader.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/main-chain.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/material.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/measure.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/mesh.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/meshpart.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/openscad.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/part-inspect.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/part-io.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/part-python.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/part-save.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/part.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/partdesign-inspect.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/partdesign-python.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/partdesign-save.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/partdesign.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/plot-python.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/points-inspect.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/points-python.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/points-save.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/points.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/project.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/python.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/reverseengineering-create.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/reverseengineering-inspect.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/reverseengineering-python.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/reverseengineering-save.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/robot-create.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/robot-inspect.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/robot-python.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/robot-save.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/sandbox-inspect.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/sandbox-python.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/sandbox-save.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/sandbox.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/show-inspect.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/show-python.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/sketcher-inspect.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/sketcher-persistence.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/sketcher-python.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/sketcher.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/spreadsheet-inspect.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/spreadsheet-python.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/spreadsheet-save.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/spreadsheet.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/start-inspect.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/start-python.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/start.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/surface-inspect.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/surface-python.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/surface-save.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/surface.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/techdraw-inspect.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/techdraw-native.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/techdraw-python.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/techdraw-save.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/techdraw.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/templatepymod-python.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/templatepymod.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/test.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/tux.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/web-persistence.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/web.html",
|
|
"present": true
|
|
},
|
|
{
|
|
"path": "web/dist/workbench.html",
|
|
"present": true
|
|
}
|
|
]
|
|
},
|
|
"performance": {
|
|
"workbenchRecords": 778,
|
|
"workbenchNative": 138,
|
|
"viewCanvasPixels": 1,
|
|
"chromeCases": 12
|
|
},
|
|
"accessibility": {
|
|
"viewControls": {
|
|
"stage": "view-provider",
|
|
"objectCount": 1,
|
|
"selected": true,
|
|
"preselected": false,
|
|
"visible": true,
|
|
"displayMode": "shaded",
|
|
"color": "#73c6d4",
|
|
"lineWidth": 1,
|
|
"section": true,
|
|
"camera": {
|
|
"position": [
|
|
269.93165341782895,
|
|
171.23248947870536,
|
|
157.68165341762895
|
|
],
|
|
"target": [
|
|
148.7500000002,
|
|
74.99999999999999,
|
|
36.5
|
|
]
|
|
}
|
|
},
|
|
"keyboard": [
|
|
"F",
|
|
"0",
|
|
"1",
|
|
"2",
|
|
"Escape",
|
|
"S"
|
|
],
|
|
"noOverlapEvidence": true
|
|
},
|
|
"security": {
|
|
"externalRequests": 0,
|
|
"exceptions": 0,
|
|
"pythonPolicy": "no arbitrary Python eval; generated API IDs remain disposition-gated",
|
|
"restrictedCapabilities": [
|
|
"Qt desktop commands",
|
|
"Clipboard outside secure context",
|
|
"OPFS when unavailable",
|
|
"SharedArrayBuffer-dependent pthread paths"
|
|
]
|
|
},
|
|
"artifacts": {
|
|
"workbenchGate": {
|
|
"path": "docs/p6/workbench-command-gate.json",
|
|
"sha256": "1082950b72fc7a675134ae2903764815e41bfdd8f5eb6ac1685af28762cdfcf0"
|
|
},
|
|
"viewGate": {
|
|
"path": "docs/p6/view-interaction-gate.json",
|
|
"sha256": "f0ea2538c326f91b116deb66a0809e71402ee50f1eb63f021981c5ecf7b82c61"
|
|
},
|
|
"workbenchWasm": {
|
|
"path": "web/public/kernel/FreeCADWebWorkbenchCommandProbe.wasm",
|
|
"sha256": "761882251cf05edf2a50c160abc95c1bf3f7dc42bc724ca1f1322ab7927fba64"
|
|
}
|
|
},
|
|
"boundaries": [
|
|
"Resource and memory release are accepted only when native evidence reports resourcesReleased=true.",
|
|
"CSP permits the existing blob Worker and WebAssembly loading model; deployment must preserve same-origin asset hosting.",
|
|
"No non-Chrome browser support is inferred from the fixed Chrome gate."
|
|
]
|
|
}
|