Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FF114 ECMAScript module support #26774

Merged
merged 1 commit into from
May 15, 2023

Conversation

hamishwillee
Copy link
Collaborator

FF114 adds support for ECMAScript modules. What that means is that you can use the constructor {type: "module"} in worker/shared worker constructor, and use both import and import(). In Worklets you can call import.
FF does not yet support modules in ServiceWorkers, but they also allow import only.

What this does is update experimental features and FF114 release notes with the additions. It also adds notes to Worklet and ServiceWorker to make it clear that workers can only load modules using import, since that is a spec rather than a compatibility thing.

Other docs work can be tracked in #26695

@hamishwillee hamishwillee requested review from a team as code owners May 15, 2023 03:08
@hamishwillee hamishwillee requested review from sideshowbarker and removed request for a team May 15, 2023 03:08
@github-actions github-actions bot added Content:Other Any docs not covered by another "Content:" label Content:WebAPI Web API docs labels May 15, 2023
@hamishwillee hamishwillee mentioned this pull request May 15, 2023
10 tasks
@github-actions
Copy link
Contributor

Preview URLs

Flaws (4)

Note! 2 documents with no flaws that don't need to be listed. 🎉

URL: /en-US/docs/Mozilla/Firefox/Experimental_features
Title: Experimental features in Firefox
Flaw count: 1

  • broken_links:
    • Can't resolve /en-US/docs/Web/API/WebTransportReceiveStream

URL: /en-US/docs/Web/API/Worklet
Title: Worklet
Flaw count: 3

  • macros:
    • /en-US/docs/Web/API/AnimationWorklet does not exist
    • /en-US/docs/Web/API/LayoutWorklet does not exist
    • /en-US/docs/Web/API/CSS/paintWorklet redirects to /en-US/docs/Web/API/CSS/paintWorklet_static
External URLs (69)

URL: /en-US/docs/Mozilla/Firefox/Experimental_features
Title: Experimental features in Firefox


URL: /en-US/docs/Mozilla/Firefox/Releases/114
Title: Firefox 114 for developers

@hamishwillee
Copy link
Collaborator Author

@Josh-Cena This covers most of what I want to do for indicating module support in workers. There is one thing that isn't really covered in https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules and that is worker scripts.

I was wondering if we should have a section "Scripts in workers" showing how you pass the `{type: "module"}" option in the worker constructor. Then we could just note, as has already been covered, that you can use import/import() in the loaded script for dedicated/shared workers, but not for service workers. Does that make sense to you?

@sideshowbarker sideshowbarker merged commit 33fe697 into mdn:main May 15, 2023
@Josh-Cena
Copy link
Member

@hamishwillee The more we load this page, the more I want to split it into two pages "modules at their core" and "modules on the web" 😄 But yes, I think it's very reasonable to add a workers section. FWIW it's merged already, and workers aren't mentioned anywhere anyway, so no hurries.

@hamishwillee hamishwillee deleted the ff114_modules_in_workers branch May 15, 2023 06:22
@hamishwillee
Copy link
Collaborator Author

Thanks for review @sideshowbarker

@Josh-Cena Thanks very much. I've added a note to the linked tracking issue and I'll get to this before the end of the month. I'd split it too, but that's a bigger job, and I have lots of dangling threads that need to be snipped.

HannahPeuckmann pushed a commit to HannahPeuckmann/content that referenced this pull request May 15, 2023
adamziel added a commit to WordPress/wordpress-playground that referenced this pull request May 30, 2023
Iframe worker threads were introduced as a workaround for limitations in
web browsers. Namely:

* Chrome crashed when using WASM in web workers
* Firefox didn't support ESM workers at all

Both problems are now solved:

* #1
* mdn/content#26774

There are no more reasons to keep maintaining the iframe worker thread
backend. Let's remove it and lean fully on web workers.
dipikabh added a commit that referenced this pull request Jun 13, 2023
* Updating content that storage is always partitioned and storage access grants are limited to cookies

* Avoiding the phrase 'cookie storage'

* implemented review from Tricolon

* reverted changes to storage_access_policy

* clean up

* add service workers to partitioned APIs

* linting

* Fix: Use language keywords instead of framework type names in the examples of 'WebSocket' (#26725)

* Add a bit about SPAs (#26711)

* Bump @mdn/yari from 2.18.1 to 2.20.0 (#26730)

* DNR corrections in URLTransform's queryTransform (#26732)

* Fix the description of the display property according to the CSS specification (#26612)

* change: `block element box` -> `block level box`

* change: `inline element boxes` -> `inline level boxes`

* change: `block element` -> `block level`

* change: `inline element` -> `inline level`

* fix: `inline/block level box` -> `inline/block box`

* change: `inline/block level` -> `inline-level/block-level element`

* fix: `block level` -> `block-level element`

* Adding missing sections for `container*` (#25739)

* Update sections for `container`

* Update sections for `container-name`

* Update sections for `container-type`

* Update files/en-us/web/css/container-name/index.md

---------

Co-authored-by: Estelle Weyl <estelle@openwebdocs.org>
Co-authored-by: Estelle Weyl <estelle@weyl.org>
Co-authored-by: Brian Thomas Smith <brian@smith.berlin>

* fix(prefers-reduced-motion): Edit text and improve example (#26630)

* edits to page for clarity

* improve example explanation

* fix review comments

* Update files/en-us/web/css/@media/prefers-reduced-motion/index.md

---------

Co-authored-by: Estelle Weyl <estelle@openwebdocs.org>

* Added info for 'muted' driven emission (#26641)

* Added info for 'muted' driven emission

Fixing missing information that muting also fires this event.
Standard spec: https://html.spec.whatwg.org/multipage/media.html#event-media-volumechange

* Update files/en-us/web/api/htmlmediaelement/volumechange_event/index.md

* lint

---------

Co-authored-by: wbamberg <will@bootbonnet.ca>

* Add page for prefers-reduced-transparency (#25289)

* Add page for prefers-reduced-transparency

* Update page for prefers-reduced-transparency

Changed text as requested in PR comments.

---------

Co-authored-by: Brian Thomas Smith <brian@smith.berlin>
Co-authored-by: Dipika Bhattacharya <dipika@foss-community.org>

* Fix arrow syntax explanation (#26704)

* remove bracket around the parameter

The example should omit the brackets around the parameter, as described in the explanation above this code.

* Update files/en-us/learn/javascript/building_blocks/functions/index.md

* Update files/en-us/learn/javascript/building_blocks/functions/index.md

* Update index.md

---------

Co-authored-by: Joshua Chen <sidachen2003@gmail.com>

* Add RTCAudioSourceStats (#26667)

* Add RTCAudioSourceStats

* Update files/en-us/web/api/rtcaudiosourcestats/index.md

Co-authored-by: wbamberg <will@bootbonnet.ca>

* Apply suggestions from code review

Co-authored-by: wbamberg <will@bootbonnet.ca>

* Apply suggestions from code review

Co-authored-by: wbamberg <will@bootbonnet.ca>

* Update files/en-us/web/api/rtcaudiosourcestats/index.md

* Add keys for BCD data

* Make it clear that the audiolevel can also be calculated

---------

Co-authored-by: wbamberg <will@bootbonnet.ca>

* correct language tag of code fence (#26738)

* Fix code comment in dialog example (#26669)

* Update index.md (#26744)

* Remove Prettier ignore for /web/web_components (#24225)

* Bump @mdn/yari from 2.20.0 to 2.20.3 (#26747)

* Update length values description (#26728)

* Update length values description

length values are not always absolute. For example we can use 2em for width property as a length value but it is not absolute. I corrected this in the Values section.

* Update files/en-us/web/css/width/index.md

Co-authored-by: Dipika Bhattacharya <dipika@foss-community.org>

---------

Co-authored-by: Dipika Bhattacharya <dipika@foss-community.org>

* Add TransformStream note about returning a promise (#26757)

* Remove emphasis on WritableStream controller (#26758)

* Remove emphasis on WritableStream controller

* copy edit

* lint

---------

Co-authored-by: wbamberg <will@bootbonnet.ca>

* fix: Updated description of example which in `JavaScript.Object` to be more accurate (#26742)

Update index.md

* Fix some more return statements (#26759)

* Fix return value for toString

* Fix some more return statements

* Fix 26745: don't auto-play (#26748)

* Fix 26743: Fix return value; improve example (#26753)

* Fix return value for Range: getBoundingClientRect() (#26754)

* Mention that Set iterators have a defined order (#26727)

* Mention that Set iterators have a defined order

* Do it for Map

---------

Co-authored-by: Joshua Chen <sidachen2003@gmail.com>

* Accentuate month being 0-index in getMonth example (#26734)

* Accentuate month being 0-index in get month example

`Date.getMonth` behavior differ slightly from the similar method as it return the index of the month and is 0-indexed, while the other method return ordinal values instead of index and don't have this distinction.

One could be tempted to run `${year}-${month}-${day}` and `${hour}:${minutes}:${seconds}` after the code in exemple to get iso formated date and time but the month would be off by one as iso month are 1-indexed, january being 1 and december being 12.

Adding a comment with the actual output put emphasis on this difference in behavior and might prevent people being surprised by that after the fact. The value chosen for the date is partly random. 2000 is the first year not starting with 19; January cause the month part to be 0 which should call attention to itself; 17 is high enough so it cannot be a month and I like it; 16 is in the 24h hour clock; 45 is high enough to not be confused with an hour; 30 is here for lack of imagination.

* Update files/en-us/web/javascript/reference/global_objects/date/index.md

* Update files/en-us/web/javascript/reference/global_objects/date/index.md

* Update files/en-us/web/javascript/reference/global_objects/date/index.md

---------

Co-authored-by: Joshua Chen <sidachen2003@gmail.com>

* Do not use JSON.stringify in console.log (#26662)

* Update index.md

* fix: not use JSON.stringify when print via console.log

* fix: Update the description of callbackFn's accumulator in `Array.reduceRight()` (#26594)

* Update index.md

* Update files/en-us/web/javascript/reference/global_objects/array/reduceright/index.md

* Update files/en-us/web/javascript/reference/global_objects/array/reduceright/index.md

---------

Co-authored-by: Joshua Chen <sidachen2003@gmail.com>

* Remove random arrow from Endianness example (#26767)

* Add missed redirect (#26769)

* remove self-reference links (#26764)

* remove a self reference link

* Update index.md

* Update index.md (#26771)

* Update index.md

Added the missing bracket

* Update files/en-us/web/api/stylepropertymap/append/index.md

---------

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>

* correct http status code message (#26765)

* Fix 26741: reduce ambiguity, remove unneeded word (#26750)

* Fix 26741: reduce ambiguity, remove unneeded word

* Update files/en-us/web/http/overview/index.md

---------

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>

* Window.beforeunload event requires sticky activation (#26772)

* Update `:paused` content (#26768)

* Update `:paused` content

* Update files/en-us/web/css/_colon_paused/index.md

* Update files/en-us/web/css/_colon_paused/index.md

Co-authored-by: Estelle Weyl <estelle@openwebdocs.org>

* Update files/en-us/web/css/_colon_paused/index.md

Co-authored-by: Estelle Weyl <estelle@openwebdocs.org>

* Update files/en-us/web/css/_colon_paused/index.md

Co-authored-by: A1lo <yin199909@aliyun.com>

---------

Co-authored-by: Joshua Chen <sidachen2003@gmail.com>
Co-authored-by: Estelle Weyl <estelle@openwebdocs.org>
Co-authored-by: A1lo <yin199909@aliyun.com>

* FF114 ECMAScript module support (#26774)

* removed while loop from the example (#26588)

Co-authored-by: Mohit Maheshwari <mohitmaheshwari@1MGH-LPTP-1483.local>

* Updating content that storage is always partitioned and storage access grants are limited to cookies

* Avoiding the phrase 'cookie storage'

* implemented review from Tricolon

* less firefox centric

* clean up merge

* capitalization

---------

Co-authored-by: Hannah Peuckmann <peuckmann@uni-potsdam.de>
Co-authored-by: Bodhi van Baardewijk <bodhivanbaardewijk@hotmail.com>
Co-authored-by: wbamberg <will@bootbonnet.ca>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: rebloor <git@sherpa.co.nz>
Co-authored-by: oti <oti@users.noreply.github.com>
Co-authored-by: yarusome <97945148+yarusome@users.noreply.github.com>
Co-authored-by: Estelle Weyl <estelle@openwebdocs.org>
Co-authored-by: Estelle Weyl <estelle@weyl.org>
Co-authored-by: Brian Thomas Smith <brian@smith.berlin>
Co-authored-by: Dipika Bhattacharya <dipika@foss-community.org>
Co-authored-by: Ctibor Laky <luckylooke@gmail.com>
Co-authored-by: CanadaHonk <19228318+CanadaHonk@users.noreply.github.com>
Co-authored-by: nintendoit <91181094+nintendoit@users.noreply.github.com>
Co-authored-by: Joshua Chen <sidachen2003@gmail.com>
Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
Co-authored-by: A1lo <yin199909@aliyun.com>
Co-authored-by: Fredrik Vaeng Røtnes <frwdrik@gmail.com>
Co-authored-by: Sebastian Sobociński <hiddenboox@users.noreply.github.com>
Co-authored-by: Queen Vinyl Da.i'gyu-Kazotetsu <vinyldarkscratch@gmail.com>
Co-authored-by: Amirhosain Shahsavari <shvb2007@gmail.com>
Co-authored-by: Dan Cecile <dancecile@gmail.com>
Co-authored-by: Jason Lam <jasonlamv-t@hotmail.com>
Co-authored-by: Mathias Stearn <redbeard0531@gmail.com>
Co-authored-by: L. Coues <couesl@gmail.com>
Co-authored-by: Steven Nyman <35897452+stevennyman@users.noreply.github.com>
Co-authored-by: Onkar Ruikar <87750369+OnkarRuikar@users.noreply.github.com>
Co-authored-by: Arka Poddar <poddararka27@gmail.com>
Co-authored-by: Jason Ren <40999116+jasonren0403@users.noreply.github.com>
Co-authored-by: Wonder Dai <37327614+daiwanxing@users.noreply.github.com>
Co-authored-by: MohitMaheshwari1711 <39165319+MohitMaheshwari1711@users.noreply.github.com>
Co-authored-by: Mohit Maheshwari <mohitmaheshwari@1MGH-LPTP-1483.local>
adamziel added a commit to WordPress/wordpress-playground that referenced this pull request Jun 19, 2023
Iframe worker threads were introduced as a workaround for limitations in
web browsers. Namely:

* Chrome crashed when using WASM in web workers
* Firefox didn't support ESM workers at all

Both problems are now solved:

* #1
* mdn/content#26774

There are no more reasons to keep maintaining the iframe worker thread
backend. Let's remove it and lean fully on web workers.
adamziel added a commit to WordPress/wordpress-playground that referenced this pull request Jun 19, 2023
Iframe worker threads were introduced as a workaround for limitations in
web browsers. Namely:

* Chrome crashed when using WASM in web workers
* Firefox didn't support ESM workers at all

Both problems are now solved:

* #1
* mdn/content#26774

There are no more reasons to keep maintaining the iframe worker thread
backend. Let's remove it and lean fully on web workers.

This commit changes the signature of `spawnPHPWorkerThread` from
`spawnPHPWorkerThread(workerUrl, workerType, options)` to
`spawnPHPWorkerThread(workerUrl, options)` and is therefore breaking.
Pookie717 added a commit to Pookie717/wordpress-playground that referenced this pull request Oct 1, 2023
Iframe worker threads were introduced as a workaround for limitations in
web browsers. Namely:

* Chrome crashed when using WASM in web workers
* Firefox didn't support ESM workers at all

Both problems are now solved:

* WordPress/wordpress-playground#1
* mdn/content#26774

There are no more reasons to keep maintaining the iframe worker thread
backend. Let's remove it and lean fully on web workers.

This commit changes the signature of `spawnPHPWorkerThread` from
`spawnPHPWorkerThread(workerUrl, workerType, options)` to
`spawnPHPWorkerThread(workerUrl, options)` and is therefore breaking.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Content:Other Any docs not covered by another "Content:" label Content:WebAPI Web API docs
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants