@hyperframes/core 0.8.39 → 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.
@@ -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: `isCorsSilenced` judges the RAW url string —
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: "cross_origin_no_cors";
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,sBAAsB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAwF3E;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAIrE;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,gBAAgB,GAAG,kBAAkB,CAOnF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAAC,EAAE,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAQ5E;AAsCD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,kBAAkB,GAAG,IAAI,CA8B9F"}
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,21 +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
- function isCorsSilenced(rawUrl, el) {
79
- if (typeof window === "undefined")
80
- return false;
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 false;
89
+ return null;
87
90
  }
88
91
  if (url.protocol !== "http:" && url.protocol !== "https:")
89
- return false;
90
- if (url.origin === window.location.origin)
91
- return false;
92
- return !hasCorsOptIn(el);
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";
93
121
  }
94
122
  /**
95
123
  * Whether resource selection has settled enough for a verdict to be a FACT
@@ -120,8 +148,9 @@ export function isRouteSelectionSettled(el) {
120
148
  */
121
149
  export function classifyWebAudioMediaRoute(el) {
122
150
  for (const candidate of routeCandidates(el)) {
123
- if (isCorsSilenced(candidate, el)) {
124
- return { kind: "decode-only", reason: "cross_origin_no_cors", asset: candidate };
151
+ const reason = corsSilenceReason(candidate, el);
152
+ if (reason) {
153
+ return { kind: "decode-only", reason, asset: candidate };
125
154
  }
126
155
  }
127
156
  return { kind: "web-audio" };
@@ -188,6 +217,24 @@ const diagnosedElements = new WeakSet();
188
217
  * The bypass always reports: it is an accident by definition, and the whole
189
218
  * complaint in #3458 is that nothing was said.
190
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
+ };
191
238
  export function reportWebAudioMediaRoute(el, route) {
192
239
  if (route.kind === "web-audio")
193
240
  return;
@@ -201,7 +248,7 @@ export function reportWebAudioMediaRoute(el, route) {
201
248
  asset: route.asset,
202
249
  reason: route.reason,
203
250
  lostProcessing: lost,
204
- note: "cross-origin media without a `crossorigin` opt-in is silent through createMediaElementSource (Web Audio spec); using native playback instead",
251
+ note: NOTE_BY_REASON[route.reason],
205
252
  };
206
253
  postRuntimeMessage({
207
254
  source: "hf-preview",
@@ -213,7 +260,7 @@ export function reportWebAudioMediaRoute(el, route) {
213
260
  // (packages/cli/src/utils/checkBrowser.ts) can match a token, not prose —
214
261
  // same contract mediaProxy.ts's diagnostics use.
215
262
  const lostNote = lost.length > 0
216
- ? ` Native playback cannot reproduce: ${lost.join(", ")} — proxy or download the asset to a same-origin URL to keep it.`
263
+ ? ` Native playback cannot reproduce: ${lost.join(", ")} — ${REMEDY_BY_REASON[route.reason]}`
217
264
  : "";
218
265
  console.info(`[hyperframes] ${DIAGNOSTIC_BYPASS_CODE}: "${route.asset}" (${route.reason}): ` +
219
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":"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"}
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.39",
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/parsers": "0.8.39",
286
- "@hyperframes/lint": "0.8.39",
287
- "@hyperframes/studio-server": "0.8.39"
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",