@hyperframes/core 0.8.40 → 0.8.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/generated/runtime-inline.js +1 -1
- package/dist/generated/runtime-inline.js.map +1 -1
- package/dist/hyperframe.runtime.iife.js +18 -18
- package/dist/runtime/webAudioRoute.d.ts +12 -8
- package/dist/runtime/webAudioRoute.d.ts.map +1 -1
- package/dist/runtime/webAudioRoute.js +59 -17
- package/dist/runtime/webAudioRoute.js.map +1 -1
- package/package.json +4 -4
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
* `createMediaElementSource` from a `srcObject` element today, so this is
|
|
30
30
|
* recorded as a boundary rather than fixed.
|
|
31
31
|
*
|
|
32
|
-
* Second known gap, same shape: `
|
|
32
|
+
* Second known gap, same shape: `corsSilenceReason` judges the RAW url string —
|
|
33
33
|
* the same-origin URL the author wrote, or whatever the browser resolved into
|
|
34
34
|
* `currentSrc` — not wherever a server-side redirect chain actually lands.
|
|
35
35
|
* A same-origin URL that 302s to a cross-origin CDN reads as `web-audio` here
|
|
@@ -58,9 +58,19 @@ export type WebAudioMediaRoute =
|
|
|
58
58
|
*/
|
|
59
59
|
| {
|
|
60
60
|
kind: "decode-only";
|
|
61
|
-
reason:
|
|
61
|
+
reason: WebAudioSilenceReason;
|
|
62
62
|
asset: string;
|
|
63
63
|
};
|
|
64
|
+
/**
|
|
65
|
+
* Why capture was withheld. The two cases need DIFFERENT remediation, which is
|
|
66
|
+
* the whole reason they are separate values: a foreign asset can be proxied to
|
|
67
|
+
* a same-origin URL, but an opaque document has no same-origin URL to proxy to.
|
|
68
|
+
*/
|
|
69
|
+
export type WebAudioSilenceReason =
|
|
70
|
+
/** The asset's origin differs from ours, and no `crossorigin` opt-in is set. */
|
|
71
|
+
"cross_origin_no_cors"
|
|
72
|
+
/** OUR document's security origin is opaque, so nothing is same-origin with it. */
|
|
73
|
+
| "opaque_document_origin";
|
|
64
74
|
/**
|
|
65
75
|
* Whether resource selection has settled enough for a verdict to be a FACT
|
|
66
76
|
* rather than a guess. `currentSrc`/`src` are both definitive per the HTML
|
|
@@ -96,11 +106,5 @@ export declare function classifyWebAudioMediaRoute(el: HTMLMediaElement): WebAud
|
|
|
96
106
|
* gain stage is `el.volume`, which the spec pins to [0,1].
|
|
97
107
|
*/
|
|
98
108
|
export declare function nativeUnexpressibleProcessing(el: HTMLMediaElement): string[];
|
|
99
|
-
/**
|
|
100
|
-
* Emit the one-time diagnostic for a non-Web-Audio verdict.
|
|
101
|
-
*
|
|
102
|
-
* The bypass always reports: it is an accident by definition, and the whole
|
|
103
|
-
* complaint in #3458 is that nothing was said.
|
|
104
|
-
*/
|
|
105
109
|
export declare function reportWebAudioMediaRoute(el: HTMLMediaElement, route: WebAudioMediaRoute): void;
|
|
106
110
|
//# sourceMappingURL=webAudioRoute.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webAudioRoute.d.ts","sourceRoot":"","sources":["../../src/runtime/webAudioRoute.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAM,MAAM,kBAAkB;AAC5B,0EAA0E;AACxE;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE;AACvB;;;;;;GAMG;GACD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"webAudioRoute.d.ts","sourceRoot":"","sources":["../../src/runtime/webAudioRoute.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAM,MAAM,kBAAkB;AAC5B,0EAA0E;AACxE;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE;AACvB;;;;;;GAMG;GACD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,qBAAqB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1E;;;;GAIG;AACH,MAAM,MAAM,qBAAqB;AAC/B,gFAAgF;AAC9E,sBAAsB;AACxB,mFAAmF;GACjF,wBAAwB,CAAC;AAoH7B;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAIrE;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,gBAAgB,GAAG,kBAAkB,CAQnF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAAC,EAAE,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAQ5E;AAmED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,kBAAkB,GAAG,IAAI,CA8B9F"}
|
|
@@ -75,26 +75,49 @@ function routeCandidates(el) {
|
|
|
75
75
|
* pre-existing behaviour rather than losing Web Audio on a guess. The guard
|
|
76
76
|
* changes behaviour ONLY in the case that is already known-broken.
|
|
77
77
|
*/
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
78
|
+
/**
|
|
79
|
+
* The candidate as an absolute URL, or null when it is not a fetch this check
|
|
80
|
+
* governs: unparseable, or a scheme (`data:`, `blob:`, `file:`) where origin
|
|
81
|
+
* comparison means nothing.
|
|
82
|
+
*/
|
|
83
|
+
function httpMediaUrl(rawUrl, el) {
|
|
81
84
|
let url;
|
|
82
85
|
try {
|
|
83
86
|
url = new URL(rawUrl, baseUri(el));
|
|
84
87
|
}
|
|
85
88
|
catch {
|
|
86
|
-
return
|
|
89
|
+
return null;
|
|
87
90
|
}
|
|
88
91
|
if (url.protocol !== "http:" && url.protocol !== "https:")
|
|
89
|
-
return
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
92
|
+
return null;
|
|
93
|
+
return url;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Our OWN security origin, which is `"null"` for an opaque document.
|
|
97
|
+
*
|
|
98
|
+
* Not `location.origin`: that is the URL's origin, so a sandboxed iframe
|
|
99
|
+
* without `allow-same-origin` still reports the parent-looking URL there
|
|
100
|
+
* while `window.origin` reads `"null"`. An opaque document cannot prove
|
|
101
|
+
* same-origin with anything, including an asset served from its own host.
|
|
102
|
+
*/
|
|
103
|
+
function documentSecurityOrigin() {
|
|
104
|
+
return typeof window.origin === "string" ? window.origin : window.location.origin;
|
|
105
|
+
}
|
|
106
|
+
function corsSilenceReason(rawUrl, el) {
|
|
107
|
+
if (typeof window === "undefined")
|
|
108
|
+
return null;
|
|
109
|
+
const url = httpMediaUrl(rawUrl, el);
|
|
110
|
+
if (!url)
|
|
111
|
+
return null;
|
|
112
|
+
const selfOrigin = documentSecurityOrigin();
|
|
113
|
+
const opaqueDocument = selfOrigin === "null";
|
|
114
|
+
if (!opaqueDocument && url.origin === selfOrigin)
|
|
115
|
+
return null;
|
|
116
|
+
if (hasCorsOptIn(el))
|
|
117
|
+
return null;
|
|
118
|
+
// Opacity wins when both hold. It is the blocking condition, and it is the
|
|
119
|
+
// one the author cannot fix by moving the asset.
|
|
120
|
+
return opaqueDocument ? "opaque_document_origin" : "cross_origin_no_cors";
|
|
98
121
|
}
|
|
99
122
|
/**
|
|
100
123
|
* Whether resource selection has settled enough for a verdict to be a FACT
|
|
@@ -125,8 +148,9 @@ export function isRouteSelectionSettled(el) {
|
|
|
125
148
|
*/
|
|
126
149
|
export function classifyWebAudioMediaRoute(el) {
|
|
127
150
|
for (const candidate of routeCandidates(el)) {
|
|
128
|
-
|
|
129
|
-
|
|
151
|
+
const reason = corsSilenceReason(candidate, el);
|
|
152
|
+
if (reason) {
|
|
153
|
+
return { kind: "decode-only", reason, asset: candidate };
|
|
130
154
|
}
|
|
131
155
|
}
|
|
132
156
|
return { kind: "web-audio" };
|
|
@@ -193,6 +217,24 @@ const diagnosedElements = new WeakSet();
|
|
|
193
217
|
* The bypass always reports: it is an accident by definition, and the whole
|
|
194
218
|
* complaint in #3458 is that nothing was said.
|
|
195
219
|
*/
|
|
220
|
+
/**
|
|
221
|
+
* What was actually wrong, per reason. The opaque case is NOT "cross-origin
|
|
222
|
+
* media": the asset can be same-origin by URL and still unreadable, because it
|
|
223
|
+
* is OUR document that cannot prove an origin.
|
|
224
|
+
*/
|
|
225
|
+
const NOTE_BY_REASON = {
|
|
226
|
+
cross_origin_no_cors: "cross-origin media without a `crossorigin` opt-in is silent through createMediaElementSource (Web Audio spec); using native playback instead",
|
|
227
|
+
opaque_document_origin: "this document's security origin is opaque (a sandbox without `allow-same-origin`), so no media is same-origin with it and createMediaElementSource would be silent (Web Audio spec); using native playback instead",
|
|
228
|
+
};
|
|
229
|
+
/**
|
|
230
|
+
* How to get the processing back, per reason. Keeping these apart is the point:
|
|
231
|
+
* telling an opaque document to "proxy the asset to a same-origin URL" names a
|
|
232
|
+
* fix that cannot exist, since nothing is same-origin with an opaque origin.
|
|
233
|
+
*/
|
|
234
|
+
const REMEDY_BY_REASON = {
|
|
235
|
+
cross_origin_no_cors: "proxy or download the asset to a same-origin URL to keep it.",
|
|
236
|
+
opaque_document_origin: "add `allow-same-origin` to the sandbox, or serve the asset with a `crossorigin` attribute and an `Access-Control-Allow-Origin` of `null` or `*`, to keep it.",
|
|
237
|
+
};
|
|
196
238
|
export function reportWebAudioMediaRoute(el, route) {
|
|
197
239
|
if (route.kind === "web-audio")
|
|
198
240
|
return;
|
|
@@ -206,7 +248,7 @@ export function reportWebAudioMediaRoute(el, route) {
|
|
|
206
248
|
asset: route.asset,
|
|
207
249
|
reason: route.reason,
|
|
208
250
|
lostProcessing: lost,
|
|
209
|
-
note:
|
|
251
|
+
note: NOTE_BY_REASON[route.reason],
|
|
210
252
|
};
|
|
211
253
|
postRuntimeMessage({
|
|
212
254
|
source: "hf-preview",
|
|
@@ -218,7 +260,7 @@ export function reportWebAudioMediaRoute(el, route) {
|
|
|
218
260
|
// (packages/cli/src/utils/checkBrowser.ts) can match a token, not prose —
|
|
219
261
|
// same contract mediaProxy.ts's diagnostics use.
|
|
220
262
|
const lostNote = lost.length > 0
|
|
221
|
-
? ` Native playback cannot reproduce: ${lost.join(", ")} —
|
|
263
|
+
? ` Native playback cannot reproduce: ${lost.join(", ")} — ${REMEDY_BY_REASON[route.reason]}`
|
|
222
264
|
: "";
|
|
223
265
|
console.info(`[hyperframes] ${DIAGNOSTIC_BYPASS_CODE}: "${route.asset}" (${route.reason}): ` +
|
|
224
266
|
`Web Audio capture withheld; the track plays through native HTMLMediaElement output.${lostNote}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webAudioRoute.js","sourceRoot":"","sources":["../../src/runtime/webAudioRoute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"webAudioRoute.js","sourceRoot":"","sources":["../../src/runtime/webAudioRoute.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hyperframes/core",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.41",
|
|
4
4
|
"description": "",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -282,9 +282,9 @@
|
|
|
282
282
|
"bpm-detective": "^2.0.5",
|
|
283
283
|
"linkedom": "^0.18.12",
|
|
284
284
|
"postcss": "^8.5.8",
|
|
285
|
-
"@hyperframes/lint": "0.8.
|
|
286
|
-
"@hyperframes/
|
|
287
|
-
"@hyperframes/
|
|
285
|
+
"@hyperframes/lint": "0.8.41",
|
|
286
|
+
"@hyperframes/parsers": "0.8.41",
|
|
287
|
+
"@hyperframes/studio-server": "0.8.41"
|
|
288
288
|
},
|
|
289
289
|
"devDependencies": {
|
|
290
290
|
"@types/jsdom": "^28.0.0",
|