Closed Bug 2021593 Opened 2 months ago Closed 2 months ago

[wpt-sync] Sync PR 58309 - Prompt API: Align measureContextUsage() with append, not prompt

Categories

(Testing :: web-platform-tests, task, P4)

task

Tracking

(firefox150 fixed)

RESOLVED FIXED
150 Branch
Tracking Status
firefox150 --- fixed

People

(Reporter: wpt-sync, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

Sync web-platform-tests PR 58309 into mozilla-central (this bug is closed when the sync is complete).

PR: https://github.com/web-platform-tests/wpt/pull/58309
Details from upstream follow.

Mike Wasserman <msw@chromium.org> wrote:

Prompt API: Align measureContextUsage() with append, not prompt

Omit model response start tokens from measurement.
(role start/end tokens for the input itself are still included)
This better matches developer expectations.

Update unit tests and WPTs to match the new behavior.
Fix EchoAILanguageModel append/token/overflow tracking for tests.

Bug: 481450143
Change-Id: I5e00f8befc80f2b3abe0a9cabca9e120a8d6aa1b
Reviewed-on: https://chromium-review.googlesource.com/7613756
WPT-Export-Revision: 9270dbd487a401c179add4e030b5cb173d29d565

CI Results

Ran 11 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI

Total 71 tests and 7 subtests

Status Summary

Firefox

OK : 64[GitHub] 66[Gecko-android-em-14-x86_64-debug-geckoview, Gecko-android-em-14-x86_64-lite-opt-geckoview, Gecko-android-em-14-x86_64-opt-geckoview, Gecko-linux2404-64-debug, Gecko-linux2404-64-opt, Gecko-windows11-32-24h2-debug, Gecko-windows11-32-24h2-opt, Gecko-windows11-64-24h2-debug, Gecko-windows11-64-24h2-opt]
PASS : 1[Gecko-linux2204-64-wayland-debug, Gecko-linux2204-64-wayland-opt] 2[GitHub] 3[Gecko-android-em-14-x86_64-debug-geckoview, Gecko-android-em-14-x86_64-lite-opt-geckoview, Gecko-android-em-14-x86_64-opt-geckoview, Gecko-linux2404-64-debug, Gecko-linux2404-64-opt, Gecko-windows11-32-24h2-debug, Gecko-windows11-32-24h2-opt, Gecko-windows11-64-24h2-debug, Gecko-windows11-64-24h2-opt]
FAIL : 329[GitHub] 338[Gecko-android-em-14-x86_64-debug-geckoview, Gecko-android-em-14-x86_64-lite-opt-geckoview, Gecko-android-em-14-x86_64-opt-geckoview, Gecko-linux2404-64-debug, Gecko-linux2404-64-opt, Gecko-windows11-32-24h2-debug, Gecko-windows11-32-24h2-opt, Gecko-windows11-64-24h2-debug, Gecko-windows11-64-24h2-opt]
PRECONDITION_FAILED: 1
TIMEOUT : 3
ERROR : 4
NOTRUN : 12

Chrome

OK : 21
PASS : 60
FAIL : 2
PRECONDITION_FAILED: 10
TIMEOUT : 94
NOTRUN : 228

Safari

OK : 64
PASS : 2
FAIL : 329
PRECONDITION_FAILED: 1
TIMEOUT : 3
ERROR : 4
NOTRUN : 12

Links

Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

  • /ai/language-model/language-model-abort.tentative.https.window.html [wpt.fyi]
    • Aborting LanguageModel.create().: FAIL (Chrome: PASS, Safari: FAIL)
    • Aborting LanguageModel.clone().: FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • Aborting LanguageModel.prompt().: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Aborting LanguageModel.promptStreaming().: FAIL (Chrome: NOTRUN, Safari: FAIL)
  • /ai/language-model/language-model-append.tentative.https.window.html [wpt.fyi]
    • Simple LanguageModel.append() call: FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • Check contextUsage increases from a simple LanguageModel.append() call: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Check empty Object input for LanguageModel.append(): FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Test that append input exceeding the total context window rejects: FAIL (Chrome: NOTRUN, Safari: FAIL)
  • /ai/language-model/language-model-availability-available-multimodal.tentative.https.window.html [wpt.fyi]
    • LanguageModel.availability() is available with multimodal audio option: FAIL (Chrome: PRECONDITION_FAILED, Safari: FAIL)
    • LanguageModel.availability() is available with multimodal image option: FAIL (Chrome: PASS, Safari: FAIL)
    • LanguageModel.availability() returns available with supported multimodal options: FAIL (Chrome: PRECONDITION_FAILED, Safari: FAIL)
    • LanguageModel.availability() returns unavailable with unsupported multimodal options: FAIL (Chrome: PRECONDITION_FAILED, Safari: FAIL)
  • /ai/language-model/language-model-availability-available.tentative.https.window.html [wpt.fyi]
    • LanguageModel.availability() is available with no options: FAIL (Chrome: PASS, Safari: FAIL)
    • LanguageModel.availability() returns available with supported options: FAIL (Chrome: PASS, Safari: FAIL)
    • LanguageModel.availability() returns unavailable with unsupported options: FAIL (Chrome: PASS, Safari: FAIL)
    • LanguageModel.availability() rejects with invalid options: FAIL (Chrome: PASS, Safari: FAIL)
  • /ai/language-model/language-model-availability.tentative.https.window.html [wpt.fyi]
    • LanguageModel.availability() is defined: FAIL (Chrome: PASS, Safari: FAIL)
    • LanguageModel.availability() returns a valid value with no options: FAIL (Chrome: PASS, Safari: FAIL)
    • LanguageModel.availability() rejects when given invalid language tags: FAIL (Chrome: PASS, Safari: FAIL)
    • LanguageModel.availability() returns a valid value with plausible options: FAIL (Chrome: PASS, Safari: FAIL)
  • /ai/language-model/language-model-clone.tentative.https.window.html [wpt.fyi]
    • Language Model Clone: FAIL (Chrome: TIMEOUT, Safari: FAIL)
  • /ai/language-model/language-model-create-multimodal.tentative.https.window.html [wpt.fyi]
    • LanguageModel.create() succeeds with supported multimodal type and language options: FAIL (Chrome: PRECONDITION_FAILED, Safari: FAIL)
    • LanguageModel.create() succeeds with supported multimodal initialPrompts: FAIL (Chrome: PRECONDITION_FAILED, Safari: FAIL)
    • LanguageModel.create() fails with unsupported multimodal initialPrompts: FAIL (Chrome: PRECONDITION_FAILED, Safari: FAIL)
  • /ai/language-model/language-model-create-user-activation.tentative.https.window.html [wpt.fyi]
    • Create requires sticky user activation when availability is "downloadable": FAIL (Chrome: PRECONDITION_FAILED, Safari: FAIL)
  • /ai/language-model/language-model-create.tentative.https.window.html [wpt.fyi]: ERROR (Chrome: TIMEOUT, Safari: ERROR)
    • Ensure sessions can be created: FAIL (Chrome: PASS, Safari: FAIL)
    • LanguageModel.create() returns a valid object with default options: FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • LanguageModel.create() notifies its monitor on downloadprogress: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Progress events are not emitted after aborted.: TIMEOUT (Chrome: NOTRUN, Safari: TIMEOUT)
    • Create with topK and temperature: NOTRUN (Chrome: NOTRUN, Safari: NOTRUN)
    • Create with initialPrompts: NOTRUN (Chrome: NOTRUN, Safari: NOTRUN)
    • Create with empty initialPrompts: NOTRUN (Chrome: NOTRUN, Safari: NOTRUN)
    • Create with initialPrompts without system role: NOTRUN (Chrome: NOTRUN, Safari: NOTRUN)
    • Create with system role not ordered first should fail: NOTRUN (Chrome: NOTRUN, Safari: NOTRUN)
    • Create multiple system role entries should fail: NOTRUN (Chrome: NOTRUN, Safari: NOTRUN)
    • LanguageModel.create() rejects when given invalid language tags: NOTRUN (Chrome: NOTRUN, Safari: NOTRUN)
    • LanguageModel.create() canonicalizes language tags: NOTRUN (Chrome: NOTRUN, Safari: NOTRUN)
  • /ai/language-model/language-model-destroy.tentative.https.window.html [wpt.fyi]
    • Language Model Destroy: FAIL (Chrome: TIMEOUT, Safari: FAIL)
  • /ai/language-model/language-model-from-detached-iframe.tentative.https.window.html [wpt.fyi]
    • Language Model From Detached Iframe: FAIL (Chrome: PASS, Safari: FAIL)
  • /ai/language-model/language-model-iframe.tentative.https.html [wpt.fyi]
    • Throw a 'NotAllowedError' when creating LanguageModel within cross-origin iframe: FAIL (Chrome: PASS, Safari: FAIL)
    • LanguageModel can be created within cross-origin iframe with permission policy: FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • LanguageModel can be used within same-origin iframe: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • LanguageModel is unavailable within cross-origin iframe: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • LanguageModel is available within cross-origin iframe with permission policy: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • LanguageModel is available within same-origin iframe: FAIL (Chrome: NOTRUN, Safari: FAIL)
  • /ai/language-model/language-model-measure-context-usage.tentative.https.window.html [wpt.fyi]
    • Language Model Measure Input Usage: FAIL (Chrome: TIMEOUT, Safari: FAIL)
  • /ai/language-model/language-model-params.tentative.https.window.html [wpt.fyi]
    • Language Model Params: FAIL (Chrome: PASS, Safari: FAIL)
  • /ai/language-model/language-model-prompt-context-destroyed.tentative.https.window.html [wpt.fyi]
    • Detaching iframe while running prompt() should not cause memory leak: FAIL (Chrome: TIMEOUT, Safari: FAIL)
  • /ai/language-model/language-model-prompt-gc.tentative.https.window.html [wpt.fyi]
    • Prompt API must continue even after GC has been performed.: FAIL (Chrome: TIMEOUT, Safari: FAIL)
  • /ai/language-model/language-model-prompt-monitor-callback-exception.tentative.https.window.html [wpt.fyi]
    • Language Model Prompt Monitor Callback Exception: FAIL (Chrome: PASS, Safari: FAIL)
  • /ai/language-model/language-model-prompt-multimodal-audio.tentative.https.window.html [wpt.fyi]
    • Prompt audio without audio expectedInput: FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • Test Audio initialPrompt: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Prompt with Blob audio content: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Prompt audio with blob containing invalid audio data.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Prompt with AudioBuffer: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Prompt with BufferSource - ArrayBuffer: FAIL (Chrome: NOTRUN, Safari: FAIL)
  • /ai/language-model/language-model-prompt-multimodal-image.tentative.https.window.html [wpt.fyi]
    • Prompt image without image expectedInput: FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • Test Image initialPrompt: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Prompt with Blob image content: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Prompt with ImageBitmap image content: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Prompt with OffscreenCanvas image content: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Prompt with ImageData image content: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Prompt with HTMLImageElement image content: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Prompt with HTMLCanvasElement image content: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Prompt with ArrayBuffer image content: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Prompt with ArrayBufferView image content: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Prompt with ArrayBufferView image content with an offset.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Prompt with HTMLImageElement image content (with SVG): FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Prompt with SVGImageElement image content: FAIL (Chrome: NOTRUN, Safari: FAIL)
  • /ai/language-model/language-model-prompt-multimodal-video.tentative.https.window.html [wpt.fyi]
    • Prompt with VideoFrame image content: FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • Prompt with HTMLVideoElement image content: FAIL (Chrome: NOTRUN, Safari: FAIL)
  • /ai/language-model/language-model-prompt-multimodal.tentative.https.window.html [wpt.fyi]
    • Prompt with type:"text" and image content should reject: FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • Prompt with assistant role should reject with multimodal input: FAIL (Chrome: NOTRUN, Safari: FAIL)
  • /ai/language-model/language-model-prompt-streaming-gc.tentative.https.window.html [wpt.fyi]
    • Prompt Streaming API must continue even after GC has been performed.: FAIL (Chrome: TIMEOUT, Safari: FAIL)
  • /ai/language-model/language-model-prompt-streaming.tentative.https.window.html [wpt.fyi]
    • Language Model Prompt Streaming: FAIL (Chrome: TIMEOUT, Safari: FAIL)
  • /ai/language-model/language-model-prompt.tentative.https.window.html [wpt.fyi]
    • Simple LanguageModel.prompt() call: FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • Check contextUsage increases from a simple LanguageModel.prompt() call: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Check empty Object input: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Check capital of France: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Test that initialPrompt counts towards session contextUsage: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • The contextoverflow event is fired when overall usage exceeds the context window: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Test that prompt input exceeding the total context window rejects: FAIL (Chrome: NOTRUN, Safari: FAIL)
  • /ai/language-model/language-model-quota-exceeded.tentative.https.window.html [wpt.fyi]
    • QuotaExceededError is thrown when initial prompts are too large.: FAIL (Chrome: TIMEOUT, Safari: FAIL)
  • /ai/language-model/language-model-response-json-schema.tentative.https.window.html [wpt.fyi]
    • Prompt API should fail if an invalid response json schema is provided: FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • Prompt API should work when a valid response json schema is provided.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Prompt API should work when a valid response json schema and model prefix is provided.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Prompt API should omit response schema from input.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Prompt API should work when a valid regex constraint is provided.: FAIL (Chrome: NOTRUN, Safari: FAIL)
  • /ai/language-model/language-model-tool-use.tentative.https.window.html [wpt.fyi]
    • createLanguageModel should reject when tool has null inputSchema.: FAIL (Chrome: PASS, Safari: FAIL)
    • createLanguageModel should reject when tool inputSchema is empty object without type property.: FAIL (Chrome: FAIL, Safari: FAIL)
    • createLanguageModel should reject when tool inputSchema is not an object.: FAIL (Chrome: PASS, Safari: FAIL)
    • createLanguageModel should reject when tool inputSchema has no type property.: FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • createLanguageModel should reject when tool inputSchema type is not object.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • createLanguageModel should reject when tool inputSchema properties is not an object.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • createLanguageModel should reject when tool inputSchema required is not an array.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • createLanguageModel should propagate exception when inputSchema getter throws.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • createLanguageModel should propagate exception when inputSchema type getter throws.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • createLanguageModel should reject when tool has empty name.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • createLanguageModel should reject when tool has empty description.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • createLanguageModel should reject when tools array contains duplicate tool names.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • createLanguageModel should reject when tool has no inputSchema.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • createLanguageModel should reject when tool has circular reference in inputSchema: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • createLanguageModel should reject when all tools have circular references: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • createLanguageModel should propagate V8 exception from custom toJSON(): FAIL (Chrome: NOTRUN, Safari: FAIL)
    • createLanguageModel should propagate V8 exception from custom getter during serialization: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • createLanguageModel should fail-fast when one tool among many is invalid: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • createLanguageModel with schema containing invalid-JSON-like text (trailing commas, comments) as string content succeeds because JSON.stringify escapes properly: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • createLanguageModel should succeed with empty tools array.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • createLanguageModel should succeed with no tools property.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • createLanguageModel should reject when tools provided but expectedOutputs is missing.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • createLanguageModel should reject when tools provided but expectedOutputs does not include tool-call.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • createLanguageModel should succeed when tools provided with tool-call in expectedOutputs.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • createLanguageModel should succeed with tool-call in expectedOutputs but no tools.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • prompt() should return structured tool call messages in open-loop pattern: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Open-loop pattern - send tool response via follow-up prompt: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Tool response with DOM object (ImageBitmap) labeled as type object should reject: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Multimodal tool response with ImageBitmap throws NotSupportedError: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Multimodal tool response with AudioBuffer throws NotSupportedError: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • promptStreaming() should stream tool call messages: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Tool with no arguments should have empty arguments object: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Multiple tools can be declared and called: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Tool response can include error field: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Tool response with circular reference should reject with DataError: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Tool response with function value should reject with DataError: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Tool response with BigInt value should reject with DataError: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Tool response with valid serializable values should succeed: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Cloned model should preserve tools: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • prompt() returns both text and tool call in correct order when model outputs mixed response: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • prompt() should handle multiple batches of tool calls from model: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • promptStreaming() should handle multiple batches of tool calls from model: FAIL (Chrome: NOTRUN, Safari: FAIL)
  • /ai/language_detection/detector-iframe.https.html [wpt.fyi]
    • Throw a 'NotAllowedError' when creating Language Detector within cross-origin iframe: FAIL
    • Language Detector can be created within cross-origin iframe with permission policy: FAIL
    • Language Detector can be used within same-origin iframe: FAIL
    • Language Detector is unavailable within cross-origin iframe: FAIL
    • Language Detector is available within cross-origin iframe with permission policy: FAIL
    • LanguageDetector is available within same-origin iframe: FAIL
  • /ai/language_detection/detector-locale.https.window.html [wpt.fyi]: ERROR (Chrome: TIMEOUT, Safari: ERROR)
    • LanguageDetector.availability() is consistent between language tag variations: FAIL (Chrome: PASS, Safari: FAIL)
    • LanguageDetector has valid expectedInputLanguages: FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • LanguageDetector.availability() throws RangeError for invalid language tags: FAIL (Chrome: NOTRUN, Safari: FAIL)
  • /ai/language_detection/detector.https.window.html [wpt.fyi]: ERROR (Chrome: TIMEOUT, Safari: ERROR)
    • Create requires sticky user activation when availability is "downloadable": FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • LanguageDetector.detect() returns valid results: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • If monitor throws an error, LanguageDetector.create() rejects with that error: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • LanguageDetector.create() call with an aborted signal.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Aborting createLanguageDetector().: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Calling LanguageDetector.destroy() aborts calls to detect and measureInputUsage.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • LanguageDetector.create()'s abort signal destroys its LanguageDetector after creation.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • LanguageDetector.detect() call with an aborted signal.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Aborting LanguageDetector.detect().: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • LanguageDetector.measureInputUsage() and inputQuota basic usage.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • LanguageDetector.measureInputUsage() call with an aborted signal.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Aborting LanguageDetector.measureInputUsage().: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Creating LanguageDetector with empty expectedInputLanguages array: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Creating LanguageDetector without expectedInputLanguages: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Progress events are not emitted after aborted.: TIMEOUT (Chrome: NOTRUN, Safari: TIMEOUT)
  • /ai/language_detection/detector.optional.https.window.html [wpt.fyi]
    • LanguageDetector.detect() detects the correct language: FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • Creating LanguageDetector with expectedInputLanguages: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • LanguageDetector.detect() detects empty string: FAIL (Chrome: NOTRUN, Safari: FAIL)
  • /ai/proofreader/proofreader-abort.tentative.https.window.html [wpt.fyi]
    • Aborting Proofreader.create(): FAIL (Chrome: PASS, Safari: FAIL)
    • Aborting Proofreader.proofread(): FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • Aborting Proofreader.proofread() including correction types: FAIL (Chrome: NOTRUN, Safari: FAIL)
  • /ai/proofreader/proofreader-proofread.tentative.https.window.html [wpt.fyi]
    • Proofreader.proofread() with an empty input returns an empty text: FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • Proofreader.proofread() with a whitespace input returns a whitespace text: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Proofreader.proofread() with non-empty input returns a non-empty result: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Proofreader.proofread() returns a list of corrections: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Proofreader.proofread() returns correction types when requested: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Calling Proofreader.destroy() aborts calls to proofread: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Proofreader.create()'s abort signal destroys its Proofreader after creation.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Simple Proofreader.proofread() call: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Multiple Proofreader.proofread() calls are resolved successfully: FAIL (Chrome: NOTRUN, Safari: FAIL)
  • /ai/rewriter/rewriter-abort.tentative.https.window.html [wpt.fyi]
    • Aborting Rewriter.create(): FAIL (Chrome: PASS, Safari: FAIL)
    • Aborting Rewriter.rewrite(): FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • Aborting Rewriter.rewriteStreaming(): FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Aborting Rewriter.rewriteStreaming() after finished reading: FAIL (Chrome: NOTRUN, Safari: FAIL)
  • /ai/rewriter/rewriter-availability-available.tentative.https.window.html [wpt.fyi]
    • Rewriter.availability() is available with no options: FAIL (Chrome: PASS, Safari: FAIL)
    • Rewriter.availability() returns available with supported options: FAIL (Chrome: PASS, Safari: FAIL)
    • Rewriter.availability() returns unavailable for unsupported languages: FAIL (Chrome: PASS, Safari: FAIL)
  • /ai/rewriter/rewriter-availability.tentative.https.window.html [wpt.fyi]
    • Rewriter.availability() is defined: FAIL (Chrome: PASS, Safari: FAIL)
    • Rewriter.availability() returns a valid value with no options: FAIL (Chrome: PASS, Safari: FAIL)
    • Rewriter.availability() returns a valid value with plausible options: FAIL (Chrome: PASS, Safari: FAIL)
    • Rewriter.availability() rejects when given invalid language tags: FAIL (Chrome: PASS, Safari: FAIL)
  • /ai/rewriter/rewriter-create-available.tentative.https.window.html [wpt.fyi]
    • Rewriter.create() returns a valid object with default options: FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • Rewriter.create() notifies its monitor on downloadprogress: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Progress events are not emitted after aborted: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Rewriter.sharedContext: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Creating a Rewriter with "more-formal" tone: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Creating a Rewriter with "more-casual" tone: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Creating a Rewriter with "plain-text" format: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Creating a Rewriter with "markdown" format: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Creating a Rewriter with "shorter" length: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Creating a Rewriter with "longer" length: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Rewriter.expectedInputLanguages: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Rewriter.expectedContextLanguages: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Rewriter.outputLanguage: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Creating Rewriter with malformed language string: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Rewriter.create() canonicalizes language tags: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Rewriter optional attributes return null: FAIL (Chrome: NOTRUN, Safari: FAIL)
  • /ai/rewriter/rewriter-create-user-activation.tentative.https.window.html [wpt.fyi]
    • Create requires sticky user activation when availability is "downloadable": FAIL (Chrome: PRECONDITION_FAILED, Safari: FAIL)
  • /ai/rewriter/rewriter-create.tentative.https.window.html [wpt.fyi]
    • Rewriter must be defined.: FAIL (Chrome: PASS, Safari: FAIL)
    • If monitor throws an error, Rewriter.create() rejects with that error: FAIL (Chrome: PASS, Safari: FAIL)
  • /ai/rewriter/rewriter-from-detached-iframe.tentative.https.window.html [wpt.fyi]
    • Detaching iframe during Rewriter.create() should not leak memory: FAIL (Chrome: PASS, Safari: FAIL)
    • Rewriter.create() fails on a detached iframe.: FAIL (Chrome: PASS, Safari: FAIL)
    • Rewriter.rewrite() fails on a detached iframe.: FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • Rewriter.rewriteStreaming() fails on a detached iframe.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Detaching iframe during Rewriter.rewrite() should not leak memory: FAIL (Chrome: NOTRUN, Safari: FAIL)
  • /ai/rewriter/rewriter-iframe.tentative.https.html [wpt.fyi]
    • Throw a 'NotAllowedError' when creating Rewriter within cross-origin iframe: FAIL (Chrome: PASS, Safari: FAIL)
    • Rewriter can be created within cross-origin iframe with permission policy: FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • Rewriter can be used within same-origin iframe: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Rewriter is unavailable within cross-origin iframe: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Rewriter is available within cross-origin iframe with permission policy: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Rewriter is available within same-origin iframe: FAIL (Chrome: NOTRUN, Safari: FAIL)
  • /ai/rewriter/rewriter-measureInputUsage.tentative.https.window.html [wpt.fyi]
    • Rewriter.measureInputUsage() returns non-empty result: FAIL (Chrome: TIMEOUT, Safari: FAIL)
  • /ai/rewriter/rewriter-rewrite-streaming.tentative.https.window.html [wpt.fyi]
    • Simple Rewriter.rewriteStreaming() call: FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • Rewriter.rewriteStreaming() fails after destroyed: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Rewriter.rewriteStreaming() returns a ReadableStream without any chunk on an empty input: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Multiple Rewriter.rewriteStreaming() calls are resolved successfully: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Rewrite Streaming API must continue even after GC has been performed.: FAIL (Chrome: NOTRUN, Safari: FAIL)
  • /ai/rewriter/rewriter-rewrite.tentative.https.window.html [wpt.fyi]
    • Rewriter.rewrite() with an empty input returns an empty text: FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • Rewriter.rewrite() with a whitespace input returns a whitespace text: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Rewriter.rewrite() with a whitespace context returns a non-empty result: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Calling Rewriter.destroy() aborts calls to rewrite and measureInputUsage.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Rewriter.create()'s abort signal destroys its Rewriter after creation.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Simple Rewriter.rewrite() call: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Multiple Rewriter.rewrite() calls are resolved successfully: FAIL (Chrome: NOTRUN, Safari: FAIL)
  • /ai/summarizer/summarizer-abort.tentative.https.window.html [wpt.fyi]
    • Aborting Summarizer.create().: FAIL (Chrome: PASS, Safari: FAIL)
    • Aborting Summarizer.summarize(): FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • Aborting Summarizer.summarizeStreaming(): FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Aborting Summarizer.summarizeStreaming() after finished reading: FAIL (Chrome: NOTRUN, Safari: FAIL)
  • /ai/summarizer/summarizer-availability-available.tentative.https.window.html [wpt.fyi]
    • Summarizer.availability() is available with no options: FAIL (Chrome: PASS, Safari: FAIL)
    • Summarizer.availability() returns available with supported options: FAIL (Chrome: PASS, Safari: FAIL)
    • Summarizer.availability() returns unavailable for unsupported languages: FAIL (Chrome: PASS, Safari: FAIL)
  • /ai/summarizer/summarizer-availability.tentative.https.window.html [wpt.fyi]
    • Summarizer.availability() is defined: FAIL (Chrome: PASS, Safari: FAIL)
    • Summarizer.availability() returns a valid value with no options: FAIL (Chrome: PASS, Safari: FAIL)
    • Summarizer.availability() returns a valid value with plausible options: FAIL (Chrome: PASS, Safari: FAIL)
    • Summarizer.availability() rejects when given invalid language tags: FAIL (Chrome: PASS, Safari: FAIL)
  • /ai/summarizer/summarizer-create-available.tentative.https.window.html [wpt.fyi]
    • Summarizer.create() returns a valid object with default options: FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • Summarizer.create() notifies its monitor on downloadprogress: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Progress events are not emitted after aborted: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Summarizer.sharedContext: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Summarizer.type: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Summarizer.format: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Summarizer.length: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Summarizer.expectedInputLanguages: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Summarizer.expectedContextLanguages: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Summarizer.outputLanguage: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Creating Summarizer with malformed language string: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Summarizer.create() canonicalizes language tags: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Summarizer optional attributes return null: FAIL (Chrome: NOTRUN, Safari: FAIL)
  • /ai/summarizer/summarizer-create-user-activation.tentative.https.window.html [wpt.fyi]
    • Create requires sticky user activation when availability is "downloadable": FAIL (Chrome: PRECONDITION_FAILED, Safari: FAIL)
  • /ai/summarizer/summarizer-create.tentative.https.window.html [wpt.fyi]
    • Summarizer.create() is defined: PRECONDITION_FAILED (Chrome: PASS, Safari: PRECONDITION_FAILED)
    • If monitor throws an error, Summarizer.create() rejects with that error: FAIL (Chrome: PASS, Safari: FAIL)
  • /ai/summarizer/summarizer-from-detached-iframe.tentative.https.window.html [wpt.fyi]
    • Detaching iframe during Summarizer.create() should not leak memory: FAIL (Chrome: PASS, Safari: FAIL)
    • Summarizer.create() fails on a detached iframe: FAIL (Chrome: PASS, Safari: FAIL)
    • Summarizer.summarize() fails on a detached iframe: FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • Summarizer.summarizeStreaming() fails on a detached iframe: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Detaching iframe during Summarizer.summarize() should not leak memory: FAIL (Chrome: NOTRUN, Safari: FAIL)
  • /ai/summarizer/summarizer-iframe.tentative.https.html [wpt.fyi]
    • Throw a 'NotAllowedError' when creating Summarizer within cross-origin iframe: FAIL (Chrome: PASS, Safari: FAIL)
    • Summarizer can be created within cross-origin iframe with permission policy: FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • Summarizer can be used within same-origin iframe: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Summarizer is unavailable within cross-origin iframe: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Summarizer is available within cross-origin iframe with permission policy: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Summarizer is available within same-origin iframe: FAIL (Chrome: NOTRUN, Safari: FAIL)
  • /ai/summarizer/summarizer-measureInputUsage.tentative.https.window.html [wpt.fyi]
    • Summarizer.measureInputUsage() returns non-empty result: FAIL (Chrome: TIMEOUT, Safari: FAIL)
  • /ai/summarizer/summarizer-summarize-streaming.tentative.https.window.html [wpt.fyi]
    • Simple Summarizer.summarizeStreaming() call: FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • Summarizer.summarizeStreaming() fails after destroyed: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Summarizer.summarizeStreaming() returns a ReadableStream without any chunk on an empty input: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Multiple Summarizer.summarizeStreaming() calls are resolved successfully: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Summarize Streaming API must continue even after GC has been performed.: FAIL (Chrome: NOTRUN, Safari: FAIL)
  • /ai/summarizer/summarizer-summarize.tentative.https.window.html [wpt.fyi]
    • Summarizer.summarize() with an empty input returns an empty text: FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • Summarizer.summarize() with a whitespace context returns an empty result: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Calling Summarizer.destroy() aborts calls to summarize and measureInputUsage.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Summarizer.create()'s abort signal destroys its Summarizer after creation.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Simple Summarizer.summarize() call: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Multiple Summarizer.summarize() calls are resolved successfully: FAIL (Chrome: NOTRUN, Safari: FAIL)
  • /ai/translator/translator-bad-input.https.window.html [wpt.fyi]
    • Translator.create rejects with TypeError if no options are passed.: FAIL
    • Translator.create rejects with TypeError targetLanguage is not provided.: FAIL
    • Translator.create rejects with TypeError sourceLanguage is not provided.: FAIL
  • /ai/translator/translator-locale.https.window.html [wpt.fyi]
    • Translator.availability() is consistent between language tag variations: FAIL (Chrome: PASS, Safari: FAIL)
    • Translator has valid source and target languages: FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • Translator.create() throws RangeError for invalid language tags: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Translator.availability() throws RangeError for invalid language tags: FAIL (Chrome: NOTRUN, Safari: FAIL)
  • /ai/translator/translator.https.window.html [wpt.fyi]
    • If monitor throws an error, LanguageDetector.create() rejects with that error: FAIL (Chrome: PASS, Safari: FAIL)
  • /ai/translator/translator.optional.https.window.html [wpt.fyi]: ERROR (Chrome: TIMEOUT, Safari: ERROR)
    • Create requires user activation when availability is "downloadable": FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • Simple Translator.translate() call: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Simple Translator.translateStreaming() call: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Multiple sentence Translator.translateStreaming() call: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Multiple sentence Translator.translateStreaming() call with honorific: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Translate Streaming API must continue even after GC has been performed.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Translator: sourceLanguage and targetLanguage are equal to their respective option passed in to Translator.create.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Translator.create() call with an aborted signal.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Aborting Translator.create().: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Translator.translate() call with an aborted signal.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Aborting Translator.translate().: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Calling Translator.destroy() aborts calls to write and measureInputUsage.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Translator.translateStreaming() fails after destroyed: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Translator.create()'s abort signal destroys its Translator after creation.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Translator.create() notifies its monitor on downloadprogress: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Progress events are not emitted after aborted.: TIMEOUT (Chrome: NOTRUN, Safari: TIMEOUT)
    • Translator.translate() echoes non-translatable content: NOTRUN (Chrome: NOTRUN, Safari: NOTRUN)
    • Translator.measureInputUsage() and inputQuota basic usage.: NOTRUN (Chrome: NOTRUN, Safari: NOTRUN)
    • Translator.measureInputUsage() call with an aborted signal.: NOTRUN (Chrome: NOTRUN, Safari: NOTRUN)
    • Aborting Translator.measureInputUsage().: NOTRUN (Chrome: NOTRUN, Safari: NOTRUN)
  • /ai/writer/writer-abort.tentative.https.window.html [wpt.fyi]
    • Aborting Writer.create(): FAIL (Chrome: PASS, Safari: FAIL)
    • Aborting Writer.write(): FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • Aborting Writer.writeStreaming(): FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Aborting Writer.writeStreaming() after finished reading: FAIL (Chrome: NOTRUN, Safari: FAIL)
  • /ai/writer/writer-availability-available.tentative.https.window.html [wpt.fyi]
    • Writer.availability() is available with no options: FAIL (Chrome: PASS, Safari: FAIL)
    • Writer.availability() returns available with supported options: FAIL (Chrome: PASS, Safari: FAIL)
    • Writer.availability() returns unavailable for unsupported languages: FAIL (Chrome: PASS, Safari: FAIL)
  • /ai/writer/writer-availability.tentative.https.window.html [wpt.fyi]
    • Writer.availability() is defined: FAIL (Chrome: PASS, Safari: FAIL)
    • Writer.availability() returns a valid value with no options: FAIL (Chrome: PASS, Safari: FAIL)
    • Writer.availability() returns a valid value with plausible options: FAIL (Chrome: PASS, Safari: FAIL)
    • Writer.availability() rejects when given invalid language tags: FAIL (Chrome: PASS, Safari: FAIL)
  • /ai/writer/writer-create-available.tentative.https.window.html [wpt.fyi]
    • Writer.create() returns a valid object with default options: FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • Writer.create() notifies its monitor on downloadprogress: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Progress events are not emitted after aborted: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Writer.sharedContext: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Creating a Writer with "formal" tone: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Creating a Writer with "casual" tone: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Creating a Writer with "markdown" format: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Creating a Writer with "medium" length: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Creating a Writer with "long" length: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Writer.expectedInputLanguages: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Writer.expectedContextLanguages: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Writer.outputLanguage: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Creating Writer with malformed language string: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Writer.create() canonicalizes language tags: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Writer optional attributes return null: FAIL (Chrome: NOTRUN, Safari: FAIL)
  • /ai/writer/writer-create-user-activation.tentative.https.window.html [wpt.fyi]
    • Create requires sticky user activation when availability is "downloadable": FAIL (Chrome: PRECONDITION_FAILED, Safari: FAIL)
  • /ai/writer/writer-create.tentative.https.window.html [wpt.fyi]
    • Writer must be defined.: FAIL (Chrome: PASS, Safari: FAIL)
    • If monitor throws an error, Writer.create() rejects with that error: FAIL (Chrome: PASS, Safari: FAIL)
  • /ai/writer/writer-from-detached-iframe.tentative.https.window.html [wpt.fyi]
    • Detaching iframe during Writer.create() should not leak memory: FAIL (Chrome: PASS, Safari: FAIL)
    • Writer.create() fails on a detached iframe: FAIL (Chrome: PASS, Safari: FAIL)
    • Writer.write() fails on a detached iframe: FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • Writer.writeStreaming() fails on a detached iframe: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Detaching iframe during Writer.write() should not leak memory: FAIL (Chrome: NOTRUN, Safari: FAIL)
  • /ai/writer/writer-iframe.tentative.https.html [wpt.fyi]
    • Throw a 'NotAllowedError' when creating Writer within cross-origin iframe: FAIL (Chrome: PASS, Safari: FAIL)
    • Writer can be created within cross-origin iframe with permission policy: FAIL (Chrome: FAIL, Safari: FAIL)
    • Writer can be used within same-origin iframe: FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • Writer is unavailable within cross-origin iframe: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Writer is available within cross-origin iframe with permission policy: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Writer is available within same-origin iframe: FAIL (Chrome: NOTRUN, Safari: FAIL)
  • /ai/writer/writer-measureInputUsage.tentative.https.window.html [wpt.fyi]
    • Writer.measureInputUsage() returns non-empty result: FAIL (Chrome: TIMEOUT, Safari: FAIL)
  • /ai/writer/writer-write-streaming.tentative.https.window.html [wpt.fyi]
    • Simple Writer.writeStreaming() call: FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • Writer.writeStreaming() fails after destroyed: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Writer.writeStreaming() returns a ReadableStream without any chunk on an empty input: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Multiple Writer.writeStreaming() calls are resolved successfully: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Write Streaming API must continue even after GC has been performed.: FAIL (Chrome: NOTRUN, Safari: FAIL)
  • /ai/writer/writer-write.tentative.https.window.html [wpt.fyi]
    • Writer.write() with an empty input returns an empty text: FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • Writer.write() with a whitespace input returns an empty text: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Writer.write() with a whitespace context returns a non-empty result: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Calling Writer.destroy() aborts calls to write and measureInputUsage.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Writer.create()'s abort signal destroys its Writer after creation.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Simple Writer.write() call: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Multiple Writer.write() calls are resolved successfully: FAIL (Chrome: NOTRUN, Safari: FAIL)
Status: NEW → RESOLVED
Closed: 2 months ago
Resolution: --- → FIXED
Target Milestone: --- → 150 Branch
You need to log in before you can comment on or make changes to this bug.