Checkpoint web parity through Chromium input tasks
This commit is contained in:
@@ -8,11 +8,16 @@ when every response, including errors and SPA fallbacks, preserves these headers
|
||||
| `Cross-Origin-Opener-Policy` | `same-origin` |
|
||||
| `Cross-Origin-Embedder-Policy` | `require-corp` |
|
||||
| `Cross-Origin-Resource-Policy` | `same-origin` |
|
||||
| `Content-Security-Policy` | `default-src 'self'; script-src 'self' 'wasm-unsafe-eval'; worker-src 'self'; connect-src 'self'; font-src 'self'; img-src 'self'; media-src 'self'; object-src 'none'; base-uri 'none'; frame-ancestors 'none'` |
|
||||
|
||||
Production uses HTTPS. Loopback development may use `http://127.0.0.1`; `file://` is unsupported.
|
||||
Runtime assets are same-origin. A reverse proxy must not strip the isolation, range, cache, MIME or
|
||||
ETag headers.
|
||||
|
||||
The CSP permits WebAssembly compilation only through the explicit `wasm-unsafe-eval` source expression;
|
||||
JavaScript `eval` and `new Function` remain denied. Workers, fonts, images and media are each limited to
|
||||
same-origin resources, and `data:`/`blob:` URLs are not declared for any of them.
|
||||
|
||||
## Empty-directory install runbook
|
||||
|
||||
The release delivery contains `blender-web-offline.tar.gz`,
|
||||
|
||||
18
docs/web/dependency-severity-policy.json
Normal file
18
docs/web/dependency-severity-policy.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M13-05D",
|
||||
"severityOrder": ["LOW", "MEDIUM", "HIGH", "BLOCKER"],
|
||||
"gates": {
|
||||
"BLOCKER": "BLOCK",
|
||||
"HIGH": "BLOCK",
|
||||
"MEDIUM": "REVIEW",
|
||||
"LOW": "TRACK"
|
||||
},
|
||||
"exceptionRequiredFor": ["BLOCKER", "HIGH", "MEDIUM", "LOW"],
|
||||
"exceptionFields": ["owner", "expiresOn", "reason", "alternativeControl"],
|
||||
"dateFormat": "YYYY-MM-DD",
|
||||
"findings": [],
|
||||
"exceptions": [],
|
||||
"execution": "DISABLED",
|
||||
"nextTask": "M13-05E"
|
||||
}
|
||||
@@ -13,7 +13,8 @@
|
||||
"allResponses": {
|
||||
"Cross-Origin-Opener-Policy": "same-origin",
|
||||
"Cross-Origin-Embedder-Policy": "require-corp",
|
||||
"Cross-Origin-Resource-Policy": "same-origin"
|
||||
"Cross-Origin-Resource-Policy": "same-origin",
|
||||
"Content-Security-Policy": "default-src 'self'; script-src 'self' 'wasm-unsafe-eval'; worker-src 'self'; connect-src 'self'; font-src 'self'; img-src 'self'; media-src 'self'; object-src 'none'; base-uri 'none'; frame-ancestors 'none'"
|
||||
},
|
||||
"routes": [
|
||||
{
|
||||
@@ -50,7 +51,18 @@
|
||||
".wasm": "application/wasm",
|
||||
".json": "application/json; charset=utf-8",
|
||||
".png": "image/png",
|
||||
".jpg": "image/jpeg",
|
||||
".jpeg": "image/jpeg",
|
||||
".webp": "image/webp",
|
||||
".ttf": "font/ttf",
|
||||
".otf": "font/otf",
|
||||
".woff": "font/woff",
|
||||
".woff2": "font/woff2",
|
||||
".wav": "audio/wav",
|
||||
".mp3": "audio/mpeg",
|
||||
".ogg": "audio/ogg",
|
||||
".mp4": "video/mp4",
|
||||
".webm": "video/webm",
|
||||
".blend": "application/octet-stream",
|
||||
".nvdb": "application/x-nanovdb"
|
||||
},
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"dataLicense": "CC0-1.0",
|
||||
"SPDXID": "SPDXRef-DOCUMENT",
|
||||
"name": "blender-web-editor-sbom",
|
||||
"documentNamespace": "https://blender-web.local/spdx/cf7beefe71131e5d51b45ffa79b7b906b21decc743fc7eafd7cf6791996dea37",
|
||||
"documentNamespace": "https://blender-web.local/spdx/dc8374f47ec1483e74b09821f6d444c9785c19ba02d6d79f617ae50d71caf246",
|
||||
"creationInfo": {
|
||||
"created": "1970-01-01T00:00:00Z",
|
||||
"creators": [
|
||||
@@ -14,6 +14,29 @@
|
||||
"SPDXRef-Package-blender-web-editor"
|
||||
],
|
||||
"packages": [
|
||||
{
|
||||
"SPDXID": "SPDXRef-npm-node-modules--axe-core-playwright-ac1d565a7235",
|
||||
"name": "@axe-core/playwright",
|
||||
"versionInfo": "4.12.1",
|
||||
"downloadLocation": "https://registry.npmjs.org/@axe-core/playwright/-/playwright-4.12.1.tgz",
|
||||
"filesAnalyzed": false,
|
||||
"licenseConcluded": "NOASSERTION",
|
||||
"licenseDeclared": "NOASSERTION",
|
||||
"copyrightText": "NOASSERTION",
|
||||
"externalRefs": [
|
||||
{
|
||||
"referenceCategory": "PACKAGE-MANAGER",
|
||||
"referenceType": "purl",
|
||||
"referenceLocator": "pkg:npm/%40axe-core%2Fplaywright@4.12.1"
|
||||
}
|
||||
],
|
||||
"checksums": [
|
||||
{
|
||||
"algorithm": "SHA512",
|
||||
"checksumValue": "acc77bc6b8a9b6a2a93fec39dbae62e07764bf65f991bbbaba2062fc1d88eee7f786279104cdea0c27da28fb717e261bda62977c5fb22ce0c9c08c7e26fd460f"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"SPDXID": "SPDXRef-npm-node-modules--dimforge-rapier3d-compat-64c1bc64bf78",
|
||||
"name": "@dimforge/rapier3d-compat",
|
||||
@@ -1302,6 +1325,29 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"SPDXID": "SPDXRef-npm-node-modules-axe-core-faf33d0c794e",
|
||||
"name": "axe-core",
|
||||
"versionInfo": "4.12.1",
|
||||
"downloadLocation": "https://registry.npmjs.org/axe-core/-/axe-core-4.12.1.tgz",
|
||||
"filesAnalyzed": false,
|
||||
"licenseConcluded": "NOASSERTION",
|
||||
"licenseDeclared": "NOASSERTION",
|
||||
"copyrightText": "NOASSERTION",
|
||||
"externalRefs": [
|
||||
{
|
||||
"referenceCategory": "PACKAGE-MANAGER",
|
||||
"referenceType": "purl",
|
||||
"referenceLocator": "pkg:npm/axe-core@4.12.1"
|
||||
}
|
||||
],
|
||||
"checksums": [
|
||||
{
|
||||
"algorithm": "SHA512",
|
||||
"checksumValue": "b3b8867f919a54cc441b410d37dc7ec53afb1856426f564fff5b804d4a4210ad97efc9c30774706ed142a3da4601ff6bbbe570a10e3ae0391a2c4791334f3024"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"SPDXID": "SPDXRef-npm-node-modules-balanced-match-951e2b0376c0",
|
||||
"name": "balanced-match",
|
||||
@@ -3292,7 +3338,7 @@
|
||||
"checksums": [
|
||||
{
|
||||
"algorithm": "SHA256",
|
||||
"checksumValue": "87af8e7d5eb36537541cf941699868a010c1fcea305daa3ce5385453e8fa4557"
|
||||
"checksumValue": "61f6d13e0148321d3c625a5baa212b5444296d111193c4d62a692685faebff1f"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -3375,6 +3421,11 @@
|
||||
}
|
||||
],
|
||||
"relationships": [
|
||||
{
|
||||
"spdxElementId": "SPDXRef-Package-blender-web-editor",
|
||||
"relationshipType": "DEPENDS_ON",
|
||||
"relatedSpdxElement": "SPDXRef-npm-node-modules--axe-core-playwright-ac1d565a7235"
|
||||
},
|
||||
{
|
||||
"spdxElementId": "SPDXRef-Package-blender-web-editor",
|
||||
"relationshipType": "DEPENDS_ON",
|
||||
@@ -3655,6 +3706,11 @@
|
||||
"relationshipType": "DEPENDS_ON",
|
||||
"relatedSpdxElement": "SPDXRef-npm-node-modules-ajv-f1c07f09b167"
|
||||
},
|
||||
{
|
||||
"spdxElementId": "SPDXRef-Package-blender-web-editor",
|
||||
"relationshipType": "DEPENDS_ON",
|
||||
"relatedSpdxElement": "SPDXRef-npm-node-modules-axe-core-faf33d0c794e"
|
||||
},
|
||||
{
|
||||
"spdxElementId": "SPDXRef-Package-blender-web-editor",
|
||||
"relationshipType": "DEPENDS_ON",
|
||||
|
||||
Reference in New Issue
Block a user