Closed Bug 1962079 Opened 1 year ago Closed 1 year ago

[wpt-sync] Sync PR 52117 - LanguageDetector: Don't proceed after an event triggers an abort

Categories

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

task

Tracking

(firefox139 fixed)

RESOLVED FIXED
139 Branch
Tracking Status
firefox139 --- fixed

People

(Reporter: wpt-sync, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

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

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

Nathan Memmott <memmott@chromium.org> wrote:

LanguageDetector: Don't proceed after an event triggers an abort

If an ProgressEvent triggers an abort, then we could erroneously send
another event or try to resolve the promise with a new LanguageDetector.
This checks after each ProgressEvent if we've aborted and stops if we
did.

Fixed: 412444609
Change-Id: Iecb9563092431126e350bd5bd2384f5c12caf956
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6476848
Commit-Queue: Nathan Memmott \<memmott@chromium.org>
Reviewed-by: Christine Hollingsworth \<christinesm@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1450303}

Whiteboard: [wptsync downstream] → [wptsync downstream error]
Whiteboard: [wptsync downstream error] → [wptsync downstream]

CI Results

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

Total 21 tests and 14 subtests

Status Summary

Firefox

OK : 21
FAIL : 86

Chrome

OK : 19
PASS : 1
FAIL : 68
TIMEOUT: 4
NOTRUN : 15

Safari

OK : 21
FAIL : 86

Links

GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

  • /ai/language_detection/detector-locale.https.tentative.window.html [wpt.fyi]
    • LanguageDetector.availability() is consistent between language tag variations: FAIL (Chrome: PASS, Safari: FAIL)
    • LanguageDetector has valid expectedInputLanguages: FAIL (Chrome: TIMEOUT, Safari: FAIL)
  • /ai/language_detection/detector.https.tentative.window.html [wpt.fyi]
    • Simple LanguageDetector.availability() call: FAIL (Chrome: TIMEOUT, Safari: FAIL)
    • Simple LanguageDetector.detect() call: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • If monitor throws an error, LanguageDetector.create() rejects with that error: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • LanguageDetector.create() notifies its monitor on downloadprogress: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • LanguageDetector.create() call with an aborted signal.: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Aborting LanguageDetector.create().: 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 without expectedInputLanguages: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Creating LanguageDetector with expectedInputLanguages: FAIL (Chrome: NOTRUN, Safari: FAIL)
    • Progress events are not emitted after aborted.: FAIL (Chrome: NOTRUN, Safari: FAIL)
  • /ai/summarizer/summarizer-abort.tentative.https.any.worker.html [wpt.fyi]
    • Aborting Summarizer.create().: FAIL (Chrome: FAIL, Safari: FAIL)
    • Aborting Summarizer.summarize().: FAIL (Chrome: FAIL, Safari: FAIL)
    • Aborting Summarizer.summarizeStreaming().: FAIL (Chrome: FAIL, Safari: FAIL)
  • /ai/summarizer/summarizer-abort.tentative.https.any.html [wpt.fyi]
    • Aborting Summarizer.create().: FAIL (Chrome: FAIL, Safari: FAIL)
    • Aborting Summarizer.summarize().: FAIL (Chrome: FAIL, Safari: FAIL)
    • Aborting Summarizer.summarizeStreaming().: FAIL (Chrome: FAIL, Safari: FAIL)
  • /ai/summarizer/summarizer-abort.tentative.https.any.serviceworker.html [wpt.fyi]
    • Aborting Summarizer.create().: FAIL (Chrome: FAIL, Safari: FAIL)
    • Aborting Summarizer.summarize().: FAIL (Chrome: FAIL, Safari: FAIL)
    • Aborting Summarizer.summarizeStreaming().: FAIL (Chrome: FAIL, Safari: FAIL)
  • /ai/summarizer/summarizer-abort.tentative.https.any.sharedworker.html [wpt.fyi]
    • Aborting Summarizer.create().: FAIL (Chrome: FAIL, Safari: FAIL)
    • Aborting Summarizer.summarize().: FAIL (Chrome: FAIL, Safari: FAIL)
    • Aborting Summarizer.summarizeStreaming().: FAIL (Chrome: FAIL, Safari: FAIL)
  • /ai/summarizer/summarizer-availability-available.tentative.https.any.html [wpt.fyi]
    • Summarizer.availability() is available with no options: FAIL (Chrome: FAIL, Safari: FAIL)
    • Summarizer.availability() returns available with supported options: FAIL (Chrome: FAIL, Safari: FAIL)
    • Summarizer.availability() returns unavailable for unsupported languages: FAIL (Chrome: FAIL, Safari: FAIL)
  • /ai/summarizer/summarizer-availability-available.tentative.https.any.worker.html [wpt.fyi]
    • Summarizer.availability() is available with no options: FAIL (Chrome: FAIL, Safari: FAIL)
    • Summarizer.availability() returns available with supported options: FAIL (Chrome: FAIL, Safari: FAIL)
    • Summarizer.availability() returns unavailable for unsupported languages: FAIL (Chrome: FAIL, Safari: FAIL)
  • /ai/summarizer/summarizer-availability.tentative.https.any.html [wpt.fyi]
    • Summarizer.availability() is defined: FAIL (Chrome: FAIL, Safari: FAIL)
    • Summarizer.availability() returns a valid value with no options: FAIL (Chrome: FAIL, Safari: FAIL)
    • Summarizer.availability() returns a valid value with plausible options: FAIL (Chrome: FAIL, Safari: FAIL)
  • /ai/summarizer/summarizer-availability.tentative.https.any.worker.html [wpt.fyi]
    • Summarizer.availability() is defined: FAIL (Chrome: FAIL, Safari: FAIL)
    • Summarizer.availability() returns a valid value with no options: FAIL (Chrome: FAIL, Safari: FAIL)
    • Summarizer.availability() returns a valid value with plausible options: FAIL (Chrome: FAIL, Safari: FAIL)
  • /ai/summarizer/summarizer-create-available.tentative.https.any.worker.html [wpt.fyi]
    • Summarizer.create() returns a valid object with default options: FAIL (Chrome: FAIL, Safari: FAIL)
    • Summarizer.create() notifies its monitor on downloadprogress: FAIL (Chrome: FAIL, Safari: FAIL)
    • Summarizer.sharedContext: FAIL (Chrome: FAIL, Safari: FAIL)
    • Summarizer.type: FAIL (Chrome: FAIL, Safari: FAIL)
    • Summarizer.format: FAIL (Chrome: FAIL, Safari: FAIL)
    • Summarizer.length: FAIL (Chrome: FAIL, Safari: FAIL)
    • Summarizer.expectedInputLanguages: FAIL (Chrome: FAIL, Safari: FAIL)
    • Summarizer.expectedContextLanguages: FAIL (Chrome: FAIL, Safari: FAIL)
    • Summarizer.outputLanguage: FAIL (Chrome: FAIL, Safari: FAIL)
    • Summarizer optional attributes return null: FAIL (Chrome: FAIL, Safari: FAIL)
  • /ai/summarizer/summarizer-create-available.tentative.https.any.html [wpt.fyi]
    • Summarizer.create() returns a valid object with default options: FAIL (Chrome: FAIL, Safari: FAIL)
    • Summarizer.create() notifies its monitor on downloadprogress: FAIL (Chrome: FAIL, Safari: FAIL)
    • Summarizer.sharedContext: FAIL (Chrome: FAIL, Safari: FAIL)
    • Summarizer.type: FAIL (Chrome: FAIL, Safari: FAIL)
    • Summarizer.format: FAIL (Chrome: FAIL, Safari: FAIL)
    • Summarizer.length: FAIL (Chrome: FAIL, Safari: FAIL)
    • Summarizer.expectedInputLanguages: FAIL (Chrome: FAIL, Safari: FAIL)
    • Summarizer.expectedContextLanguages: FAIL (Chrome: FAIL, Safari: FAIL)
    • Summarizer.outputLanguage: FAIL (Chrome: FAIL, Safari: FAIL)
    • Summarizer optional attributes return null: FAIL (Chrome: FAIL, Safari: FAIL)
  • /ai/summarizer/summarizer-create.tentative.https.any.html [wpt.fyi]
    • Summarizer.create() is defined: FAIL (Chrome: FAIL, Safari: FAIL)
  • /ai/summarizer/summarizer-create.tentative.https.any.worker.html [wpt.fyi]
    • Summarizer.create() is defined: FAIL (Chrome: FAIL, Safari: FAIL)
  • /ai/summarizer/summarizer-measureInputUsage.tentative.https.any.html [wpt.fyi]
    • Summarizer.measureInputUsage() returns non-empty result: FAIL (Chrome: FAIL, Safari: FAIL)
  • /ai/summarizer/summarizer-measureInputUsage.tentative.https.any.worker.html [wpt.fyi]
    • Summarizer.measureInputUsage() returns non-empty result: FAIL (Chrome: FAIL, Safari: FAIL)
  • /ai/summarizer/summarizer-summarize-streaming.tentative.https.any.worker.html [wpt.fyi]
    • Summarizer.summarizeStreaming returns ReadableStream with a non-empty text.: FAIL (Chrome: FAIL, Safari: FAIL)
    • Summarizer.summarizeStreaming returns a ReadableStream without any chunk on an empty input.: FAIL (Chrome: FAIL, Safari: FAIL)
  • /ai/summarizer/summarizer-summarize-streaming.tentative.https.any.html [wpt.fyi]
    • Summarizer.summarizeStreaming returns ReadableStream with a non-empty text.: FAIL (Chrome: FAIL, Safari: FAIL)
    • Summarizer.summarizeStreaming returns a ReadableStream without any chunk on an empty input.: FAIL (Chrome: FAIL, Safari: FAIL)
  • /ai/summarizer/summarizer-summarize.tentative.https.any.worker.html [wpt.fyi]
    • Summarizer.summarize() returns non-empty result: FAIL (Chrome: FAIL, Safari: FAIL)
  • /ai/summarizer/summarizer-summarize.tentative.https.any.html [wpt.fyi]
    • Summarizer.summarize() returns non-empty result: FAIL (Chrome: FAIL, Safari: FAIL)
  • /ai/translator/translator_translate.tentative.https.window.html [wpt.fyi]
    • Translator.create() requires user activation when availability is "downloadable.: FAIL (Chrome: FAIL, Safari: FAIL)
    • Simple Translator.translate() call: FAIL (Chrome: FAIL, Safari: FAIL)
    • Simple Translator.translateStreaming() call: FAIL (Chrome: FAIL, Safari: FAIL)
    • Translator: sourceLanguage and targetLanguage are equal to their respective option passed in to Translator.create.: FAIL (Chrome: FAIL, Safari: FAIL)
    • Translator.translate() fails after destroyed: FAIL (Chrome: FAIL, Safari: FAIL)
    • Translator.create() call with an aborted signal.: FAIL (Chrome: FAIL, Safari: FAIL)
    • Aborting Translator.create().: FAIL (Chrome: FAIL, Safari: FAIL)
    • Translator.translate() call with an aborted signal.: FAIL (Chrome: FAIL, Safari: FAIL)
    • Aborting Translator.translate().: FAIL (Chrome: FAIL, Safari: FAIL)
    • Translator.create() notifies its monitor on downloadprogress: FAIL (Chrome: FAIL, Safari: FAIL)
    • Translator.translate() echos non-translatable content: FAIL (Chrome: FAIL, Safari: FAIL)
    • Translator.measureInputUsage() and inputQuota basic usage.: FAIL (Chrome: FAIL, Safari: FAIL)
    • Translator.measureInputUsage() call with an aborted signal.: FAIL (Chrome: FAIL, Safari: FAIL)
    • Aborting Translator.measureInputUsage().: FAIL (Chrome: FAIL, Safari: FAIL)
Pushed by smolnar@mozilla.com: https://hg.mozilla.org/mozilla-central/rev/02eb6bc70aa7 [wpt PR 52117] - LanguageDetector: Don't proceed after an event triggers an abort, a=testonly https://hg.mozilla.org/mozilla-central/rev/4c88513f3b68 [wpt PR 52117] - Update wpt metadata, a=testonly
Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 139 Branch
You need to log in before you can comment on or make changes to this bug.