[wpt-sync] Sync PR 58309 - Prompt API: Align measureContextUsage() with append, not prompt
Categories
(Testing :: web-platform-tests, task, P4)
Tracking
(firefox150 fixed)
| 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
| Assignee | ||
Comment 1•2 months ago
|
||
| Assignee | ||
Comment 2•2 months ago
|
||
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)
- Aborting LanguageModel.create().:
- /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)
- Simple LanguageModel.append() call:
- /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)
- LanguageModel.availability() is available with multimodal audio option:
- /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)
- LanguageModel.availability() is available with no options:
- /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)
- LanguageModel.availability() is defined:
- /ai/language-model/language-model-clone.tentative.https.window.html [wpt.fyi]
- Language Model Clone:
FAIL(Chrome:TIMEOUT, Safari:FAIL)
- Language Model Clone:
- /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)
- LanguageModel.create() succeeds with supported multimodal type and language options:
- /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)
- Create requires sticky user activation when availability is "downloadable":
- /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)
- Ensure sessions can be created:
- /ai/language-model/language-model-destroy.tentative.https.window.html [wpt.fyi]
- Language Model Destroy:
FAIL(Chrome:TIMEOUT, Safari:FAIL)
- Language Model Destroy:
- /ai/language-model/language-model-from-detached-iframe.tentative.https.window.html [wpt.fyi]
- Language Model From Detached Iframe:
FAIL(Chrome:PASS, Safari:FAIL)
- Language Model From Detached Iframe:
- /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)
- Throw a 'NotAllowedError' when creating LanguageModel within cross-origin iframe:
- /ai/language-model/language-model-measure-context-usage.tentative.https.window.html [wpt.fyi]
- Language Model Measure Input Usage:
FAIL(Chrome:TIMEOUT, Safari:FAIL)
- Language Model Measure Input Usage:
- /ai/language-model/language-model-params.tentative.https.window.html [wpt.fyi]
- Language Model Params:
FAIL(Chrome:PASS, Safari:FAIL)
- Language Model Params:
- /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)
- Detaching iframe while running prompt() should not cause memory leak:
- /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)
- Prompt API must continue even after GC has been performed.:
- /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)
- Language Model Prompt Monitor Callback Exception:
- /ai/language-model/language-model-prompt-multimodal-audio.tentative.https.window.html [wpt.fyi]
- Prompt audio without
audioexpectedInput: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)
- Prompt audio without
- /ai/language-model/language-model-prompt-multimodal-image.tentative.https.window.html [wpt.fyi]
- Prompt image without
imageexpectedInput: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)
- Prompt image without
- /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)
- Prompt with VideoFrame image content:
- /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)
- Prompt with type:"text" and image content should reject:
- /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)
- Prompt Streaming API must continue even after GC has been performed.:
- /ai/language-model/language-model-prompt-streaming.tentative.https.window.html [wpt.fyi]
- Language Model Prompt Streaming:
FAIL(Chrome:TIMEOUT, Safari:FAIL)
- Language Model Prompt Streaming:
- /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
contextoverflowevent 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)
- Simple LanguageModel.prompt() call:
- /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)
- QuotaExceededError is thrown when initial prompts are too large.:
- /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)
- Prompt API should fail if an invalid response json schema is provided:
- /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)
- createLanguageModel should reject when tool has null inputSchema.:
- /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
- Throw a 'NotAllowedError' when creating Language Detector within cross-origin iframe:
- /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)
- LanguageDetector.availability() is consistent between language tag variations:
- /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)
- Create requires sticky user activation when availability is "downloadable":
- /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)
- LanguageDetector.detect() detects the correct language:
- /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)
- Aborting Proofreader.create():
- /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)
- Proofreader.proofread() with an empty input returns an empty text:
- /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)
- Aborting Rewriter.create():
- /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)
- Rewriter.availability() is available with no options:
- /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)
- Rewriter.availability() is defined:
- /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)
- Rewriter.create() returns a valid object with default options:
- /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)
- Create requires sticky user activation when availability is "downloadable":
- /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)
- Rewriter must be defined.:
- /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)
- Detaching iframe during Rewriter.create() should not leak memory:
- /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)
- Throw a 'NotAllowedError' when creating Rewriter within cross-origin iframe:
- /ai/rewriter/rewriter-measureInputUsage.tentative.https.window.html [wpt.fyi]
- Rewriter.measureInputUsage() returns non-empty result:
FAIL(Chrome:TIMEOUT, Safari:FAIL)
- Rewriter.measureInputUsage() returns non-empty result:
- /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)
- Simple Rewriter.rewriteStreaming() call:
- /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)
- Rewriter.rewrite() with an empty input returns an empty text:
- /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)
- Aborting Summarizer.create().:
- /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)
- Summarizer.availability() is available with no options:
- /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)
- Summarizer.availability() is defined:
- /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)
- Summarizer.create() returns a valid object with default options:
- /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)
- Create requires sticky user activation when availability is "downloadable":
- /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)
- Summarizer.create() is defined:
- /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)
- Detaching iframe during Summarizer.create() should not leak memory:
- /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)
- Throw a 'NotAllowedError' when creating Summarizer within cross-origin iframe:
- /ai/summarizer/summarizer-measureInputUsage.tentative.https.window.html [wpt.fyi]
- Summarizer.measureInputUsage() returns non-empty result:
FAIL(Chrome:TIMEOUT, Safari:FAIL)
- Summarizer.measureInputUsage() returns non-empty result:
- /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)
- Simple Summarizer.summarizeStreaming() call:
- /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)
- Summarizer.summarize() with an empty input returns an empty text:
- /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
- Translator.create rejects with TypeError if no options are passed.:
- /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)
- Translator.availability() is consistent between language tag variations:
- /ai/translator/translator.https.window.html [wpt.fyi]
- If monitor throws an error, LanguageDetector.create() rejects with that error:
FAIL(Chrome:PASS, Safari:FAIL)
- If monitor throws an error, LanguageDetector.create() rejects with that error:
- /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)
- Create requires user activation when availability is "downloadable":
- /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)
- Aborting Writer.create():
- /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)
- Writer.availability() is available with no options:
- /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)
- Writer.availability() is defined:
- /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)
- Writer.create() returns a valid object with default options:
- /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)
- Create requires sticky user activation when availability is "downloadable":
- /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)
- Writer must be defined.:
- /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)
- Detaching iframe during Writer.create() should not leak memory:
- /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)
- Throw a 'NotAllowedError' when creating Writer within cross-origin iframe:
- /ai/writer/writer-measureInputUsage.tentative.https.window.html [wpt.fyi]
- Writer.measureInputUsage() returns non-empty result:
FAIL(Chrome:TIMEOUT, Safari:FAIL)
- Writer.measureInputUsage() returns non-empty result:
- /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)
- Simple Writer.writeStreaming() call:
- /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)
- Writer.write() with an empty input returns an empty text:
https://hg.mozilla.org/mozilla-central/rev/cb954969bc63
https://hg.mozilla.org/mozilla-central/rev/1db25b9e35b4
Description
•